From a64e994db704ddc71628d77c0edee94ff5099c5b Mon Sep 17 00:00:00 2001 From: Fernando Jose Gonzalez Sierra Date: Thu, 14 Mar 2024 19:55:52 +0100 Subject: [PATCH 1/9] =?UTF-8?q?Arreglado=20gatewayservice=20e=20reincorpor?= =?UTF-8?q?aci=C3=B3n=20de=20userservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Eliminación de Firebase de Webapp. * Incorporación de questionservice en gateway. * Actualizado el proceso por el que se crea la pregunta utilizando el gateway. --- gatewayservice/gateway-service.js | 10 + package-lock.json | 2768 +++++++++++------------ questionservice/server.js | 6 +- userservice/authservice/auth-service.js | 5 +- webapp/src/App.js | 1 - webapp/src/components/AddUser.js | 37 +- webapp/src/components/FirebaseStart.js | 19 - webapp/src/components/Login.js | 51 +- webapp/src/components/Pages/Juego.js | 25 +- 9 files changed, 1452 insertions(+), 1470 deletions(-) delete mode 100644 webapp/src/components/FirebaseStart.js diff --git a/gatewayservice/gateway-service.js b/gatewayservice/gateway-service.js index 88b84c8..cf1aba3 100644 --- a/gatewayservice/gateway-service.js +++ b/gatewayservice/gateway-service.js @@ -8,6 +8,7 @@ const port = 8000; const authServiceUrl = process.env.AUTH_SERVICE_URL || 'http://localhost:8002'; const userServiceUrl = process.env.USER_SERVICE_URL || 'http://localhost:8001'; +const questionServiceUrl = process.env.QUESTION_SERVICE_URL || 'http://localhost:8003'; app.use(cors()); app.use(express.json()); @@ -41,6 +42,15 @@ app.post('/adduser', async (req, res) => { } }); +app.get('/pregunta', async (req, res) => { + try{ + const questionResponse = await axios.get(questionServiceUrl+'/pregunta') + res.json(questionResponse.data); + }catch(error){ + res.status(error.response.status).json({error: error.response.data.error}); + } +}); + // Start the gateway service const server = app.listen(port, () => { console.log(`Gateway Service listening at http://localhost:${port}`); diff --git a/package-lock.json b/package-lock.json index 11e19f6..ba90909 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1391 +1,1391 @@ { - "name": "wiq_es05a", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "devDependencies": { - "@babel/plugin-proposal-private-property-in-object": "^7.21.11" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "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/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", - "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", - "dev": true, - "peer": 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/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", - "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "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/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001591", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", - "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "name": "wiq_es05a", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "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/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", + "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "dev": true, + "peer": 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/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", + "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true + }, + "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/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/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/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + }, + "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, + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.687", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz", + "integrity": "sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==", + "dev": true, + "peer": true + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "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/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, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "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, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "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/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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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, + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true, + "peer": true + }, + "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, + "peer": true + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "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/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/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true } - ], - "peer": true - }, - "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/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/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/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "peer": true - }, - "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, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "peer": true + }, + "@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "peer": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "peer": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "peer": true + }, + "@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "peer": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", + "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", + "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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" + } + }, + "browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "dev": true, + "peer": true + }, + "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 + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "peer": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "electron-to-chromium": { + "version": "1.4.687", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz", + "integrity": "sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==", + "dev": true, + "peer": true + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "peer": 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 + }, + "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, + "peer": true + }, + "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, + "peer": 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 + }, + "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 + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "peer": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "peer": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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, + "peer": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true, + "peer": 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, + "peer": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, "supports-color": { - "optional": true - } - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.687", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz", - "integrity": "sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==", - "dev": true, - "peer": true - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "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/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, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "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, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "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/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/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "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, - "peer": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true, - "peer": true - }, - "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, - "peer": true - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "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/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/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "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" + } + }, + "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 + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "peer": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true } - ], - "peer": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "peer": true - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - } - }, - "@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, - "peer": true - }, - "@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "peer": true - }, - "@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", - "dev": true, - "peer": true, - "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "dev": true - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", - "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "peer": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "peer": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", - "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "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" - } - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "peer": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001591", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", - "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", - "dev": true, - "peer": true - }, - "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 - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "peer": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "electron-to-chromium": { - "version": "1.4.687", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.687.tgz", - "integrity": "sha512-Ic85cOuXSP6h7KM0AIJ2hpJ98Bo4hyTUjc4yjMbkvD+8yTxEhfK9+8exT2KKYsSjnCn2tGsKVSZwE7ZgTORQCw==", - "dev": true, - "peer": true - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "peer": 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 - }, - "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, - "peer": true - }, - "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, - "peer": 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 - }, - "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 - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "peer": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "peer": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "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, - "peer": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true, - "peer": 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, - "peer": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "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" - } - }, - "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 - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "peer": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "peer": true } - } } diff --git a/questionservice/server.js b/questionservice/server.js index f0fe6c0..4b7d2ed 100644 --- a/questionservice/server.js +++ b/questionservice/server.js @@ -2,11 +2,11 @@ const express = require('express'); // Importamos el módulo Axios para realizar solicitudes HTTP const axios = require('axios'); -const cors = require('cors'); +//const cors = require('cors'); // Creamos una nueva aplicación Express const app = express(); -app.use(cors()); +//app.use(cors()); // Definimos una ruta GET en '/pregunta' app.get('/pregunta', async (req, res) => { @@ -55,6 +55,6 @@ app.get('/pregunta', async (req, res) => { }); // Iniciamos el servidor en el puerto 3000 -const server = app.listen(2500, () => console.log('El servidor está escuchando en el puerto 2500')); +const server = app.listen(8003, () => console.log('El servidor está escuchando en el puerto 8003')); module.exports = server \ No newline at end of file diff --git a/userservice/authservice/auth-service.js b/userservice/authservice/auth-service.js index 9764f08..17ba811 100644 --- a/userservice/authservice/auth-service.js +++ b/userservice/authservice/auth-service.js @@ -30,13 +30,14 @@ app.post('/login', async (req, res) => { validateRequiredFields(req, ['username', 'password']); const { username, password } = req.body; - + console.log("LLEGA") // Find the user by username in the database const user = await User.findOne({ username }); - + console.log("HIZO BUSQUEDA") // Check if the user exists and verify the password if (user && await bcrypt.compare(password, user.password)) { // Generate a JWT token + console.log("ENCONTRADO") const token = jwt.sign({ userId: user._id }, 'your-secret-key', { expiresIn: '1h' }); // Respond with the token and user information res.json({ token: token, username: username, createdAt: user.createdAt }); diff --git a/webapp/src/App.js b/webapp/src/App.js index 982aed3..1c772cb 100644 --- a/webapp/src/App.js +++ b/webapp/src/App.js @@ -7,7 +7,6 @@ import Login from './components/Login'; import Juego from './components/Pages/Juego'; import Estadisticas from './components/Pages/Estadisticas'; import NotFound from './components/Pages/NotFound'; -import Firebase from './components/FirebaseStart'; function App() { const [isLogged, setIsLogged] = useState(true); diff --git a/webapp/src/components/AddUser.js b/webapp/src/components/AddUser.js index 24f709e..1fc54bd 100644 --- a/webapp/src/components/AddUser.js +++ b/webapp/src/components/AddUser.js @@ -2,31 +2,22 @@ import React, { useState } from 'react'; import axios from 'axios'; import { Container, Typography, TextField, Button, Snackbar } from '@mui/material'; -import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; + +const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; const AddUser = () => { - const [email, setEmail] = useState(''); + const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [openSnackbar, setOpenSnackbar] = useState(false); const addUser = async () => { - const auth = getAuth(); - createUserWithEmailAndPassword(auth, email, password) - .then((userCredential) => { - // Signed up - const user = userCredential.user; - // ... - console.log("LOGIN EXITOSO, MIRAR FIREBASE") - setOpenSnackbar(true); - }) - .catch((error) => { - console.log("LOGIN FALLIDO") - const errorCode = error.code; - const errorMessage = error.message; - setError(errorMessage); - // .. - }); + try { + await axios.post(`${apiEndpoint}/adduser`, { username, password }); + setOpenSnackbar(true); + } catch (error) { + setError(error.response.data.error); + } }; const handleCloseSnackbar = () => { @@ -39,12 +30,12 @@ const AddUser = () => { Add User setEmail(e.target.value)} + label="Username" + value={username} + onChange={(e) => setUsername(e.target.value)} /> { ); }; -export default AddUser; +export default AddUser; \ No newline at end of file diff --git a/webapp/src/components/FirebaseStart.js b/webapp/src/components/FirebaseStart.js deleted file mode 100644 index 6f2970d..0000000 --- a/webapp/src/components/FirebaseStart.js +++ /dev/null @@ -1,19 +0,0 @@ -// Import the functions you need from the SDKs you need -import { initializeApp } from "firebase/app"; - -const firebase_key = process.env.REACT_APP_FIREBASE_KEY - -// Your web app's Firebase configuration -const firebaseConfig = { -apiKey: firebase_key, -authDomain: "wiq5a-3f58f.firebaseapp.com", -projectId: "wiq5a-3f58f", -storageBucket: "wiq5a-3f58f.appspot.com", -messagingSenderId: "604775470186", -appId: "1:604775470186:web:f1b9f7e134e2ced1546613" -}; - -// Initialize Firebase -const FirebaseStart = initializeApp(firebaseConfig); - -export default FirebaseStart; \ No newline at end of file diff --git a/webapp/src/components/Login.js b/webapp/src/components/Login.js index 1e78d0e..46b2b5d 100644 --- a/webapp/src/components/Login.js +++ b/webapp/src/components/Login.js @@ -2,32 +2,31 @@ import React, { useState } from 'react'; import axios from 'axios'; import { Container, Typography, TextField, Button, Snackbar } from '@mui/material'; -import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; -const Login = ({isLogged}) => { - const [email, setEmail] = useState(''); +const Login = () => { + const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loginSuccess, setLoginSuccess] = useState(false); + const [createdAt, setCreatedAt] = useState(''); const [openSnackbar, setOpenSnackbar] = useState(false); - const loginUser = async () => { - const auth = getAuth(); - signInWithEmailAndPassword(auth, email, password) - .then((userCredential) => { - // Signed in - const user = userCredential.user; - // ... - console.log("LOGIN EXITOSO, MIRAR FIREBASE") - setLoginSuccess(true); - setOpenSnackbar(true); - }) - .catch((error) => { - console.log("LOGIN FALLIDO") - const errorCode = error.code; - const errorMessage = error.message; - setError(errorMessage); - }); + const apiEndpoint = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; + + const loginUser = async () => { + try { + const response = await axios.post(`${apiEndpoint}/login`, { username, password }); + + // Extract data from the response + const { createdAt: userCreatedAt } = response.data; + + setCreatedAt(userCreatedAt); + setLoginSuccess(true); + + setOpenSnackbar(true); + } catch (error) { + setError(error.response.data.error); + } }; const handleCloseSnackbar = () => { @@ -39,10 +38,10 @@ const Login = ({isLogged}) => { {loginSuccess ? (
- Hello {email}! + Hello {username}! - Ahora puedes jugar y ver tus estadísticas. + Your account was created on {new Date(createdAt).toLocaleDateString()}.
) : ( @@ -53,9 +52,9 @@ const Login = ({isLogged}) => { setEmail(e.target.value)} + label="Username" + value={username} + onChange={(e) => setUsername(e.target.value)} /> { ); }; -export default Login; +export default Login; \ No newline at end of file diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index 61bd530..99949fb 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -21,19 +21,20 @@ const Juego = ({isLogged}) => { //Operacion asíncrona para cargar pregunta y respuestas en las variables desde el json - async function CargarPregunta(pregunta, resCorr, resFalse){ - useEffect(() => { - fetch("http://localhost:2500/pregunta") - .then((res) => res.json()) - .then((todo) => { - setPregunta(todo.question) - setResCorr(todo.answerGood) - setResFalse(todo.answers) - }); - }, []); - } + //Esta operación es llamada cuando pregunta esté vacia. + useEffect( () => { + const crear = async () => { + const response = await axios.get('http://localhost:8000/pregunta'); + setPregunta(response.data.question) + setResCorr(response.data.answerGood) + setResFalse(response.data.answers) + } + if(pregunta == ""){ + setPregunta("CARGANDO...") + crear(); + } + }, [pregunta]); - CargarPregunta(pregunta, resCorr, resFalse); /** * Funcion que se llamara al hacer click a una de las respuestas From 4cc629e649d7a40ce77ea557293e4559e4276528 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 18 Mar 2024 11:40:20 +0100 Subject: [PATCH 2/9] =?UTF-8?q?Cambios=20en=20la=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/05_nivel_2.png | Bin 15908 -> 16458 bytes .../images/05_sistema-general-caja-blanca.png | Bin 12381 -> 10235 bytes docs/src/01_introduction_and_goals.adoc | 12 +++---- docs/src/02_architecture_constraints.adoc | 31 +++++++++++------- docs/src/05_building_block_view.adoc | 21 +++++++++--- docs/src/07_deployment_view.adoc | 4 +-- docs/src/11_technical_risks.adoc | 16 +++++++-- 7 files changed, 57 insertions(+), 27 deletions(-) diff --git a/docs/images/05_nivel_2.png b/docs/images/05_nivel_2.png index 2f6812c8c8eac020f58c13899505e537dc8ec06d..1aee79732263e599a64caff71990f62784c17773 100644 GIT binary patch literal 16458 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 RpkI-{eDV5){PVZ&{|DT6B)tFt literal 15908 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 HeDps6h7qr` diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 3a4ae93..cd8db0b 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -80,9 +80,9 @@ A table with quality goals and concrete scenarios, ordered by priorities [cols="e,2e" options="header"] |=== |Nombre|Descripción -|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios_ +|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios y ser intuitiva; tener una curva de aprendizaje suave y progresiva_ |*Rendimiento*| _El tiempo de respuesta de la aplicación debe ser rápido_ -|*Testeable*| _La aplicación debe pasar las pruebas generadas automaticamente para cada versión_ +|*Testeable*| _La aplicación debe facilitar la realizacion de pruebas de manera efectiva_ |*Disponibilidad*| _La aplicación debe estar disponible y caerse lo menos posible_ |=== === Stakeholders @@ -110,10 +110,10 @@ Table with role names, person names, and their expectations with respect to the [cols="e,2e,2e" options="header"] |=== |Rol/Nombre|Expectativa|Descripción -| *Cristian Augusto* | _Aplicar correctamente los conocimientos y competencias adquiridos en la asignatura Arquitectura del Software_ | _Profesor de la asignatura_ +| *Profesor* | _Aplicar correctamente los conocimientos y competencias adquiridos en la asignatura Arquitectura del Software_ | _Profesor de la asignatura_ | *HappySw* | _Una aplicación buena para atraer al mayor número de usuarios_ | _Equipo de desarrollo_ | *Wikidata* | _Usar su aplicacion con precaución, sin sobrecargar sus servicios_ | _Empresa que nos facilita la API para obtener información_ -| *Usuarios Registrados* | _Una aplicación que proporcione los servicios esperados_ | _Los usuarios de la aplicación_ -| *Usuarios No Registrados* | _Una buena aplicación_ | _Los usuarios de la aplicación_ -| *RTVE* | _Una buena versión de su juego "Saber y Ganar"_ | _Dueño del producto_ +| *Usuarios Registrados* | _Una aplicación que les permita jugar a un juego de preguntas y respuestas_ | _Los usuarios que ya se han registrado en la aplicación y pueden acceder a sus servicios_ +| *Usuarios No Registrados* | _Poder registrarse lo más rápido posible para empezar a jugar al juego de preguntas y respuestas_ | _Los usuarios que aun no se han registrado en la aplicación y no tienen acceso a sus servicios_ +| *RTVE* | _Una buena versión de su juego "Saber y Ganar" para mejorar la audiencia del programa_ | _Dueño del producto_ |=== diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 7514a70..cd0e9c1 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -36,16 +36,15 @@ Por ello esta aplicación está desarrollada siguiendo una serie de limitaciones |Restricción |Explicación |*GIT* -|_En la asignatura se requiere el uso del sistema de control de versiones GIT, además de emplear GitHub como repositorio. Además nos permite -una continua integración mediante la paralelización del trabajo usando el sistema de ramas. También GitHub permite organizar las distintas tareas de cada -miembro del equipo mediante el uso de las Issues._ +|_En la asignatura se requiere el uso del sistema de control de versiones GIT, además de emplear GitHub como repositorio. Asimismo, nos permite +una continua integración de forma remota mediante la paralelización del trabajo usando el sistema de ramas._ |*Docker* -|_Esta tecnología de contenerización es utilizada para desplegar la aplicación web tanto en el entorno de desarrollo como en el de producción +|_Esta tecnología de contenerización será requerida ya que la usaremos para desplegar la aplicación web tanto en el entorno de desarrollo como en el de producción y realizar las pruebas pertinentes._ |*Wikidata* -|_Fuente de información utilizada para generar aleatoriamente tanto las preguntas como las respuestas correctas e incorrectas del juego._ +|_En la asignatura se requiere que esta sea la fuente de información principal para generar aleatoriamente tanto las preguntas como las respuestas correctas e incorrectas del juego._ |=== === Limitaciones organizativas @@ -66,6 +65,16 @@ con alguna de estas._ |*Reuniones* |_Para mantener un buen ritmo de trabajo a través de una correcta organización se realizan reuniones semanales en las clases prácticas de la asignatura. Además, mantenemos contacto a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reuniones extraordinarias utilizando nuestro servidor de Discord._ + +|*Issues* +|_Para el seguimiento y la gestión de las tareas, problemas, mejoras, autoinformes, etc. de la aplicación tendremos que usar las issues ofrecidas por github; esto es una obligación ya + que reflejara el trabajo realizado por cada miembro del equipo al poder asignarse cada issue._ + +|*Actas* +|_Al igual que las issues, las actas servirán para la organización de las tareas asi como para la toma de decisiones, y tendrán + que reflejar el trabajo repartido a cada miembro. Se deberán realizar obligatoriamente cada vez que se realice una reunión y deberán constar los miembros del + equipo que han participado._ + |=== === Convenciones @@ -75,19 +84,19 @@ a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reunione |Restricción |Explicación |*Diseño del software* -|_Para lograr un buen diseño es indispensable que el código de la aplicación sea flexible, mantenible y comprensible._ +|_Para lograr un buen diseño es indispensable que el código de la aplicación sea flexible, mantenible y comprensible. Además se espera un código limpio ('clean code'), +es decir, que sea fácil de entender, mantener y modificar, y que garantize la claridad, simplicidad y legibilidad._ |*Documentación* |_Para crearla usaremos la plantilla Arc42 con la finalidad de que sea sencilla y práctica._ |*Accesibilidad* -|_Intentaremos que nuestra aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quién sea. Seguiremos el estándard WCAG de la W3C, -usando el color, tamaño de texto... adecuados para ello._ +|_Intentaremos que nuestra aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quién sea._ |*Estructura* -|_Debe seguir una estructura fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas -principalmente: 'users' para la api rest y el registro de usuarios, 'webapp' para el desarrollo de la aplicación, 'docs' -para la documentación._ +|_Debe seguir una estructura fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas: 'userservice' para la gestión de +usuarios (registro y autentificación), 'questionservice' para la comunicación con wikidata y 'webapp' para el desarrollo de la aplicación. Todos estos +servicios estarán comunicados por 'gatewayservice'._ |*Convenciones del lenguaje de programación* |_Es fundamental adherirse a las convenciones de los diferentes lenguajes de programación utilizados para garantizar que la aplicación tenga un código legible, diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index a3bbb5b..2c3dccb 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -89,8 +89,6 @@ Bloques de construcción contenidos:: |*Wikidata* |_Servicio externo desde donde obtenemos los datos para generar las preguntas._ -|*Firebase* -|_Plataforma para el manejo de sesiones de los usuarios, asi como informacion sobre sus estadisticas._ |=== === Nivel 2: WIQ @@ -102,11 +100,24 @@ Bloques de construcción contenidos:: |=== |Nombre |Responsabilidad -|*Webapp* +|*webapp* |_La interfaz con la que interactua el usuario._ -|*REST* -|_Manejo de datos de Wikidata._ +|*gatewayservice* +|_Servicio de puerta de enlace que actúa como intermediario entre los clientes y otros servicios, +reenviando las solicitudes a los servicios correspondientes y devolviendo las respuestas al cliente._ + +|*authservice* +|_Servicio de autenticación de usuarios._ + +|*userservice* +|_Servicio para registro de usuarios._ + +|*questionservice* +|_Servicio para el manejo de datos de Wikidata._ + +|*Wikidata* +|_Servicio externo desde donde obtenemos los datos para generar las preguntas._ |=== diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index 82b0167..a032bd1 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -81,11 +81,11 @@ Mapeo de bloques de construcción a infraestructura:: |*WebApp* |Microservicio responsable de las vistas de la aplicación y sus interacciones con el usuario. -|*Rest* +|*QuestionService* |Microservicio responsable de generar preguntas y respuestas utilizando la información de Wikidata, almacenándola posteriormente en una base de datos MySQL. -|*Users* +|*UserService* |Microservicio encargado de gestionar los diferentes usuarios y sus partidas realizadas haciendo uso de la API Firebase. |*Navegador Web* diff --git a/docs/src/11_technical_risks.adoc b/docs/src/11_technical_risks.adoc index a04dc64..def2c95 100644 --- a/docs/src/11_technical_risks.adoc +++ b/docs/src/11_technical_risks.adoc @@ -24,6 +24,7 @@ See https://docs.arc42.org/section-11/[Risks and Technical Debt] in the arc42 do **** === Riesgos Técnicos +==== Riesgos internos [cols="e,2e" options="header"] |=== @@ -37,10 +38,18 @@ de trabajo de los demás compañeros._ |_Las demás asignaturas en la que están matriculados los miembros del equipo puede exigir una carga importante de trabajo por lo que provocar que el equipo no dedique el suficiente tiempo al desarrollo de este proyecto._ -|*Errores* -|_Durante las pruebas de la aplicación pueden surgir errores que nos obliguen a realizar importantes cambios en esta. Esto puede provocar que el equipo invierta más horas de +|*Errores de diseño* +|_Los errores que surjan debido al diseño, implementacion o gestion interna del proyecto; nos obligarán a realizar cambios e invertir más horas de las planeadas para solucionar este tipo de problemas._ +|=== + +==== Riesgos externos + +[cols="e,2e" options="header"] +|=== +|Riesgo |Explicación + |*Caída de Servicios* |_Nuestra aplicacion web puede verse comprometida a errores si alguno de los servicios utilizados, como por ejemplo Docker, parará de funcionar en algún momento. Ya que los servicios no son creados por nosotros no podemos saber si estarán disponibles en todo momento por lo tanto @@ -54,5 +63,6 @@ esto podría bloquear la entrega de alguna de las funcionalidades del proyecto._ |=== +=== Deudas Técnicas - +TODO \ No newline at end of file From 62ba914984b69d009b94f66406731164a457de72 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 18 Mar 2024 11:49:51 +0100 Subject: [PATCH 3/9] Cambio para poder quitar la mayuscula de questionService --- {questionservice => questions}/Dockerfile | 0 {questionservice => questions}/package-lock.json | 0 {questionservice => questions}/package.json | 0 {questionservice => questions}/server.js | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {questionservice => questions}/Dockerfile (100%) rename {questionservice => questions}/package-lock.json (100%) rename {questionservice => questions}/package.json (100%) rename {questionservice => questions}/server.js (100%) diff --git a/questionservice/Dockerfile b/questions/Dockerfile similarity index 100% rename from questionservice/Dockerfile rename to questions/Dockerfile diff --git a/questionservice/package-lock.json b/questions/package-lock.json similarity index 100% rename from questionservice/package-lock.json rename to questions/package-lock.json diff --git a/questionservice/package.json b/questions/package.json similarity index 100% rename from questionservice/package.json rename to questions/package.json diff --git a/questionservice/server.js b/questions/server.js similarity index 100% rename from questionservice/server.js rename to questions/server.js From 6fda7032f397ac53660bb02b6cb1193b6de8bb99 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 18 Mar 2024 13:39:03 +0100 Subject: [PATCH 4/9] Cambio docker-compose.yml --- docker-compose.yml | 63 ++++++++++++++++++- {questions => questionservice}/Dockerfile | 0 .../package-lock.json | 0 {questions => questionservice}/package.json | 0 {questions => questionservice}/server.js | 0 webapp/src/components/Pages/Juego.js | 2 +- 6 files changed, 63 insertions(+), 2 deletions(-) rename {questions => questionservice}/Dockerfile (100%) rename {questions => questionservice}/package-lock.json (100%) rename {questions => questionservice}/package.json (100%) rename {questions => questionservice}/server.js (100%) diff --git a/docker-compose.yml b/docker-compose.yml index 1c81a3e..cd3913c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,79 @@ version: '3' services: + mongodb: + container_name: mongodb-${teamname:-defaultASW} + image: mongo + profiles: ["dev", "prod"] + volumes: + - mongodb_data:/data/db + ports: + - "27017:27017" + networks: + - mynetwork + questionservice: container_name: questionservice-${teamname:-defaultASW} image: ghcr.io/arquisoft/wiq_es05a/questionservice:latest profiles: ["dev", "prod"] build: ./questionservice ports: - - "2500:2500" + - "8003:8003" + + authservice: + container_name: authservice-${teamname:-defaultASW} + image: ghcr.io/arquisoft/wiq_0/authservice:latest + profiles: ["dev", "prod"] + build: ./userservice/authservice + depends_on: + - mongodb + ports: + - "8002:8002" + networks: + - mynetwork + environment: + MONGODB_URI: mongodb://mongodb:27017/userdb + + userservice: + container_name: userservice-${teamname:-defaultASW} + image: ghcr.io/arquisoft/wiq_0/userservice:latest + profiles: ["dev", "prod"] + build: ./userservice/userservice + depends_on: + - mongodb + ports: + - "8001:8001" + networks: + - mynetwork + environment: + MONGODB_URI: mongodb://mongodb:27017/userdb + + gatewayservice: + container_name: gatewayservice-${teamname:-defaultASW} + image: ghcr.io/arquisoft/wiq_0/gatewayservice:latest + profiles: ["dev", "prod"] + build: ./gatewayservice + depends_on: + - mongodb + - userservice + - authservice + - questionservice + ports: + - "8000:8000" + networks: + - mynetwork + environment: + AUTH_SERVICE_URL: http://authservice:8002 + USER_SERVICE_URL: http://userservice:8001 + QUESTION_SERVICE_URL: http://questionservice:8001 + webapp: container_name: webapp-${teamname:-defaultASW} image: ghcr.io/arquisoft/wiq_es05a/webapp:latest profiles: ["dev", "prod"] build: ./webapp + depends_on: + - gatewayservice ports: - "3000:3000" diff --git a/questions/Dockerfile b/questionservice/Dockerfile similarity index 100% rename from questions/Dockerfile rename to questionservice/Dockerfile diff --git a/questions/package-lock.json b/questionservice/package-lock.json similarity index 100% rename from questions/package-lock.json rename to questionservice/package-lock.json diff --git a/questions/package.json b/questionservice/package.json similarity index 100% rename from questions/package.json rename to questionservice/package.json diff --git a/questions/server.js b/questionservice/server.js similarity index 100% rename from questions/server.js rename to questionservice/server.js diff --git a/webapp/src/components/Pages/Juego.js b/webapp/src/components/Pages/Juego.js index 99949fb..0557d24 100644 --- a/webapp/src/components/Pages/Juego.js +++ b/webapp/src/components/Pages/Juego.js @@ -24,7 +24,7 @@ const Juego = ({isLogged}) => { //Esta operación es llamada cuando pregunta esté vacia. useEffect( () => { const crear = async () => { - const response = await axios.get('http://localhost:8000/pregunta'); + const response = await axios.get('http://localhost:8003/pregunta'); setPregunta(response.data.question) setResCorr(response.data.answerGood) setResFalse(response.data.answers) From 4cbc9de79efc1549d0222bb71d1265802d943453 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 18 Mar 2024 13:48:13 +0100 Subject: [PATCH 5/9] Linea de CORS en docker-compose.yml --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index cd3913c..e33dafd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,8 @@ services: build: ./questionservice ports: - "8003:8003" + environment: + - ACCESS_CONTROL_ALLOW_ORIGIN=http://localhost:3000 authservice: container_name: authservice-${teamname:-defaultASW} From 1f897102fc849c925a0e5b344b74523a4ecd1f55 Mon Sep 17 00:00:00 2001 From: Lara Date: Mon, 18 Mar 2024 14:14:59 +0100 Subject: [PATCH 6/9] Cambio --- docker-compose.yml | 5 ++++- questionservice/server.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e33dafd..08e84f3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,10 @@ services: ports: - "8003:8003" environment: - - ACCESS_CONTROL_ALLOW_ORIGIN=http://localhost:3000 + - ACCESS_CONTROL_ALLOW_ORIGIN=http://webapp:3000 + - ACCESS_CONTROL_ALLOW_ORIGIN=http://localhost:3000/game + networks: + - mynetwork authservice: container_name: authservice-${teamname:-defaultASW} diff --git a/questionservice/server.js b/questionservice/server.js index 4b7d2ed..fbfacb3 100644 --- a/questionservice/server.js +++ b/questionservice/server.js @@ -54,7 +54,7 @@ app.get('/pregunta', async (req, res) => { res.json({ question, answerGood, answers }); }); -// Iniciamos el servidor en el puerto 3000 +// Iniciamos el servidor en el puerto 8003 const server = app.listen(8003, () => console.log('El servidor está escuchando en el puerto 8003')); module.exports = server \ No newline at end of file From c5d0374ad9d9c30f6ae99ad48d06eb5b750b3268 Mon Sep 17 00:00:00 2001 From: uo289324 Date: Tue, 19 Mar 2024 13:25:58 +0100 Subject: [PATCH 7/9] =?UTF-8?q?revision=20documentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/06_acceso.png | Bin 47025 -> 0 bytes docs/images/06_acceso2.png | Bin 0 -> 48019 bytes docs/images/06_pregunta.png | Bin 53328 -> 0 bytes docs/images/06_pregunta2.png | Bin 0 -> 64184 bytes docs/src/01_introduction_and_goals.adoc | 4 ++-- docs/src/06_runtime_view.adoc | 23 ++++++++++++++--------- 6 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 docs/images/06_acceso.png create mode 100644 docs/images/06_acceso2.png delete mode 100644 docs/images/06_pregunta.png create mode 100644 docs/images/06_pregunta2.png diff --git a/docs/images/06_acceso.png b/docs/images/06_acceso.png deleted file mode 100644 index d5b386ee844f759aef5609d435e1dd566cf01eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47025 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 DrLZee diff --git a/docs/images/06_pregunta2.png b/docs/images/06_pregunta2.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0b54e51c7045c30af1c739e6b9326fe8f0e135 GIT binary patch literal 64184 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
  • JihjQYooN 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é&17fUEQNE!M58kq(Af!Pb` z0PCILNtXKWD!p(JG-Juh`hOP}sp~5f=~jKvjFCaY8E~H9wEg2_5qqrJ-xq{s0iCOn zHRKu~Gx9;h$GzBGQCR*%{`~fff#LzZ*?{=016y==u4KVl8tGf?sIAY|#<@6A2@XBo~welXHAf(kuF0!v9yJYRoujfeKjny7={|8LiOP_|G$&-J8(qBYsArWDsC+9>#JxC~(Qo4@gpn0QTqRI+0a& z^~(it|1I$QF}Sk{9EE|s{ZCDW{W`A$xnT}0QYsKIRI}f;BKwQT>pOHFcj|2a05;wW zjXWnB29}?m#j<-x@31gT)a7=T#Qs!@E`=Nv`&Vy%{R69M%eSNAk`wn}_x|SHZFEUL zv6r?*a7&?>e0=^n&2Q32(Bb^pz`~v0Q(fb`tKa|z<_%_ z>7K!$2s`jO!M8C#Qtc^&twv(Xh)43nVDa^G6>-=&ctHb?@SL}HBw)>7qGnQD7YUcz z*ut@Ra6PrGUNd{hS1vrR#8MxHCVV{!3T;a*^b+ZWg=}FOwC8f9KZM^`+G*b482b}P zf_#R`xSArn<|^*DeaCZB;iTld{1X!zd0j^dm(yYg+R00U5ES&OTWcz1VXn92ch=eK zJ3?rWhzA1RhtTg*4`58*%smMr850hgjf3UIhA)N3;i1cRz8C&Cdfr=ZioGbCg?cqF zXgd(RNp`ZUgytm9lNgQq6Cs2}_o%B$##0^8Bi5YJ;dz!zFnj?t6&s*i3cH)(k{e;Rf=u6X@X;_r%5`i1e)tmYVq}<4fq8ACDq2^y|J5n(i@cbKW zMhlk{hY3d?ubzK=i8x!-;0LS+H}VL5CtLe(1P~Q=C&?3}l2aD|j5kRMP2n=L9yomW z=etdmSsO)uK34LjyWn*TIrI#)OvXxS{yaX69O0_RZ=WdlWme+CD1q~gjNodnKo3>X zJAd!f<#f&;G*THQRgxc|`%1O1Jc$^JT6+?q9X$cm<)7Q6;d+l}^KbpSS_<5vbltoC zhZQFkVPYev^d{#~A&8aEDkz09Z<%Q``_CaM57cXq^b4LjoC5{jaz91-`eo}7ML!CQ! zsyH||)IF>^j$bwfqXHe5oLfX2gaoC!+#>vY2yAh~oEq;X$m+P`Y%$HGqPcL9E#LuF zm@GH$HOfN`C>x~z?5nu;3Q*-v8c!uB0WqX9ys^11j-D zetJTD%9D91#>-<%Ud>gB?I=9^tb7BPA9vUI3Ow=a8QnBo=|J1+LMmrXPRV0KG`Tnn!o9I{0(NIOCI{xxM7gr53>nlTmb$tpD=eH zjS=gs-C30xO3c55_9Cm(Qr+9jdAzOBiXyDhw4q_Q5AxBP)$d<)t9(o6r6**MNFV~o zllA9dIVefL6woRriO?F{qMC~PArVPNaVsN|G$g0-o;Y%*Ue2gTBq-k_0~;!e!+od8 zYhIC7f6A15&lfeyqqtA>L08%VAGNOAebN~isn^rywcWRom*ajP%i?FOk^t)!KipVR z>IhrxC#lu9QjsJEl8#guF&s!HI$X}g*PEG~1ci0^^7TmCCE*-`MaJLI-6Z0U zk*bH3^x<(6vFNq>gy`10~j#I(;3TA0>y0P1;tXe|X|TRxPOU{nZU4rVggYmA{oc!GL`=?DtT> zn_8UaA&T)eDQ@3_rZ;^9!C?8xn~YB{3Qyi+{=zc>e3ji&|M(scm!))eJcWk9G0Kq~ zx60<1gmgg;HxaWlTB4N*k#-__@fgv>*3ihAt!B-g5t}Kr=Sh0X?O3AfNF>`fpM?T= zAgOTqZg|SKV%ino)Dr_e&IwV|H}KZF5k&oQkBfd4{}OTI57K{tE0L#FonIQXGwk_ za39KE%VnWZH+#n4c)YLWzMb<4iu{5^DGg_c)Ju}bOoZgV&!Kp>(Kp&Pvq;!S=ZV=J z?bqQGnQBf9JN$ig8~b{jJV-8WS}HD2c6u;jCPA*bsUJ*jBdLxUXDB5N-EPgy_>?ev zb12fJMKuwsAuKznSqZu^nzpvFbpbsPo>D#Y&+~1n&PGdAvc`sZ33S+QI`KjI9O!A% zB&5bDAN>?B?#d*vj~I>-Mm-xo(c#3-X+mM|FLbh{VxeXUdwYb)Dj|r^at+#0Y)+O= zv((5EB&dcbj(xqkaZoT(L@*LN@xWqSUx4p~vQpyFhE1(XP`^*(yBn!+fx`NhI3;o?jqHN<;i=-~XyTyJZr0xoRoJ!t@U9Y{G-pKyYj(>RwZ zW}BfXwrm@^z&|KJ|O?U!`w~6qUn1&p9BmnB8EmfT^8LE#?~&VD_KeAYWc}GfUCqyqQ5~6J zoHd|i3^yRf6p*isj)W)KZlJJTVo$;|No*&t+ZC}U|7nTRMqy*cicHH$t_{&g#@p=q zkn$h?A2r-Y$HHY@Whp#9ud7lcFD zw5xn$Wq<{VUno@h4o75lM<|hZi}EFB^P+@}{(G_#NEIo&h-S4!upB_mdZ8HpgluY% zCX@Z@0^;XJFpQwzr)Hak2V7~lXnXDp9vc=e?SFwB-$DP&sxTcYq%|SA4GeQ0O1^O&Pdf+=cJ&GB1N$$a$okLSU$L$mS3$6yJqMw)Y_QBKW%` zjdLRS8d6ZM{rNrg#~cjoEQ1g>lj-UI2ZWQU^c0Sx_l~&@5apWyzT3UH(!VH*qe0Sy zPlZcw?ua^kKKTq7*UWb1$HB1Lh00=Hs{^OyB4lXB?V_yzzB$DE=r^1M%ALC(ivZpQ zenLeMBQy)5@Bg4hC6SN1OLMvvqyUS%*jzL z`Xt?s)t^}SL37hwjPF|vrlA) z6c!<>TNmoRH2T)fJf%#V)R6(iBm`JrVDbEHez_Njpg996NBB(Gg($k&Dn2e7iz5n- z9o(6!elO!(y6_fbgP)4*^uc^31xyY#{C!7ll66M1Q&yH|`C2+_AiK&5;ihjj{~(Vg z?qUhCDlp?}76Cjq3jK&=T0-y;>1RvAFrbDdFD{g|fuE5z-~e0w6obfvDd`Y{m6Lz8 zLN_FKIKIW`g1;q8(1i0J#5f^=Dc9N@;;kTdqv!Cq3nN4Xe?kwOY->m=g=7EPfLCWP z6k_RM6=aY!fLds~BU%09Pzp{AsAKTdmz6eb?wsE)2ZNlGs?&KX1AY54)J5g`DqiTH z@D)^7mY^XNvC8$;zF2YUh9fQ!Ad}k{3ED>-+Ss?Coi&e8HWMGiFxGXUT?hN0pxd9J zbd;<=Oi_TlaT_2PWqYBsZ7A_AEdam3|lymwQdS->#) zQRShfVWjc|UZ$S31^`7dZ}SWfA&Fb#4z3(@cm4`ldeG#TE&<}as_@#$}a2$EAEIGToK(THLn4thsfH3#;Kt6`vJL2dcTX6L63335X>`G zVXi@^g$d!`AsK!M6x$M$5XE~}$^7xjjB&-?kN%6`c}D;Yvb!|fWB|V602Mm|VZjYX zObkex6+9(RA)kha^sw1w2|NtHLi+CCTvviVEYAh7T*KM{us;#yR=`ABfSKz|MGcqO z#FHA0_yUlXV1FpZ+UR21mv3Z`M=!vS=L%HEP6hjpeuF%*-8lo{f8Zf>&a?CW(JMVI zNN#T6Tv4{!I^D80~l0w!)TAhW&Dff#7BdSc9P6<)2hGW)7FfIZAGMbux_ z)Agy&nwY#}MG#=3NBEDgoz%yC>fjC?y(l(naicX(`4m!DZ^E)r>IGrvZb9FE55vK|d zgbdfU=_mICGM#Kw&^Q@n#__65k)e;4N^$Hu$TXz3(jkw;wvMMYyiL{@n4Zw*Th_ke zw=mGFtMIvn-}h^MqUwUuu89@IC|=aTz9bekyyzp=`A~@Aag86Xkd5(5}Y1g=tBUR^1;!ao?)~SrN#`MkdLe@k zqXlNRkaBtpDN?^m6ASCwfj+hKWuf*@2+{+QSyu<^Uaog}VRV0hxVln&+L2aSm;(@n zdrz|O1l$tbEC%+NK!I`OY`|E8VhxQKEGt_iDt`K9ByAM|J+?1qK)X?OF@9$7b@k}q zjtJ)hjIlm=FH_WI;%Ey4^aEf!yd?(rzGpb0Ve1QI!EzXOg9wFo$YhcR{S0Ls^u|1F z1vF3V?^_UytLeu+C$Pb^vMDCOShTNRYT`v8Z)pNF)MlptOltlq0_?Oq*x$onyQjEV zY!l~nAEX4T5GiQUbDJT}Ir500D3>~%B7A#H^(zHsLp~AjZQhb;#uvKVWw6+)J__gn zp?-HRAITqt@tDX!cq1=h$Rb|5(5+l?fu8Ws<%PhbFB+9| zOznAt7sPDtE@R2W=Vphihr^kIa&2sA|6H{=j(!;gdz;1<+|UaEf}~N;?Dizb#xc0< z2VD0)zgNc*X^0YYooU8i3f&lCShv!<1)R!{zFmf5=1|vt`@+w)m)17`3A;t&3%T-8 z7b(&yr;6yuM)8;GMQEO1FZ2fS^@uN&>eXe?KuWtP=Ch3Z2O5?p7bqe(f0KQM()>*w z=r=zUwLBFdUD>gXn)K5I%I|CD)F|0x?>gUJ2QIEbiqoX3V4J?WQks`ix-s+g)LUrb z9a8JRZgxek90BY_$el`K%v|TAFtk$AIGe8V@z#`Y#R|~1O zXlf8l!)sQ-t9MMkQqD!PP;)x#@e|ppwc`xF`{mNqx5t!j+S9K-utai@9u$o0DtlBM zfI7LkDc`b7@A<=ht%6ro@oz%^?5qL!TlE0(El9Tf?^aI``9Plz%JJaAG2=eNl%QSz zxVgu4f95*~^48f+cW4yj5vAnIn&so`ae7X+=I^I0%w|p|NW?iUfaLlc!aJJ{0+6-( z6R#p$P=|ydjBAD zURHkRnT50NO*eUz*MKSazDhvq=3sX(10RQ${xd-Mr)j$NU(H0=qDG=PIJuam3Uv7g zjupBI-;@uxD@ozm@Iy{W` z=Dd5dwHDe1SE~^juR830yL5V~0a6uW*edpc!>91^u$*?bM_Ju{UXPd?l(r<)TdvG8 z_w+g=TE#>pX%TFEyivcWh{GZj8q=h$q)CvK7S1ql4*R{KFX;Q#M!MXi+8QTj%lk0tfurUY zQDOyblYV{(9k1v%R&_0_6HZeW_%q8OaJ>#pGp95L$+^RU2@jq~lfH9Zx?ca{D+w6g zvS*^>XTnzb!%Ut;{2Kd=-~5_*SCqdm+!s2(NpZf*gvDA|GA{`Z*gd7mW*0Sf9G`)H zzVk?Lqf;hQh+MI?8=)thvAOu3@2YJ3l@bdD{1NqV13ki+Jn5_M$^B(ClCoxY1Xox$ zEF$e<9OYP#JT@QAzTQVT3FG$r6qK!0FUkDz0{8^FA7HgI!{jq-`q-++QvZR2nKt~{ju&CZnmSJO6@`Y@Z&9^*lE=yiYU|^& zKSbw`*Zm7NL`Dhkr?;6v4meM3f~gu(+$1~T3&zvF5+p|In{7o;_OKzRI?+hFfkGRd zzb3%&<>;#!A3Wh72qCi92GwR^541S2OZZ>{y$!j2nPW$_bf2{1{g7YJWTYFJa2z-B zF|NOt+hqbRu9)4FLWy&=7t0^lKG4v$0Keq?^$@u#o`@+jo`f@oZ)ZwF=RAX*UE`|7 zHh-F2^QW7vGSO$Jo}#;AV-mcHd#^0BPT)7#CNt=+z;Slr-#+T|DI%OXC4BtC$7`9G z3ApD6io=CMzXfPQdK(xQ_qbp5q!=qk@Gz<&f>` zCYK?;;F4paGEnK&_bpEhK)2`@<=`8(OSep!%@VU9>;A9>`9r5zXl|}kSxZ6v4@IC4 z2pSH*c?Q{KfNr^~)w1DqmKLI9L(@Do3#(q}odjp)c#YVCBc3l{a z<#6%7o2-Ivh%%x&SBQd0cQ~&!*n@+6I|4QA0N^=)3;~E;JMJC{5g28;ivDPCumb0) zzN%3yj{mA^c&0J?^zCNw+?i{}&6%g=2<9suWtvKg8g4os{UHRb6}}yQNDh;1 zL44tNu{eRH%df0z-&{NluurPmp=(;F0NUyPrdT*<&F?T04F@uRW#AW0n0cqEYQWjz z+f2N8lU#xW?-3&gMlNotPs9?5S&gkZyXv{(xQjiFKMrud*Z!K)jE&|Sb(7r4JtHHv z=6%Qj0V|5-7_rM77JUJ0bI*2}3^7JTt)TFtg3$}72DDmm-qS8>py5W2j#bZ_foB6* zvfu_baK42#)Zao2-3o^gpFdXy{1+dACewi@JsBxqk>rK-YQ2+ojFWT#iM}voDoS*6 z-w4|e0|K9bsoy0P7sj+a`WG?%?+ZY+fM(DTMnbcunjswpmQkXk-z(@O_!a!>j<~TfqV@9z~gV7KiV1E z6&AS!kDHfAq3Ni+uwdgn-6@Hbbx`pU6h5CCU@9!;R4h~)YfOx5Lb6|VvJheA++Djw zLxE&H^I zFtgryn{S_Qi71W93Rm5`$>uOQ=gi7@x^_pE%LVTAv^!<|?(G6+PU1B{7guV}x7`%cFKf(1GvIr~D5Bp9=1q zmgn>7?XV(m{rbMLtCkcT%NTuHFy~7IA3|sdzKHLDy?`j6Tr2wiWc+|)7oK+kBs^|q z_4wb2A~)*jOWqrwG7J+TXwNq}2x2m-&hcA;ME!Sfr+pj31b(kFE5*7GRg;D8&8rVd z3|#$mejd@@6o%E5qWkJ&kuFztVJ$!%HJ4ECqL&xIFsWFa5xbX9d&-OVG~#H(Om)C>GND~vvgGQPCQk|kqVQhg!8m7#2@<5s%iV8MnOt)s9t@9&2o=l&IE{#KkLFZOQNCP z0z*u_4AKD+$5hqPPQ)#b)dvxceiVhzZjs7G70!Z~Yux)7nOKhO)!t}w ztzYWkcyNXyTZMkh|2|^n(87xcmP)wwcfVAfx58YbpisR1F963|%>-tBip*#GKM^;kf9onUnbDjfA_^jE|osZ9^ zN8Z%RSer4eLiNHS{{x$>6jt{St#d`KIyO26WLE8G~HfXQGdiE+$yX zaca}jP0P~?4l6AWhs7>7;X3^JlJXUWg*B&zTw?n@2*>IxiVD9x5*KV5lFP{SLx6n4Fmtl`*9oNKQhO!W!#dxtO8|4^?ne42R_sb)s+G^D za{}2kUr;x{VI-lgd4p^&J8rz8vRud0vZ$7JDK`vEe_k`n=Ot)8k$*6@gKy^8_Mlw2 zd@x#EZLZl*5c|&O{#wL`rXj&N<#66F!VB`)SXF|UwzuNd&mBW>?!s`;jW!yoAtMU8infu$#)KbLeCFiEMjxx=-+I2eJ88T=~-}{Xy>TSK@NR zo$uNn#t#4$x~b85IUSu$$!vCwbd`Ey!obB;K`BRvVn*G&Z8)G6E5SM2yWj7guI1v8 zBO{!D(c$7+kvjXX?uR=+%g$7PnBYORj?wc#g*`iU8E?<>h!7b+@dhFACWGJ{6()E{ z(xmtngWEwoDIVJ+`ut^ED8e5HaFiWOG6;X0$atF|4wh9Nuoum(1RkvbYR$j@dKPal zF#3@#A3PC{cpJwU-5+c?0}m-3__L;w8(@I%I!cKV5KURkgzvVQ_yi!Ozdo?5a|v*K z!qGO^fc#ehY0y-8J0tFB>QLQ}f;^3oiZE~^#nU=66+5f^e!N85JuUEa;anqSLqJvB zrY5?Zqf9$)A$OoXHxCTaK47Rh?&DQB30Vwz49_uMwc?H-LcRhWd2u{?FPiEjr0GEN zlIedgw96PxfC5byb+gI*aRBgGV{3#c3Qzwh+iv$M;E8q63+f+z8<&Extx=}8c5kq* z%E&;AwgOqIm66B@0QvsXZ+9;_e0sNO1g$4RB)VUSGV=K~fWbVVdWl58y^REELH{q< z-rzq^g8%^x1;7e5dv;nRi3lqHyTBLS`rQzWK-l0VOTdIXFgiC+LbLys)fRsMKdyB)wLLei71WdtqK83R;F_0dHdvA&kBh zf#p_Y|3IY>Y5@|ya0=mDVES-pSh@+wbAa5PA!=dE>;I$3ICvbmruzr{nMc&TW^5LXo5e@s~BIBe`7W)0%WQq6mX{c(yef}ME-CSrHVWVz+ zLTa)>rjI2qUSZ3`0Z+VhUH-N-Uodq$4-r{g8R*zdGcQ0PX(XQ|2$y(C17T-6Dp-XuK#8{6n;QJ0Q5`-`}|R>2zvcGYeOdlPOfhR zpZ)+R@;PvdDnS-8#Pq@{^mkbW(|v>#4WUa@lehJ*@ZO^LPZsm{T0pe>@bYpG1LFVI z*Kq>Clnx|6z~{%HC8AbI7Ou~37GlSgp)_c*LbgR_CHt_5Wh>H~3G&?r*MKRAEqU*s zmBhLLjO%TYMKB@mLu~2!RegW{COLIYLCY>~8KB7B5VC%|By|^9rE^$q`Ife!D(^#V zZ4o_pwnx(eH%7fY;qW3Uy9DVokK=(i>3@k+6b+Qzw)T_CN^gLd>t?9mq5)*Qg&#^T zUuCUY(M55y)T=cRlV>RMNf1TZ&Sn}fKz{4X3wMFZ9Ejbo;_(e*mI|<+Z@IDtD~*?2<$W%wM_pI_Ai(tu*qZVvpW~vo0k)g{epWc zXERazc(??n@(BSO=+P)&?JIr84{<(k{y?ZqA;MFtu=}m+Z47xi|D1d77%dR+G;Rr` zOwBwBE>1AV{OS|jMeawisI(x&Pm`-a0{0G!|DYF-dkLm!6Pv=3z|x*EmEKdIkV&7L zeqft8W*EJVUL`rwUPI3_@VVc(xN9<8VRnXvpqS0jr2+z@IcR6EsDP4aV0OQS`BPqe zwjAy*X8PnWom*p>U_ccNjiJCNH#WLR+pc$BDeZOZyUD`$h{poD|MAbD2QVZPYc7NA zA`3zPhpx8{t7;3|cNYkf%32^L4N}r2-6awVxM3*`A}E4%OUF{WMM_FkLO^2C9U|Q+ z-Q5jmO!xl2^E>A{=b!Dhm6&VJIo>hGJD%r$Zt|f5-GI8g5F9e0kqWrNz*FzmoW|p8 z;5^o1(My7n4e0e!i12;*C$KAX0oy?v3zPOuy)-S`glONN1ekuF0~M)#XmOHYoOY^Yx2 zAj47-8hXj%2td3Sy9wHa4ItxqYE9u08Y4}RQPW&eEaePrmI0Y z1XJq^-~TaLf!9{O@Dn5BPcgz@d?mS`%lZ+AyjB>D;^dD%Zq)WN6)|KH6(wQXQLN9_9$-#A?%nduQ? z82x1CdxI$MQ_gy|XhN^@)LCXDkxZQt;u+3)dAaKO1g2vWXPQAY5-*%z=;`Y>w?y?rDjC^@>hHF zLW{nQUJj8Ko92ykOvG81=N?qQbYZ;tr3;=nSOjb*+?I$j1uO=8u(?mbiJ=3pimr6H zedNu#ka_s7+I^t@kd%~E5OLGu-cxhpn4OM|AxEq-e*eY+(76I`VEx#%uQ*wpb{4q= zs^Qk+XF`|`L=A?MI+2+*yB5oLTYeaMfq_7{yJi;*$zdiT?-(P2%Y%mTP>L7)jB^M+P;{`& z`dZFB+ZlqR{IIy@dLJw#N`$OU%`)R z6bdYDy_zOeeu;wcBDC`pvTk`x1SwYE2WA@IF40(je)=HMAfnZ50Py~#a5J47nTBXy zXnU|05}1e=y`U`KEBcxH#7UbD3~0A-bLoskG2(12+3@QHNQnZ@mr!rRTjFk732nC6 zp=V|i!los76xZ%3-Qnk;YeQvVr09t00g_w&t|U)-lWJR7IR6Om2-7j?aoFgC3))G4 zi5sp3+1*_zfzWEc@9`rez{!@CtswV#!2_lhREb9uY>vUH5Y&9Bv?5SRf91FSAyDGvwR6K=6ZmkHXujz37xOkaROpyRCb# zY;t%Gw$7mM&?WT1b!R4@8^miNu(dc&3FR-paq#r-x`Ia2REGx`#Z^N(7ow*`2{bwh zSz#yo0F}U9R`h|XOxwV?IgJ;yo>2*nEVY>ut0=XVZ@aV3PNUuUs6SC=Mp4!_TMU@^ zHe<)fZHy>K4 z2JlO3@i}^5K{C`y#ZY)$Lu1#2$uzkQ7k%}{ud+UxYyo!(r0j?U_Vxg!ll6FfSTPr! zqutykM&)rD`(p?juz;_>gd_$R>OUHfLYGBq=uEiHU7bw z{#Mz5XiHqEm~qQu1=Ug%uXliT3Bu-W3E~yp_q~N+!CTI!fgw7t#l1nJTdGgA1Y>dG zm_dRS5r_0y1B37oA-<&ZBHI8T-%C4HV6YV3bqo$|cs>ax_RR2fh0y+{lph*Q3zod< zCZ6z?72ok-#Ij_Pg8IJGHUW_j>GB#-99Z{e1dK)*su`{Z>pQ+VHllUqu;>El8R632 zVkHcd_Zs6*@j>HD5^7@k-C=0IY<0jb>J(}{RH|YSOiZZ1XL#hm*+`t;S%;`A;loTo z+$a0QXcWMb5qth=ZwGH$d)q32f6*JXG|Re|WjwVapg=R^()5Cga?Ba8C?#LF=WQ`6 z3Nkbie6e1F@M0WMJ?Lw%#eETjh?-PZ;LHfKBp44~h6BQ;lHNi`q_QAA-R^Oe9O?*$D)?MY%^wwOK$nMU1u+keLk z@0FMborHsGJGB(A$JvPV`bE&7REgUOnFS!j%Jv1*YZdX%frkVWMTBOXEq-d0@aDl? zU|QKxOfIZ8>jI~lTJi?)%IlLh=?x$d*?B*L8i~Z&Y*sKS(>7#zJD(K3)Af}aLyWPL ziGeO}xCC(%vDR7|umg<7?C%dCJFC$f{37+7@Y{S$_-giF3{F!-9)R4-Y2#Uz=%@M} zOaW|=FBg1P5x69d6?1`VAPr|Du6od=9eakxMax;Jp3e6tN}YW8ez=MsO)GBqdBa!L zg6`?xV}?H21FsnQ0-Lh8K>ijMdHi2Zc@MNS|{*AetJ+aZ87 zWglKXNcCH2;^a2!6?jS?HL&7W&B8@n#mSPDr)(+H3#e6SMKmgqPxRK}4p+JEL|Gh2*YkoKw)5+r~)ZnvH^-cWS;3{ONURXJkvpV4r=+v#^t!}>qiTrB^b;Ks(V zR-`fx1S}Y+0~Xc5D;hIJQ9yQjLoV`{CoYpdF+K+_eE>H?5uQDWlQy^0&>!YRq1k39 zEBFP+k3?0Jn?ymlVJICOoN&|o&vfAy7?4dgdKJC)US@1a+4 zUSkp3*m$><{H`iL-K42)iwrf>#%@(vg~zZCTjs5lke-_Sv#ie&J=ZN4OOiKzlIkF}nHFDdnQ-CbyzKQ} zuL7Ko6DhL4$EYqW)I#|BFqj(JR3nt>^vBTnP8Y-b0e$byujfy$go5AjOG0e#FH;>wvKc$FfG3aj^ ziC>)jl~hvH8pXq7($Q!uaLz_@m^HbY@5)|`L#8->w$>Nk19vvIYK9Ddl-86%d38E9lK9Ma~b{63raGc2<3Y~l3hP(xUA z-w;$QYtlJILsyM_Rbg5;EPfe29BGT1^hW+>r(;q@XMks2+-oSoYAN1d@10l;KUTAE zexxpm&N)@RT4)o%x!#GCwhqQlD)}nC+4fd`>QoY5G}%*vv6&d>%+6-%((xM$sVEIv zVeheA2xqdDUAcokB*q59aep`O7uT(RNs^FyYuiO1jluJe0=N7|gv1`|M`-XvnKy{a z&;$ng?dlb95V~s8j(ghjJ22hMus5$bC~_&VlOQ@l5HmPIbi#+6(@g>l^xB96I3DV* zVQ=&9B~Zn!E;4b65mhH6gcshgD7|2EFHGGfX03tr%=?Eri$2amde z`=Rk+VXM72Q^u~5M#{(FC-P`}NjqtJsR|3!2j6q-#`tspaHg0uG%Nf^bKTOXtT3=i zl)ESb&w>>`zo7UB*JO)ei+M|ROEXo-^CVnGeq*3j{~U70PV?Zt>S%PnQm^nYyl0fx zI2htk!8%GOc5}h^F`xMY^`s$yJ6f%QLr1!bG$9783L=Q@7jF~5c}!_~m+$dilr>`z zeS1au3fi`3S7L@Tv?bB=8_%i(5#y-clp9bX8bk_2`-l@Av#r|I)k2bTqQ^Oj|46H( z9nBw82)qm}$8gFdk=NhOD^ZngID}XN?L;Lz>Vz|k;SnoPOMgzRy7?Ok50VjM$9@4j z7#mMkH5Mye`OeJw`#?PJM~2k6xQ5-1ui=a*@9d?>?gwBp47g&)uh@P&08JS7|^59*pM2_#b4LmcJUbQ7W z?N|Ady71e%LtbnFV?mu#B>n-OQx?rb|92$}=H^sAe!aD^A(t|>SzSfXUI8H_+gf|D zILpqS`~hQRA?^NL=EeZB-H`VY z*T^aOien_3Fpu*dNd*p|-?Vn9w3QY5!ROBw$7PclwzOu&F~dEuXFJ{zH#096OTUrd zunV(OxBp?>)q>yc=J*s5O5NnLH$Sca!?T^~72=rD@4;a8H~Cu=-PT|vk-eT z^6#2ZB-V;FmQ|5Tmhwm18hff-bgO%^8!g_2ubzSb zLYb(b4QkLYmvD%ZDp6P=5`-iw> zd7brQfkK3K8f-k1I*{FmPQyYZ+0)H!0IxnJ@F5nV&_1S_IM3iyxeC{!B8da2k8yrn zcfHAU2idRqr{2le3X6tO%sgYIY2QzSFU4fbr8XoFoD%(YASwBYvlxGqBgC;Hq5rVU z-g1p_A?EBRT%6PLb7k(wUUUi0o_cu@|1Gp$@9 zQJiAqj8?sTixrfUj^NZCtbEMyc{C?gZ5!&hPXX;?_x*dQ1^XD@@}V=5OKRujwOKYp z^bL}hj|aFYeU=xDmWY0I)Q%s6b+gDhqV+;Cl4($0!r*9su2nG*`vEvCSTr~09|B#` zd8u(^7p2Zi>0wARG%ikvtVSGt+mXxE_Bo8h=H1zD^``RPYoxB_w%MtgRcd&MR|l3i zW`5`J#DBhGQ>lJGvFD`%95IpX!3r%+l2h>x}Zy@ZDCPraTB^d@c#0IN3yg;Kdb)G!(FJYtgWLaecLYErE$Y z+hFU_aF#lpk}cwEbt@B5fql&2r7iZflK{?GSI<^|aeFBSo+KR_-$Kb^y}z*_3fyX% z86uN>3~Hb55#xdoQ2`zD4E7nlE~yIv#7~sL+FeFoTka?o;GkF}VHXX?OE_^LVG>r5 zlBs95jsN`9)h!KN4Ok~lR<&e%@?peuc&y1>zFsBz-`<}1|*)t z$xXo}W6EQqX~kO3Yv3ULH2V$8C2#)~s~(w??P7XNV>^Zkja@~WxrU5Q%6^3q7Gtm#+4=l;Y zCnqM4-$V#pC`s^yOgMnk&1<&XE(k1DJ`!q#9cN#t6$TF}LK;39`n=E;9zxA`8ipVg zd*JA|^6^F6Sx{V*Chiq+L`p!PsaU)b}Oyvp`qPS-&bz1&TT7L7nt+ zE2$VMI-_WXw8t(K%Q0hh1)=y}Lwv->gx806mTDgBCKe$U*yE8F+mg$|?efHelQ4Ot zIopdJTVsqFn$uFPD03My0#Q6j;)*XtuBN^OF$MzuzrN#2nU)GfYf`Xg1);={tE-^_ z?P3kjKg`TiHVVGwYin?TM)Waeb>OdcMPuIAYoVEH+f z`uBtGY+4iX5puV{byQt!*t^bkW4gr*E_v}?hFeEbwBBQ_UTZ<5NtTKddX3vLXEa*B z)y`tW>SBYdRd`AiWqqosNox5Xtx&RqqsV6<_xd8Mdd4+cQspmr9-DSbzVKL#&U452F>2{gt97WQTxWs|g&DiWE7vvIs;HaRzOEMc zvH^I7J5)4$h#koPO{Uu{@lB+@iF2Fl`*#wUB)X2nfX?}W(KE7!%HZw8X}1q*O~MTo>#<`BlF04^`;E8CNXFdkmA(WiyI^tX5Of8&E~z^i2M ztJBq5wLmsPW1;K;lzEbe&qVaO&utRWX;fiTV!Thk2VX(m$70a=1zUx81=SJ8?5kks z3VR))l12QC6_fd1D~=WIkcb9%GXdHqu1sDZ?gKH9O0iEp>*hBU{|k+h2w?L|u)vCP zwW+&wCZ7&vgE1oP9=ksB%%Q|H1yLyoT{z1@znzLx*WB@puqjpMYuw*Ele5C}{O7#ze@+V}1E7UumI3#+TPX9J#zqzlUguB}ub88n``3mEKv} zQW}8%GL`tW>#eLPyd7ka2A)zn%6;^Ye3l5#G`y~B;1?Gf5GlrtohRj&pUh1_!}QXm zfBD$Z6}jPR!kDKmjWlqr&zVZ?3l4q(Y*Uxn34gra9k3J96&PVXU9*)iy@kLM8y-<%Y5>I#DHs5uUd1H2{ z^x4!}F^}OMV%Sj-UgfBTbVJOdfnfBl(<_;k>_%sWd#|8vyYeJF3SGIVh?6=UP2@+) zA-I^WKj=FhKaC2cqW`)dHEo3-3?NwR`Q%rgw1|0gH(lq>>y(LVHiR**}56&NpF5dZZWB6?c$!CKK zsq%kbc03f1>;We;>ogx{XrDge)l51hU`qnisfsTW?e+_?FFM3eZrn~f+dv@1u>Aw!gIG483Ty7>ZZJxz**HasnwTm@5e4gui<`CO%tfhUQEZXg zVUfe-I%c_j9}8ecmcg*@55EBoDh)&{vJepjoVH)eNt~LdZXg21Z;_3Ja`vNSni<=e z@QX0_H`2KfKTD*0GAEJfF^DWQN@cG(871$Y_4w=K0-Q!`Q@7S) zwTC^xIdbX0jqE}+pcM0lkZVm3_R^`*RkrVTBwEyQT$uK<-$(=(y*68r;SBDk(6JA9 z1MNQvYfjL*e=Ex4r1bz`%sIu)l|lvhRjxvv$p%pbhl|I}9o^di!lkK64-S%cU2qA4 zDdbQLUT{8ixG`VzUDS*Q^FOv}ZcB;JK6!@9G~TDRXaH%KKPbr~OZ=#W@mK=FX~c&W z@0t?L23g8eGe(~tfRu7oOi`a1g}nY$Ydp^Krb#X(ac0SVPP|WZ$LNcI zKL%E=$ocN&5^^obNnD^oofiG$MNX&wyd50iPXJyjep3u_%a%Ewk{S zopZCe$E9U+!?LNNON*q)pLWNe&4PKqkjMu6zyFNuDs~^en6;UlrR){=4B%S@iby7r zdaeju&E)#~D53LIkFDLfv%=SAam_fw0ZkmY0~DX`Fab#|s&y?a_ZG<{NTB1G`4KkF z+n8{&_@*tNF#Y2{g~g^*t#LTHqFeV)WVCNKo9(Q(WcY@vK zFGGLVY+97D+%;rmKav;=H*z;z4EfmV7dF$}mfRbFYc)<66;}V{PbYc3K|naY$=%&w zU$kS!@j8F-D`OloyvYP29NsZ^0WGvpZ}4FO_OEs|us@#dbLiC=>QW0x^Zam(*E zQ;}Jc136jaSqx8H)=`tcsMdNMLqG~z*q=O6}Ok~7t6zg@aI1v5j~VDS?k1^)A0?Y4wZRuPp!Z1+yA9V9T5 z3cac2$9BxyM#M`5tP`gAf2MhBD|Ki;;WY))ySzQ9KVFn1sDhT^L;^~a6%f=gaw$3i zIP2+qG9ZClAP12jB&m1=AAqV0!OUsfY^wE*L<(#S@E=X7iv&^|C!?gREo|u;g@QaFQwgK9 zACnHaZA+xruF1v0YbSz$=|_dX>ssZfivTx|gZaEupP z8`YnpAO!>Kdp;vSk1$-aS0++IWHSGAVG0!tt>SfN&ZcOfuyfV~k|%tIiuYQ6G7A)_0;vRrK z-pl6TC(Bh&@HIy7`b4S0JISS}2KPIOSeEfZovGK1Q2<0fGtkn*wC zflIoe*HQ_@Cxv3BrFO$DnKO2FLAuyDXw(0tuqKb<+2l<)EO)DW0g=rK5E%lQ*?A=f z(19ekJs=MxBJ;ZoWMFcDo5;ut9<9HCzoP&q>OO+BE}zSB_>DMxq+7=_P) zyf6A+fF&!Mlnes9dO<|iKmb2oAOM#JC<)P!z!4$ZJi7%jt>^QQ4ibDe67o`z@cQd5 zbVmheH2ML5m8%DcK%fh36wF5!F`lYJz}lN++)&6GP`14Nm(u`#DCh&}0$G+I(Nv22KdA++U0=aKik> zAAs*3=yfN9uIEN0=6&!=FiNvUx$eH^R7c6R0%74M5N#ZKLvtbE23DQc3Cu&O>HE0; z&W(7iC&j}jblyNDa|BMb&W?c1XA*>;$4G#nae!fx-2mWD)XK@_@w6o2I209^aSrT$ zCG6T?(4$h|h^YjIf(AN9_LfHEg$pMIu(Si4LHBC_R+(fBct|k33bM)1>k^M6$4oU* z8=%Ag3=+Eo-CiMNcd7u9ZAW-!%#UIVp5_er1;5h?isKvZGwZLa_~10m{;KsNfjIOkLtY-fcvRIOZxHF9+?1MlGY8oqB5UOKF3e6Fbm^vA}8M)b{CQ(ZIK?k!PZv0N(^I;cGtQEI!~ zw#(S@2_Zdhfa0%H*ddiXc>h_7-T;(I;`5CFwygygklFf-?7Y5G7{rg4?;s+Q-p6n{ z7y#qs0;Sv?>yLt+Ux{K^0K^j#V8Y!VZvY2zNBk%m;LLN>I-@VL>i*nKNG3lP5AbasE;Jawh`~Z^R^af=mbZoc;75&7Rx>4(DET zHTJ&pw8=ndeP#FQUP{ zn0pI^mtz0bf+g-`@QQxo1fVrgC$>Oh&tN`80#=BH2bF-_x}(tgNm^QhVoyna66tIn&au$NH8ejeQB`9{;NGE(SVSx;}SMs34!=^-pR1b~BJJVMr@>YzKc%K>=|_ z|2jv3-1bKu%kc}MZW=MiuVH|OInWN|vjqlLO~FLv;Fpc0x-C&sNx0e;^sD{`072`G z(IU5aL&N`pT@QPK%LLOX^jS1dWYw@6F2UAn0stqiA%w@)rFP`J^aKFTLdi`ASj!1B zt>(8Fo;}4DPDw~s!+cRJX5I9*@k8B(As|K<0jK4nia2&d%D|qYEMPqSi&;vUkviy= zpX%TWV7oi`O}nk^&6p{G54+5^Lhxtq1$YvuLM8m>9VgBTJ3yK4DL#!@IvHV%MZ9{$ z#1-Bk7yd+%E!yy5(j_(B5!1oLgiW>ZOs0Ax&dTIAqxh4hpMb8^gVR^_vg@w2w5Ldf zV86e;*2@mRC(Lg<>W`jqcgWB(NbW6COI;+n?22tZV=6O^}q!UldWc;JHU& zOMU)Lx-F9I)fZZl&orY(Km}g~GK)6A4xtE=^zyY)n}I07B<24mn)7K0+)Nf*xSwtpDS_&gB7) zyEcuk&l2?X>D(3&RX`TI`8~Iw801|7@%@or*4!u{RbHFl6sZBJbnXN_G(^y3*FRm1feC{0EZ&@k4|jx15ipVHUTOy$J=p8$id`)DeK{&XAZGfh973;cepfTh*%S16Z@hTe#O+d+cX9GU~d`&@KSGXy<$za^~({r=%$9^vmk{j_c%}{ zD~kiL3?M?i<_>rUTZC$Qk=il@Npi^Dg3>e^Yr%>y^)bk>egn8-2b@|{qAgnJ04u3r`vu;9yq~iT#4x`%YgdbpHGh_{L2UCCbMeJ-lQ$z{W ztS{FT9?t_yzds0ufHmM~T-UMOYyPBuSIBDkzzhn>vu>+VaVjyHkw4CAArX|cg>|5 z%NE5c3rU$g0G{T zIlr~hdgSRnx3iX!U|0j;%Q=8+Yn-ds4B)lPro;>pE6Y5Mi1de7kmnYG`iBfr3%+3# zBtk9vQE7TZ5COMetof=+@MzQ-D1Fm`;u$0+;c#W@fj(KZmQnM4ObXpw%_1qxduDVg zn9X#H4fZrx(kVDf_=SRITuR6o78+Q1x+kuFfTQiE%o}a;@!$(foblA+FV7o&`2_(G z7BG~y=017nluwG%+*}%c!ZIFQ#>BIir5*h&aUR!NmfA+lAIyHxS{^xD_#I4)H<6-6 zY-TOMd{Y*p*v$9B;vRu!a3HCyB#`t+d75aWB@C}3$*ynvQRPZErW}0^r&hJNF`K4o z06@L;c||B~FDxl0f@kaw)U(GXcWz2M{5NmYF5vgwQ|QB-4Mq}hGc`1RN+lH{og{)s zev8?92rYh#pwK&rn+5tCs{C@qCS!nQLwXB9$h3q>y_;})eCkVD+-B24(tig}hAu07`{GR%$(a%DI#S z9_Pts5i|vo&aMaFO3U;uN*MiG;wdpGU+66H$$Sjv#cHG9;y9s|vtn$$lrYlX}Y*79$puqiq4EJ?O8g>?*&!DSRtRrOO~QpOav z4ScU|`INm0O1I0VxqGN1B9Wx@Ru{NxW_2+PGV9MIFT>@sEES$*Mt_2Rjr!;COs8F& zrc}&|?O?6KESoa}?p_cb{gXX%?Mqv(f_ygpryZmgWsp*s&|a?p4H}A-dbzqEy!k!f z?a2e*#(i4(x#F+xa+_Zq%kOWQK}tQOWM&6<@yFcrSl;HUrzyQTq^Q|OewBzx)jk|> zzg2qR0ji-o7Y6CsVWLxEdY`5Gogt5ZCTc8F-CBt#1l_cK4KSXO+!bQ{A?AYZ`i`#d z`f~fS;wgFl_LGP{UzC?J3Gv}aF!zoaUKIng*Yz`5{prBxEFY9Ud4qG;bGDkwz^~QW z)i=te(ypeuk5hXtQs)Ezlvft7yu*}N;B|5SjTJX^Uzy+MRPAlqZN)|GB0QhFe8ZNGZ<^7-S3|qt zRR6hc&CS%&o747nf0k18KUMj*xevV0%KKaj{IS9&tzw^%+#m9LV$Oo!^PNUlG|21m zkMuIXv#P7G!%Mc0>!%0LKYje#LrtZk`%w4Uhg8)VMxpONqz|PIMGq(sQXP5I;{)&~ zm+vcU{(4_aAX(m6eO0hLaz3!WE-2;bmVa4&O+V2Veq(s8Seu-Cp=z*137X0p~sja!g2U3e)lrG`tifbGy49)*2KOy zByvMnT)pfcynblYj)Mul4K1FPLnI9Q%(y~`dKA>197_Px1cN4j;FDMw9!w_o>0Cx} zw1{{g!3_Q#7hk>7?C(ZcF#1Q|^L3L{3NB&vuR(QKZMp^fiu(!c5uFW;lwk|g1#IRy zvivb&GizVMdDrgA&)kHUq6sEpFj#%uy)8^Ad8pcm7Y5VpccKG57sUi(SX4+=y}F(Z zOh&PnR2jIyZefDHc8kHx@Jd+$Ee^O4$L!9rpB4ij$Yd74P*~rqFR{dgDRA-e_3=0u zjU{}owiF*IEk?8kKsNw@31zMYf-P2he*)J2y~cMP|X0U?C6X0|%-W+y-O#pr;_pX2{`&%u{gf zz_H$GZ*N~6PgP$LCu9qF{NsCjdr*)9Q3B>m&^p`Ess)0x`}+1yQ0J!xL<=2(6`CGs z`ZQ(3o?NYf+l{_Ydgsn4Kt`#6dk)>ZcPBe0?irXcMwg2dJ01>``y@VJq1*SO03Z&7 zq%mOdu+C03Kwf1X@q)oc&unkN3LX`e`5est`)q*qGuxaJMsL413>JCEa5RPj_ZFrw zcx1NB@2l!10m2Xhv!0N^V12#+A5U!*kQHkHWe)4#%gOKC1RmjlzrVM!Q4WN?Jjl2F z`y*Xmzy5ACP6P8{TeaU3dOcVe5D;LC2UB1Izs(v01H3@O!XqI1QSHB%0xI7CHLLpf zH=_<`HB?mz5@0fdf9v6E=n163V5p!D6_BGfo6QV^XM;EG^*{*-RM}yL!7}W2W@JI* zAcaQSOF|zL)(2j0Nt;QLaZGTp$gK#F`ufz|7(SNG1~Xs&j)Ob@Kle39i#RSWSaK=TJ@-^Ru1=T#26W(&umnV47O1_Jhjun3|2-?84?jVH^#IAS8$cCU3TYN0E>Gr^ z*ucSzKT%KwCJdIq`0wz8QkG^P!#XCeF3+vOR~@BYpQatrUGLHz0kqm!V<3TbTR4rB zTOKgC4TD&rI*=m5Jn(-%cU4^HLOUVJb7kqXsKv#_G0^z9!;NA4K>dv;5G+G<%G#Rd zf^PStrR2y+_*K`1j1Ges2gh$fYJCCrvOiPAUED`S?B)WbS%id!KsLZz;EOCtPNp^r z;+O`AJZsRig`a1_s_y z7I=P=`1*VabU?YlaD!xz@7DFEivh%04{Q+r4ma>nyib1{m0A6$8TJCJryx~WvU<`c z=wLRbUCja*lGLnbO(1yPHp_o*j{R&~>P}fFzv%sXJe;p5>AHTZrKPn2`BWivDJ$;{ z-D1$<9CxWZH{daU13o4C4y?myC}-{s+cWVi2xJSkM~$GUC@wNuOy6lHARvJ9UHfC61Bx)y<)x)@&~~u_jqJV18kcQD9M}7on>qwl(h`OKEOakmen7 z#(-&p;hXQ%3-;CHf*8wo&ZzLI?@zy(Qc_YHGJdvJF*(zZPizfUMH9nFf1uH$4?r{*0U77c!20+3Er1W1 z0w|qXCKycS87MtENi1Oal0zm|0nfc(9~5v}d>9O=0%7csuih39T&F%xY11Gj zLtH!zl*TRUPhvclvA1Mazp*$0=5g(R)`U+X5bFaF<$-p^=p zDgevQiT7UP&q(54ygf5Hi2o#AZrs6dkk&l~f} z-A}v~rY-o>L4!sVGQS+Bf`MzV51N(0H|fhl|EWgO*?_6;Z>?^h1or&KG+1oVa}1k5 z)nnxh26n_UzwikNtdBOvN;0tF6`;0#`}Pe?ecZm4T$WT?Au=##ZCy^MJ(Y(KasMle z(_j-n3^IE_`O8i(oC5sk>7cuUmT+!tTkeXA3ShD_&IJ|f-|A$IA@rV^nYjftn5n=3 zF49PqSk1n7rp@3-4{nEU;^4v@i~6S%OJSHopcFKNgHKqHrNA^<<+6Pn`h<7K{`|Cv zcq{K{26 zx1p@8Z_VjaQt~a#zaKQ1i0%vPeOtUcm8G}7u?qV{e~VQxXI3-EgqJ=_5v;Hp;ifa` zRTpR(GMEMJ8R+l^z;7?}!0YvAJP#1Z<6~mXz-_qgP4ZQwk|IValqZ;gpWSl32FQm8 z%c-X3Qrv@b!_sXWSt}hulc5-#Tyk9CEkj*0Do_Y+(TEMc9?qlWR#Z8l*)_m0*Piv& z%Y3V-s7PxFjLxe%VvXai`(c4W6`zt~&Go#bu)11eJLyw={L6p7 zH&4w-6g&OV#G_NT7j3zk7ndvuI+~ z@H|PtJXWYjqX>tNLT!c{2Y*t&_DcQyv`{6!0fVvQmtW%i=Hc{}xGxo3CO!?z@M;y5 zWm0=wvkkg2T^qonUu1MKNB+RFmmVVHCWNvnSUFaK7i~COmD~fgXg7h&z7T4mS#8pS zE*vyOdeXB$Z-7^Hmwm53e=icuF=t;()=E7N z*UXL1`V%e&i~NpS9zA}1jM#=czO1_HAg&1jspm?kp%=UQgM@9aUL!E@)(rS}JOolF z+8@{VRWF^uie<#pDps7G{Z|zqr$MD)H97ctlyuZh8-thb*H@QEz&S8h0Hp|l7D9E+ zboP^88{o2s4w*m?OehI}a?0g$o410{kM0F{gK0QcDa%(cMNzOgUn?5wI)Dj~?vKMN z007JzsPFCXTc7SN{=vXT5eGZMV4pb|Z$ZQDh)fQAq$7S}^-xZpyHmptUBD-XVm%Ej z!HfB~d>RBWSO;T&eLg&|H{aPyQ$NT+Xm;(n{Yo!GWh}TNdTzzLXs5-8fu^OK z+9CCOU-*dw-3_9MQPCYLZ0r~?m^tFrj1IgTteAjL{q&)Wn|7G1on4W+xw#_0-)+x7 zr%Wz#Cv+Mi@8~>PVLrJA;HD+mfK!8_$H`AcxZmRMfwb0L4kR%ekv)K|y3C`O!PK_g zQcF}z0;?b5?yolhP&%uDFJWAO!KjB7U*44@JOPLc`9K4>I6hA$LT(BsE4C1D-<}@< zvcuHN?&Q^}M;%ap!y7RDI|E{~R$ExRCIz_GzaO;h9fWTX+k!?GpcyoJa8D(RI$T8W zf_Sz))z(}+Ja~40sBM~v*JPRXbBmuW5oJTF%Q(_>`x;_x5$|3SybLej-M*B*)|R%a z*czGt5_b7B-;lp2{GHBToHh|DU7^r#@|!(;okwI_J0q3Iv#G_9m*YF+X=P3v(nU?d zw}Xyh;%m+cLVdC81ctFzV({rbARzJIXGWlw-kks^#dc85#=u$%w5MNt zF;EBY1_bn{Wa)ay#(fE;67GK4`EizM0*a0p0t`q`tS49T+y<|c%C<`GvzKy}D^}UQ z`ZXBG)XwU>w}8iiEbokt*5=HWHJf&$9W`3Xe2HH<^gZWUN~gO{uJe~*%FXtOch1e@ z&RegBv<4)6$n*4OBSyLneiO$;zr)J2T_&3#mXNB_)Sjp{m$%h>t9+Xjr{`JIcNQJV z<+ALkoiM9}vF?1TJXsr6@9xU6u>6;sGd^I2J7au=-o(EV>Nha#CsgLvbf4&?2(Epn z`r0~aZ*yf~h8ferqc^pD||QRj@~Y$rpUa`%G4HKEH|rr;3k zp6>iIhY2MP!c>>0@ocG2c|D0*`IU5noCbnSB3}(&a*aEeP29X)bbIOyX?SjPl^odM zqAA43ezMVZ@pJQ5<8_5p@R9fU@S%87&v&P*pP9;UjBI=Jjv(Uv{H31*>`{&!X89vket!Npfa^+IO^QDJ*&)O2{NlNZo^C8ebG_Vhsrw1pf58N8 z2?`Vu9fpD#*qxQV`puoIwRz!t-bv;<-p7nB?i{$H&HC6Ku9BN*qvxLzuheb0O6=~JZZy_L@G??VITnt!x?WlNcUhQ0 zxoK1cA^GNnSy)o(?y|m!N3=TilyFVhma%e2}MbwC3k~&OC_J2BxW>d_k*O5L-Dr9 zhv`d3h;Bbw$C`+|O}o@XVf8bodK(8n#_zb0)3xsIuOB0Y@0oG7%{KP}X#>`U->l(u z;;&UQW2I?lKNFMbdNn>?KC4KVcJ5$VHC}9|UU)%zy)n>sHD+|)n|`A}`C>Yf`SHP1D&B5fqr=lX+yCHHxF^e9Zq3x2XcXqx9tNkm zzwhd%kL38eUax$dKo0uWuNa9Y`R*;*Q{re zr61EN>~_W$H|6?mGdbx}-GX!c?D&t%IC*Pq97Ppx zB!6*kOQ0nbSH>DFMi6D!dqex#VlfP2;r!F=6uTE`vX9p7tnx6LYdF7&XnQJeqa zKeA=l@8mZNen`A@8*%)3zrpIYW2I9tEv;A5P2WCHp*cAk1%5o!lx( zYAa=i-l6u#0C+u*te@l5JRfmLD!(P=>eut0ZPmfjV+f<5j3}k6a-AdMc|_996WuTV zF-q!srxsIs=&3RsU!ChTODA>RiAs}Fx|ubP;UghYk*_vWMZtAFw+%ebT|6q2H)8Yg zuMD0VI!rf77mEA!fDLf^%r$e;g^WyEW;Gn`tEz1h*aNyA#E}rAxAt=L?YZS~kJpia z2LNTg0m6kpb_z9>|75<~80F*O)s zn122KynJ8u=Wr8Io1+a%i>dOk(KOO7>HnGFiAT1uHu+N@94r)>~^MMqT`V$N1%7 zy7c{#lh(`J@jMzM3B%37ZqQsG`bGbO12Dv&f!nlvPVmkxA z-{p!7buCQ#1=i0mH>(aymm12RNQ%G)SBe_H+u#or39yd`Tk;onXxuS$00R>_ES8Tj zv-ZEsphGb%_J?=0bxp`}BXdj0%HnK2S6@Mz=OV5lG2kU$&<1?DLf=?qau{D6N3@Pn(S+`WSt^q zDk+iZVJs2G%&3?d`_iJK>;}VFTEt+I-GukLd!GOC|L`8~|9C&VpWgX$AI3fR+`qZ6 z-}PJ0^EywJwlu=*&{ZsdQPB~`y5gEf$$HhomZG*RzAgek1P1EGCu*Pi+B@4a-F4ll ziKXmA8vf<#n}!&@_hnzNa?4^k`m(GFNB#~}jIZUIX zp2Z(J)meI(l>W$vKUSEOK?%tc5SExUcQVVMg_Kr!>JhoXdLJK-{4$d0+s>u*7C7;1 zEvZnLU$+u9W)+J)+$rC)ItIJUiQIzhkdeMaN>3Dif9-LT=#(W=>I&1-*=bHs1ZA}^ ze|6GVi&X8x)K!n9ACD|uD)fkp&~P^oM1hBA%(!Rb#ujus<8{jEHdEQEBBG|cN8`6a z``{K^f{MahoJ5qe=I^_$$+kWnjVryn)vLR9Y5g#z9@<1vi^vrjpOtY^ZDKp!9*y>p zu3CxtkbYEg6M^U8LEx|{x_&<}u{CZTwR(TQ* zA=|Gv$lesY#uLB$Oo7zC4~LFclep|W$~-J>N=MiM(+Qucl>sz6H^EKaTkch%Z#opDS$eI%`$$$Cx(>`P_P1sAaq& z+o@e> zoI6b@veoFwS@)QlpKl+`4-kH~O;!09XmLiuEHs2u&#tpAW0$f2(mZ8`$FFvVSKtQy z920|`%#vUpy40)Cb(La6ZM_u}E8wg5?6KjQQhT;~>$<1fK?a0eXTPTJHd?0q%=Gx; z!;)o!T?FYwP#&HoUJOSTT>jq?aT z*~THRIJ#ADlv;JMl*%!%VycqnK5j0eV2Gsy>Z*Lh9<_vrtkUSX#HujQcRDo($osv@ z8O6a*W#%(}_{k`m+)6t*?y3^eXIt`-%%0J4tQBj;C}z6~jEo=82{vYvb(<|9aXvXy z_NagN^cI=p-)&Q4^w9XitR}W7cc5y(JkQ`G|^<%6)M}F|=K^ z%xBnmEvlMqyJf29FMpfUt(XtN2D7V4M9jkdNeJmHjLe?5RUf|=V{2NCDlJ#@e9H`O zhwO{KD~avqaxzSq_~jeyx>Jc3CRZk8J{b$lEbr&WI+2fD)DsftZlYGCe9OlPnV1cf zMyDhuD<$L9LW>e4r;|+kJGp$q(u&1K?_Rengu*_^Wd376fmEIpqX(f|s19^xr{-SY z@7s4Ay=J723AQkk^xXeQu`XII^p$k4zV zkk*Zvo3G}4GY2Q^<=yKOrpE8!)h-(^4Q<69_s&VY$libV{e#XLbKlwVi=9Hy5kQRnoLRc{j&qR90g?}~np6DGDxAtl~SH$v^f z%k2ud113S86$MGZt&mwa`xeIPF!g=%QVj3U$4t&yt@)PqbVRg%LX9)W)BU8*c7;|x zIiR?@8pALzOsyz1-o5giagUvE>m6+D$s7yENsn@Or|TEK(BWHZBAqUYVskro=JlxN ztf_qCp&FFKz)4qN35%%So7P%vR zZ^WLDo?EG73U~W=?p@3b58GPlKs>2iKIgBWx(&1#`|J4ZyoS0z+Q~9dv1VCq2l=oG z4TT%dJbjB1A}RHFCOv`?A=KME1=bDEt*doSq*ulxS4h$I5()jDH;FK9pbN+qF*>gw z2tLwwwy~Du^s-|}V9)qpSqw9UyKNEb8huvB=v^~Iqsimm6J8N!f?KqQ$j8we{8lQxGBEc#FMCP0tK|u*sl{8ylf}@f`A0`cc=}}QLDHP1^Lch2RZNm++=+trQ}Rw{ zuq0Id#yC1`GL>LEX0uu)kQ)5ra-`&WVXL8Yh6dBNz5|Stlw8^~%R>BnYN<)SyDQes z>dfGc(i>it9n|d+xFTYARJf$?mI?}{WQyhyLBa_Rgx0iVFJy7fDf4zo>boZg-7sjH ztqhNzV=zK3jvd!;9c`!Pa1X~a+ONe5HlWhUGUW9;G!iQ|6b_afw$3g~b;fcG2=d3S z3{=eztZ)^_cWR)*2uhb7V1`;jB*>pUtuJ<5W)xnDP@06&71vj zcfDR2c(5Ts;b6m7yL5BDDFDfOb98R|z|Q(`(vPPZapArT-`ZsD%vU=ve1C}bdj>P2 zIHRjc_R7~Pt3>EZ{MUA&Wdhcx=38E4$|s6#x4ty3MK(Oo3Mve>H!!cJ=jJFmcr~(s zbrP`I>@aU=ukgP=bHm_49iK40=|-LXiB0|Syw`TokJ>G6ME3WEufaC>|9nu8AAfcF zW)d#`pWSK6|9tv?zm!=+;i<(1`aziNv7r!2W3JO;cw1H=^5k_Bc6#$M=WYCMQxT+S zJ$Ippth^M09b``oQ*Z+yZY{}*eJ+8()k}^wUNphTR&yd_Qz~z&8@67p$x)RFivfRN zVEmTKOSj(OH^d7p5I01k8=Q2n8<}OATUbnjdK{>ZFWUeexFJu02(>iGf61y++2yv$Y70lUhj^ z=m)&*VS2jP=FOX}fU3bl-nXk6kqeMM9#99Q^Ao_kc!8*_>)!cYJ+e06~Q0KvFw+|4r20hr(=Sd|P3iV6$I?w~MtLM70NaYQiNuvz5x3~L1 z0mwrF!SowMLY*tod_8TP3Z_FYh_`2T#6lmy{>t+5jcOqi9vb1Z-%F4}A?bDQ+xEd_ z59p;x&{2m1fmVT73v(H`mGj=9UzF(Me(_=t&_X@V-1zMoLX~`|;`mVk;n*B7`uiha z-lqU5o?!!#k1(r;HQai8dsQJoRF3Ra4=Dz#1-)SnIKS>ot~oDFmx%hqTvQfB$1fo6 zml%ozAp1*=Oti{Waq)h{WF_NdSo?a!{k9YPT1_EyP?z8$P@tv>qP3~3Q15Wl8jZmnWnE-YI4LC5s zk81q;eikv=*RYdoZxVKmivA&%g*x=(LK!$QAQB8~8RCwSZR(HVsyx%=2430$zg&D` zI!__~Ub=80{=T@3T2vA>j24x~&`3kYoA2iV z%S)NvU;ZLBr{Lu~z%)oDB?teF;hFeY4p8OP4q&OxftN2w@qW(JH!&$wi5fF{n3Oc) z%ZmymGn{`t*%34#P@=p3^##Gqbe^z3EpOzg#t5DKe$`Q76m-8!a&q?k;!Ta1!^x=b z^q~U$-SqDT_{1+d)#U&f`+|>j8R%ZI1a}`7{uQyW65sLynk%R36_YEcR^*2jm2SGN zOB17WXUANS2*!)bhbQ{OFCmk8b{lR+Y zw*~5qX2VJbC$jM+RXg<3rAt>-;QP(W-=hMEe|>^2hZ(D@MU?JWZ*FCUPXUPti-55Z zzKD|&U`g;wA@=jq~ zfQN|3r{0D{Wi$FQqk6;Fq54=mVdQa&?HL9@jmrm>ogdbko0?|&zBPS-f?!{;pm&I6 z0T)T-HuAIPSQh;nTC#%PckU2|H|k#h0n9`m9+5r&>w{uPoWG#7rVpgB=g{|>-o2Y{ z$_MH6>0Wz^qqX%n&eO1&uh5e(zz{NA4c9*PMaja@>TSkR&!lS5zobGrl=`KSvsX-C z_mw!uB9kPCurFdvnm+;3=iw@(J@G=xNPgoHQM5342W4ysJ#-$nQhOLR^C&PoxsQ~$ zBGqJIok!~;+cO0O1dvkEkk4;LxDDbpPIx?C73?B*X+>8l+dO}Ta0OJ>c>??%Jl6i& z$l})R+mnc>ciIv6KCma)51hE=1rDc{!Z;2_cd;!J_(=wzI5`pH^J5pZ` z)(%K9D-0hGwHl`eDp!`o9*HGGaDfpWW=2>tciRI*#rP!--a4tT0)B-A7l@Em*6i-^ zn$psv-UAh7Yc@OQM&VxQYL@!#mI(_`b65Sb0>+^E&ks!dpd4e&`PhzDvGAHg{49|fTq?QX z`d-~cw7VFzOU6rV8(r)nW?LY*Uj>Y5Sx8cK>rvzVpt8zFY;l2s;vi2(`=w+Q?EYeR zAv>DGs&+^Z%)cDRhS`_&5+rb*oRGF_T%ZbOAOpVx>(Zg^WQ=xBO^-xgcl--odW+7N zz2PhoS>45Nv!=LZ3tTnf=Vy7%TO=qqxRrWTk;G_y(hOXNaQlTcOCxe!v|Pd?3mTF{ zZw0g!T8M7L?8rf1Owd(&tGGdFNU>^s0Vux-2td}6+3I-%(ntbP8gM?%xt%#AvEv|j%jCMf=5^D0VU7;cw z>Lmvx1f8}@9Q|%C#CM^~6Cr5F28M@M0JC)o60Yj_wAb*lsO2CK9A{MBu-zvUey5?N zfvWpn53C3&*{U&$DzJ}KO;`?Mm(8jnN_&pZ=D71({&TI}1cCnWyQW$zoycSrM*xY- z7h8WnSf{c=whfHC6fB3gPm+Q=i*MI)T-0@yENZeEyBV!>+WMMJ-foF(_(PYDx$dHB{-$?t>m-aT)9OC|G^Uzr}MW%v-! zVb9<1+;qi2R1q1>nr!0u{89o7{J720Jy32}S>`{udRd%;WN-3bu^n{eB%;WN0_3B7FH21mvG(QUM=P}SZcb2T}6!Tx%T%~#d literal 0 HcmV?d00001 diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 3a4ae93..83855e2 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -80,9 +80,9 @@ A table with quality goals and concrete scenarios, ordered by priorities [cols="e,2e" options="header"] |=== |Nombre|Descripción -|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios_ +|*Usabilidad*| _La aplicación tiene que poder usarse por el mayor tipo de usuarios, promoviendo una experiencia intuitiva y accesible desde el primer contacto. Además, a medida que los usuarios interactúan más con la aplicación, esta se vuelva más fácil de usar._ |*Rendimiento*| _El tiempo de respuesta de la aplicación debe ser rápido_ -|*Testeable*| _La aplicación debe pasar las pruebas generadas automaticamente para cada versión_ +|*Testeable*| _Las pruebas deben ser capaces de detectar errores de manera rápida y precisa, fáciles de mantener y actualizar a medida que el código base cambia. Esto implica que las pruebas estén bien estructuradas y documentadas._ |*Disponibilidad*| _La aplicación debe estar disponible y caerse lo menos posible_ |=== === Stakeholders diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index 1df7255..535c2f3 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -39,21 +39,26 @@ See https://docs.arc42.org/section-6/[Runtime View] in the arc42 documentation. === Inicio de Sesión -A la hora de iniciar sesión nuestra web App nos mostrara la ventana pidiendo los datos necesarios para poder empezar a jugar. +Al iniciar sesión en nuestra Web App, se presentará una interfaz solicitando al usuario que ingrese los datos necesarios para comenzar a jugar. Estos datos incluirán información de identificación única, como nombre de usuario y contraseña, así como posiblemente otros detalles relevantes para el perfil del jugador. -Se le piden una serie de datos al usuario que serán posteriormente pasados a Firebase encargado de controlar estos datos y devolverle a web App el ID del usuario que estará jugando. +Una vez que el usuario proporciona estos datos, la Web App los enviará al servicio userService, que actuará como el backend encargado de autenticar al usuario y gestionar su sesión. userService verificará la validez de los datos proporcionados por el usuario y, si son correctos, emitirá un token de sesión único que identificará al usuario. -Una vez que el usario a completado el inicio de sesión de forma exitosa nuestra web App pasará a mostrar la pantalla de inicio del juego. +Este token de sesión se devolverá a la Web App, donde se utilizará para mantener la sesión del usuario durante su interacción con la plataforma de juego. -image::06_acceso.png["Diagrama vista de tiempo de ejecución para el acceso"] +Una vez que el proceso de inicio de sesión se completa con éxito, la Web App cambiará su interfaz para mostrar la pantalla de inicio del juego, donde el usuario podrá acceder a las diferentes opciones de juego y comenzar a participar en las actividades disponibles. + +image::06_acceso2.png["Diagrama vista de tiempo de ejecución para el acceso"] === Interacción con Preguntas -Rest que tiene nuestra base de datos será el encargado de obtener la pregunta con sus respuestas correctas e incorrectas y pasarsela a web App +Comenzaremos con la REST API que se integra con nuestra base de datos y se encargará de la obtención de la pregunta junto con sus opciones de respuestas correctas e incorrectas, proporcionando así la información necesaria para la Web App. + +Al obtener dicha información, la Web App mostrará la pregunta junto con todas las opciones de respuesta disponibles al usuario, quien podrá seleccionar una única respuesta entre las opciones proporcionadas. Una vez que el usuario ha realizado su selección, la Web App verificará la precisión de la respuesta. + +Posteriormente, basándose en la respuesta proporcionada por el usuario, la Web App ofrecerá una retroalimentación visual clara que permitirá al usuario comprender si su respuesta fue correcta o incorrecta. -Web App comenzara mostrando por pantalla la pregunta con todas las respuestas disponibles, a lo que el usuario solo podrá escoger una respuesta de todas las posibles. -Una vez el usuario elige la respuesta se comprobará si los resultados son correctos o errones. +Por tanto, terminaremos con una retroalimentación visual por pantalla del resultado obtenido tras la respuesta del jugador. -En base a la respuesta del usuario web App mostrara si ha acertado o fallado de forma visual que lo pueda entender el usuario. +Este flujo de interacción garantiza una experiencia de usuario fluida y comprensible, optimizando así la participación y el compromiso del usuario con la plataforma. -image::06_pregunta.png["Diagrama vista de tiempo de ejecución para la pregunta"] \ No newline at end of file +image::06_pregunta2.png["Diagrama vista de tiempo de ejecución para la pregunta"] \ No newline at end of file From 4f67689248a38902e208d50debb556441bfb1835 Mon Sep 17 00:00:00 2001 From: uo289324 Date: Tue, 19 Mar 2024 13:39:30 +0100 Subject: [PATCH 8/9] cambios doc 1 --- docs/src/01_introduction_and_goals.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index 83855e2..b319dbe 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -113,7 +113,7 @@ Table with role names, person names, and their expectations with respect to the | *Cristian Augusto* | _Aplicar correctamente los conocimientos y competencias adquiridos en la asignatura Arquitectura del Software_ | _Profesor de la asignatura_ | *HappySw* | _Una aplicación buena para atraer al mayor número de usuarios_ | _Equipo de desarrollo_ | *Wikidata* | _Usar su aplicacion con precaución, sin sobrecargar sus servicios_ | _Empresa que nos facilita la API para obtener información_ -| *Usuarios Registrados* | _Una aplicación que proporcione los servicios esperados_ | _Los usuarios de la aplicación_ -| *Usuarios No Registrados* | _Una buena aplicación_ | _Los usuarios de la aplicación_ -| *RTVE* | _Una buena versión de su juego "Saber y Ganar"_ | _Dueño del producto_ +| *Usuarios Registrados* | _Poder jugar en la aplicación que recrea el juego sin tener que participar en el programa._ | _Usuarios que ya han jugado anteriormente_ +| *Usuarios No Registrados* | _Un registro fácil y rápido, asi como, una aplicación con buena Usabilidad_ | _Usuarios que nunca jugaron antes_ +| *RTVE* | _Versión mejorada de "Saber y Ganar" para ganar mayor audiencia e interés social._ | _Dueño del producto_ |=== From c04b344f353a7e89110de4117068b80ef1a3e86c Mon Sep 17 00:00:00 2001 From: uo289324 Date: Tue, 19 Mar 2024 13:53:09 +0100 Subject: [PATCH 9/9] cambios doc 2 --- docs/src/02_architecture_constraints.adoc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index cd0e9c1..c3999f1 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -75,6 +75,9 @@ a través de nuestro grupo de WhatsApp y en casos necesarios realizamos reunione que reflejar el trabajo repartido a cada miembro. Se deberán realizar obligatoriamente cada vez que se realice una reunión y deberán constar los miembros del equipo que han participado._ +|*Decisiones arquitectónicas* +|_Las decisiones arquitectónicas pueden ser una limitación organizativa al definir la estructura básica de un sistema de software, lo que podría obstaculizar la capacidad de realizar cambios y adaptarse a nuevas necesidades y tecnologías._ + |=== === Convenciones @@ -91,10 +94,10 @@ es decir, que sea fácil de entender, mantener y modificar, y que garantize la c |_Para crearla usaremos la plantilla Arc42 con la finalidad de que sea sencilla y práctica._ |*Accesibilidad* -|_Intentaremos que nuestra aplicación puede ser utilizada por cualquier tipo de usuario, sin importar quién sea._ +|_Nos esforzaremos para que nuestra aplicación sea accesible para todos los usuarios, independientemente de su perfil o características individuales._ |*Estructura* -|_Debe seguir una estructura fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas: 'userservice' para la gestión de +|_Debe seguir una estructura de paquetes fija y bajo los mismos estandares. Los diferentes modulos estarán separados en carpetas: 'userservice' para la gestión de usuarios (registro y autentificación), 'questionservice' para la comunicación con wikidata y 'webapp' para el desarrollo de la aplicación. Todos estos servicios estarán comunicados por 'gatewayservice'._