From f00a528070e861e31b87a0cb92590a23d9682173 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 12 Jul 2025 12:35:32 +0000
Subject: [PATCH 1/5] Initial plan
From 73af5d17076f62852f49266589a3556eaf2ae721 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 12 Jul 2025 12:39:34 +0000
Subject: [PATCH 2/5] Initial assessment: Identify CI/CD and build issues
Co-authored-by: KrunalValvi <124663065+KrunalValvi@users.noreply.github.com>
---
package-lock.json | 3739 ++++++++++++++++++++++++++-------------------
1 file changed, 2153 insertions(+), 1586 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b097b60..ba9ba62 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,47 +1,35 @@
{
- "name": "studymaster-pro",
- "version": "0.0.0",
+ "name": "studymaster",
+ "version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "studymaster-pro",
- "version": "0.0.0",
+ "name": "studymaster",
+ "version": "1.0.0",
+ "license": "MIT",
"dependencies": {
- "framer-motion": "^10.16.4",
- "lucide-react": "^0.344.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-dropzone": "^14.2.3",
- "recharts": "^2.8.0"
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
},
"devDependencies": {
- "@eslint/js": "^9.9.1",
- "@types/react": "^18.3.5",
- "@types/react-dom": "^18.3.0",
- "@vitejs/plugin-react": "^4.3.1",
- "autoprefixer": "^10.4.18",
- "eslint": "^9.9.1",
- "eslint-plugin-react-hooks": "^5.1.0-rc.0",
- "eslint-plugin-react-refresh": "^0.4.11",
- "globals": "^15.9.0",
- "postcss": "^8.4.35",
- "tailwindcss": "^3.4.1",
- "typescript": "^5.5.3",
- "typescript-eslint": "^8.3.0",
- "vite": "^5.4.2"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "@types/react": "^18.2.43",
+ "@types/react-dom": "^18.2.17",
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
+ "@typescript-eslint/parser": "^6.14.0",
+ "@vitejs/plugin-react": "^4.2.1",
+ "@vitest/coverage-v8": "^1.0.0",
+ "@vitest/ui": "^1.0.0",
+ "eslint": "^8.55.0",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.5",
+ "husky": "^8.0.3",
+ "lint-staged": "^15.2.0",
+ "playwright": "^1.40.0",
+ "prettier": "^3.1.0",
+ "typescript": "^5.2.2",
+ "vite": "^5.0.8",
+ "vitest": "^1.0.0"
}
},
"node_modules/@ampproject/remapping": {
@@ -293,15 +281,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/runtime": {
- "version": "7.27.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz",
- "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/template": {
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
@@ -357,22 +336,12 @@
"node": ">=6.9.0"
}
},
- "node_modules/@emotion/is-prop-valid": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
- "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emotion/memoize": "0.7.4"
- }
- },
- "node_modules/@emotion/memoize": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
- "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
- "license": "MIT",
- "optional": true
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.21.5",
@@ -757,18 +726,6 @@
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/@eslint-community/regexpp": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
@@ -778,39 +735,17 @@
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@eslint/config-array": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
- "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
- "dev": true,
- "dependencies": {
- "@eslint/object-schema": "^2.1.4",
- "debug": "^4.3.1",
- "minimatch": "^3.1.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/core": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz",
- "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==",
- "dev": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
"node_modules/@eslint/eslintrc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
- "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -818,74 +753,36 @@
"strip-json-comments": "^3.1.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@eslint/js": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz",
- "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==",
- "dev": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/object-schema": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
- "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
- "dev": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/plugin-kit": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz",
- "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==",
- "dev": true,
- "dependencies": {
- "levn": "^0.4.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@humanfs/core": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz",
- "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=18.18.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@humanfs/node": {
- "version": "0.16.5",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz",
- "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==",
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanfs/core": "^0.19.0",
- "@humanwhocodes/retry": "^0.3.0"
+ "@humanwhocodes/object-schema": "^2.0.3",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
},
"engines": {
- "node": ">=18.18.0"
+ "node": ">=10.10.0"
}
},
"node_modules/@humanwhocodes/module-importer": {
@@ -901,34 +798,35 @@
"url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@humanwhocodes/retry": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
- "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
+ "node": ">=8"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ "@sinclair/typebox": "^0.27.8"
},
"engines": {
- "node": ">=12"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
@@ -1014,15 +912,12 @@
"node": ">= 8"
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.29",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
+ "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
"dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
+ "license": "MIT"
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.24.0",
@@ -1232,6 +1127,13 @@
"win32"
]
},
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -1273,69 +1175,6 @@
"@babel/types": "^7.20.7"
}
},
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
- "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
- "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
- "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
- "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
- "license": "MIT"
- },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -1346,7 +1185,8 @@
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/prop-types": {
"version": "15.7.13",
@@ -1373,32 +1213,42 @@
"@types/react": "*"
}
},
+ "node_modules/@types/semver": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
+ "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz",
- "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==",
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
+ "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.8.1",
- "@typescript-eslint/type-utils": "8.8.1",
- "@typescript-eslint/utils": "8.8.1",
- "@typescript-eslint/visitor-keys": "8.8.1",
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/type-utils": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
"graphemer": "^1.4.0",
- "ignore": "^5.3.1",
+ "ignore": "^5.2.4",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
- "eslint": "^8.57.0 || ^9.0.0"
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -1406,64 +1256,56 @@
}
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz",
- "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.8.1",
- "@typescript-eslint/types": "8.8.1",
- "@typescript-eslint/typescript-estree": "8.8.1",
- "@typescript-eslint/visitor-keys": "8.8.1",
- "debug": "^4.3.4"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz",
- "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/types": "8.8.1",
- "@typescript-eslint/visitor-keys": "8.8.1"
- },
+ "license": "MIT",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz",
- "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.8.1",
- "@typescript-eslint/utils": "8.8.1",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
"debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
@@ -1475,61 +1317,66 @@
}
}
},
- "node_modules/@typescript-eslint/types": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz",
- "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "semver": "^7.5.4"
+ },
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz",
- "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.8.1",
- "@typescript-eslint/visitor-keys": "8.8.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -1540,11 +1387,12 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -1552,237 +1400,636 @@
"node": ">=10"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz",
- "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.8.1",
- "@typescript-eslint/types": "8.8.1",
- "@typescript-eslint/typescript-estree": "8.8.1"
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz",
- "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.8.1",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@vitejs/plugin-react": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz",
- "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "@babel/core": "^7.25.2",
- "@babel/plugin-transform-react-jsx-self": "^7.24.7",
- "@babel/plugin-transform-react-jsx-source": "^7.24.7",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.14.2"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
- "peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/acorn": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
- "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": ">=0.4.0"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "node_modules/@typescript-eslint/parser/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
- "engines": {
- "node": ">=12"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "engines": {
+ "node": ">=10"
}
},
- "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==",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
+ "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^1.9.0"
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=4"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/any-promise": {
+ "node_modules/@ungap/structured-clone": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz",
+ "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==",
"dev": true,
"dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "@babel/core": "^7.25.2",
+ "@babel/plugin-transform-react-jsx-self": "^7.24.7",
+ "@babel/plugin-transform-react-jsx-source": "^7.24.7",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.14.2"
},
"engines": {
- "node": ">= 8"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0"
}
},
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
+ "node_modules/@vitest/coverage-v8": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.1.tgz",
+ "integrity": "sha512-6YeRZwuO4oTGKxD3bijok756oktHSIm3eczVVzNe3scqzuhLwltIF3S9ZL/vwOVIpURmU6SnZhziXXAfw8/Qlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.1",
+ "@bcoe/v8-coverage": "^0.2.3",
+ "debug": "^4.3.4",
+ "istanbul-lib-coverage": "^3.2.2",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^5.0.4",
+ "istanbul-reports": "^3.1.6",
+ "magic-string": "^0.30.5",
+ "magicast": "^0.3.3",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.5.0",
+ "strip-literal": "^2.0.0",
+ "test-exclude": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "vitest": "1.6.1"
+ }
},
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "node_modules/@vitest/expect": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz",
+ "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "1.6.1",
+ "@vitest/utils": "1.6.1",
+ "chai": "^4.3.10"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
},
- "node_modules/attr-accept": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz",
- "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==",
+ "node_modules/@vitest/runner": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz",
+ "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "1.6.1",
+ "p-limit": "^5.0.0",
+ "pathe": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner/node_modules/p-limit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/autoprefixer": {
- "version": "10.4.20",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
- "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
+ "node_modules/@vitest/runner/node_modules/yocto-queue": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
+ "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz",
+ "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz",
+ "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/ui": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.6.1.tgz",
+ "integrity": "sha512-xa57bCPGuzEFqGjPs3vVLyqareG8DX0uMkr5U/v5vLv5/ZUrBrPL7gzxzTJedEyZxFMfsozwTIbbYfEQVo3kgg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
- "caniuse-lite": "^1.0.30001646",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.1",
- "postcss-value-parser": "^4.2.0"
+ "@vitest/utils": "1.6.1",
+ "fast-glob": "^3.3.2",
+ "fflate": "^0.8.1",
+ "flatted": "^3.2.9",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "sirv": "^2.0.4"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
},
+ "peerDependencies": {
+ "vitest": "1.6.1"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz",
+ "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "dev": true,
+ "license": "MIT",
"bin": {
- "autoprefixer": "bin/autoprefixer"
+ "acorn": "bin/acorn"
},
"engines": {
- "node": "^10 || ^12 || >=14"
- },
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
"peerDependencies": {
- "postcss": "^8.1.0"
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
+ "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "environment": "^1.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "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/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1832,24 +2079,26 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001667",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz",
@@ -1870,6 +2119,25 @@
}
]
},
+ "node_modules/chai": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz",
+ "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -1884,49 +2152,75 @@
"node": ">=4"
}
},
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "node_modules/check-error": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
+ "get-func-name": "^2.0.2"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": "*"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
+ "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^5.0.0"
},
- "funding": {
- "url": "https://paulmillr.com/funding/"
+ "engines": {
+ "node": ">=18"
},
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/cli-truncate": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-glob": "^4.0.1"
+ "slice-ansi": "^5.0.0",
+ "string-width": "^7.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "node_modules/cli-truncate/node_modules/emoji-regex": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cli-truncate/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "dev": true,
"license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/color-convert": {
@@ -1944,20 +2238,26 @@
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true,
- "engines": {
- "node": ">= 6"
- }
+ "license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/convert-source-map": {
"version": "2.0.0",
@@ -1979,149 +2279,18 @@
"node": ">= 8"
}
},
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "license": "ISC",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "license": "ISC",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "dev": true
},
"node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
@@ -2134,11 +2303,18 @@
}
}
},
- "node_modules/decimal.js-light": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
- "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
- "license": "MIT"
+ "node_modules/deep-eql": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/deep-is": {
"version": "0.1.4",
@@ -2146,33 +2322,41 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
},
- "node_modules/dom-helpers": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.8.7",
- "csstype": "^3.0.2"
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
"node_modules/electron-to-chromium": {
"version": "1.5.33",
@@ -2180,11 +2364,18 @@
"integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==",
"dev": true
},
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
+ "node_modules/environment": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
"node_modules/esbuild": {
"version": "0.21.5",
@@ -2243,75 +2434,73 @@
}
},
"node_modules/eslint": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz",
- "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==",
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.11.0",
- "@eslint/config-array": "^0.18.0",
- "@eslint/core": "^0.6.0",
- "@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.12.0",
- "@eslint/plugin-kit": "^0.2.0",
- "@humanfs/node": "^0.16.5",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.3.1",
- "@types/estree": "^1.0.6",
- "@types/json-schema": "^7.0.15",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
+ "doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.1.0",
- "eslint-visitor-keys": "^4.1.0",
- "espree": "^10.2.0",
- "esquery": "^1.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^8.0.0",
+ "file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
"text-table": "^0.2.0"
},
"bin": {
"eslint": "bin/eslint.js"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "5.1.0-rc-fb9a90fa48-20240614",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz",
- "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
"peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
}
},
"node_modules/eslint-plugin-react-refresh": {
@@ -2324,33 +2513,45 @@
}
},
"node_modules/eslint-scope": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz",
- "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz",
- "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -2421,6 +2622,19 @@
"node": ">=8"
}
},
+ "node_modules/eslint/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2434,17 +2648,18 @@
}
},
"node_modules/espree": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz",
- "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.12.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.1.0"
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
@@ -2467,6 +2682,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -2483,6 +2699,16 @@
"node": ">=4.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -2492,26 +2718,36 @@
"node": ">=0.10.0"
}
},
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "license": "MIT"
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-equals": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz",
- "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
"version": "3.3.2",
@@ -2545,7 +2781,8 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
@@ -2562,28 +2799,24 @@
"reusify": "^1.0.4"
}
},
- "node_modules/file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+ "node_modules/fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
"dev": true,
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
+ "license": "MIT"
},
- "node_modules/file-selector": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz",
- "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==",
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "tslib": "^2.7.0"
+ "flat-cache": "^3.0.4"
},
"engines": {
- "node": ">= 12"
+ "node": "^10.12.0 || >=12.0.0"
}
},
"node_modules/fill-range": {
@@ -2615,77 +2848,34 @@
}
},
"node_modules/flat-cache": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "dev": true,
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
- "dev": true
- },
- "node_modules/foreground-child": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/framer-motion": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.18.0.tgz",
- "integrity": "sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "optionalDependencies": {
- "@emotion/is-prop-valid": "^0.8.2"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
},
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@@ -2700,15 +2890,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -2718,24 +2899,40 @@
"node": ">=6.9.0"
}
},
- "node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "node_modules/get-east-asian-width": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
+ "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
"dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/glob-parent": {
@@ -2750,37 +2947,38 @@
"node": ">=10.13.0"
}
},
- "node_modules/glob/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "type-fest": "^0.20.2"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/globals": {
- "version": "15.11.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz",
- "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==",
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
"engines": {
- "node": ">=18"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2801,16 +2999,37 @@
"node": ">=4"
}
},
- "node_modules/hasown": {
+ "node_modules/html-escaper": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
+ "license": "MIT"
+ },
+ "node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "husky": "lib/bin.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
}
},
"node_modules/ignore": {
@@ -2823,10 +3042,11 @@
}
},
"node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -2847,41 +3067,24 @@
"node": ">=0.8.19"
}
},
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true,
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "license": "ISC"
},
"node_modules/is-extglob": {
"version": "2.1.1",
@@ -2892,15 +3095,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -2922,34 +3116,110 @@
"node": ">=0.12.0"
}
},
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
- "node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@isaacs/cliui": "^8.0.2"
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
},
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/jiti": {
- "version": "1.21.6",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
- "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
"dev": true,
- "bin": {
- "jiti": "bin/jiti.js"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.23",
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/js-tokens": {
@@ -2962,6 +3232,7 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2985,13 +3256,15 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -3004,53 +3277,197 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lint-staged": {
+ "version": "15.5.2",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.2.tgz",
+ "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^5.4.1",
+ "commander": "^13.1.0",
+ "debug": "^4.4.0",
+ "execa": "^8.0.1",
+ "lilconfig": "^3.1.3",
+ "listr2": "^8.2.5",
+ "micromatch": "^4.0.8",
+ "pidtree": "^0.6.0",
+ "string-argv": "^0.3.2",
+ "yaml": "^2.7.0"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/node_modules/chalk": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/commander": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
+ "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz",
+ "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cli-truncate": "^4.0.0",
+ "colorette": "^2.0.20",
+ "eventemitter3": "^5.0.1",
+ "log-update": "^6.1.0",
+ "rfdc": "^1.4.1",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/listr2/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "node_modules/listr2/node_modules/emoji-regex": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/listr2/node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/listr2/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "json-buffer": "3.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "node_modules/listr2/node_modules/wrap-ansi": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "node_modules/local-pkg": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
+ "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mlly": "^1.7.3",
+ "pkg-types": "^1.2.1"
+ },
"engines": {
"node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/antonk52"
+ "url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -3066,18 +3483,121 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "license": "MIT"
- },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "node_modules/log-update": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
+ "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^7.0.0",
+ "cli-cursor": "^5.0.0",
+ "slice-ansi": "^7.1.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/emoji-regex": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+ "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-east-asian-width": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+ "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -3089,6 +3609,16 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/loupe": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -3098,14 +3628,64 @@
"yallist": "^3.0.2"
}
},
- "node_modules/lucide-react": {
- "version": "0.344.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz",
- "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==",
- "peerDependencies": {
- "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
+ "node_modules/magic-string": {
+ "version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/magicast": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
+ "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.25.4",
+ "@babel/types": "^7.25.4",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -3128,11 +3708,38 @@
"node": ">=8.6"
}
},
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mimic-function": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
+ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -3140,13 +3747,34 @@
"node": "*"
}
},
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "node_modules/mlly": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
+ "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "pathe": "^2.0.1",
+ "pkg-types": "^1.3.0",
+ "ufo": "^1.5.4"
+ }
+ },
+ "node_modules/mlly/node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=10"
}
},
"node_modules/ms": {
@@ -3155,17 +3783,6 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
@@ -3196,39 +3813,59 @@
"integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
"dev": true
},
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
}
},
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/optionator": {
@@ -3278,17 +3915,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "dev": true
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -3305,6 +3937,16 @@
"node": ">=8"
}
},
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -3314,34 +3956,33 @@
"node": ">=8"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true,
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": "*"
}
},
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -3360,22 +4001,83 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
+ "license": "MIT",
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
+ }
+ },
+ "node_modules/pkg-types/node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/playwright": {
+ "version": "1.54.1",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.1.tgz",
+ "integrity": "sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "playwright-core": "1.54.1"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "2.3.2"
}
},
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "node_modules/playwright-core": {
+ "version": "1.54.1",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.1.tgz",
+ "integrity": "sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==",
"dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "playwright-core": "cli.js"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">=18"
+ }
+ },
+ "node_modules/playwright/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/postcss": {
@@ -3406,146 +4108,72 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
"engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "node_modules/prettier": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
+ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
- "dependencies": {
- "camelcase-css": "^2.0.1"
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": "^12 || ^14 || >= 16"
+ "node": ">=14"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
+ "url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "license": "MIT",
"dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
+ "node": ">=10"
},
- "engines": {
- "node": ">=4"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "node_modules/pretty-format/node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
+ "license": "MIT"
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -3593,29 +4221,6 @@
"react": "^18.3.1"
}
},
- "node_modules/react-dropzone": {
- "version": "14.3.8",
- "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.8.tgz",
- "integrity": "sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==",
- "license": "MIT",
- "dependencies": {
- "attr-accept": "^2.2.4",
- "file-selector": "^2.1.0",
- "prop-types": "^15.8.1"
- },
- "engines": {
- "node": ">= 10.13"
- },
- "peerDependencies": {
- "react": ">= 16.8 || 18.0.0"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT"
- },
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
@@ -3625,130 +4230,103 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-smooth": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
- "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
- "license": "MIT",
- "dependencies": {
- "fast-equals": "^5.0.1",
- "prop-types": "^15.8.1",
- "react-transition-group": "^4.4.5"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/react-transition-group": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
- "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/runtime": "^7.5.5",
- "dom-helpers": "^5.0.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2"
- },
- "peerDependencies": {
- "react": ">=16.6.0",
- "react-dom": ">=16.6.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
- "dependencies": {
- "pify": "^2.3.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "node_modules/restore-cursor": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
+ "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "picomatch": "^2.2.1"
+ "onetime": "^7.0.0",
+ "signal-exit": "^4.1.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/recharts": {
- "version": "2.15.4",
- "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz",
- "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==",
+ "node_modules/restore-cursor/node_modules/onetime": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
+ "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "clsx": "^2.0.0",
- "eventemitter3": "^4.0.1",
- "lodash": "^4.17.21",
- "react-is": "^18.3.1",
- "react-smooth": "^4.0.4",
- "recharts-scale": "^0.4.4",
- "tiny-invariant": "^1.3.1",
- "victory-vendor": "^36.6.8"
+ "mimic-function": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
- "peerDependencies": {
- "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/recharts-scale": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz",
- "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
- "license": "MIT",
- "dependencies": {
- "decimal.js-light": "^2.4.1"
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
}
},
- "node_modules/recharts/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "node_modules/rfdc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "dev": true,
"license": "MIT"
},
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "glob": "^7.1.3"
},
"bin": {
- "resolve": "bin/resolve"
+ "rimraf": "bin.js"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rollup": {
@@ -3847,6 +4425,13 @@
"node": ">=8"
}
},
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
@@ -3859,72 +4444,105 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 10"
}
},
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
},
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/std-env": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
+ "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
"dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
+ "license": "MIT"
+ },
+ "node_modules/string-argv": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=0.6.19"
}
},
"node_modules/strip-ansi": {
@@ -3942,26 +4560,17 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-json-comments": {
@@ -3969,6 +4578,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -3976,28 +4586,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "node_modules/strip-literal": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz",
+ "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
+ "js-tokens": "^9.0.1"
},
- "engines": {
- "node": ">=16 || 14 >=14.17"
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -4010,53 +4618,41 @@
"node": ">=4"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tailwindcss": {
- "version": "3.4.17",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
- "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.6",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/text-table": {
@@ -4065,32 +4661,32 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true,
- "dependencies": {
- "any-promise": "^1.0.0"
- }
+ "license": "MIT"
},
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "node_modules/tinypool": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
+ "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
"dev": true,
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
+ "license": "MIT",
"engines": {
- "node": ">=0.8"
+ "node": ">=14.0.0"
}
},
- "node_modules/tiny-invariant": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
- "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "license": "MIT"
+ "node_modules/tinyspy": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
+ "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
@@ -4113,6 +4709,16 @@
"node": ">=8.0"
}
},
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ts-api-utils": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
@@ -4125,18 +4731,6 @@
"typescript": ">=4.2.0"
}
},
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -4149,6 +4743,29 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/typescript": {
"version": "5.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
@@ -4162,28 +4779,12 @@
"node": ">=14.17"
}
},
- "node_modules/typescript-eslint": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz",
- "integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==",
+ "node_modules/ufo": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
+ "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
"dev": true,
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.8.1",
- "@typescript-eslint/parser": "8.8.1",
- "@typescript-eslint/utils": "8.8.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
+ "license": "MIT"
},
"node_modules/update-browserslist-db": {
"version": "1.1.1",
@@ -4220,38 +4821,11 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/victory-vendor": {
- "version": "36.9.2",
- "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz",
- "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
- "license": "MIT AND ISC",
- "dependencies": {
- "@types/d3-array": "^3.0.3",
- "@types/d3-ease": "^3.0.0",
- "@types/d3-interpolate": "^3.0.1",
- "@types/d3-scale": "^4.0.2",
- "@types/d3-shape": "^3.1.0",
- "@types/d3-time": "^3.0.0",
- "@types/d3-timer": "^3.0.0",
- "d3-array": "^3.1.6",
- "d3-ease": "^3.0.1",
- "d3-interpolate": "^3.0.1",
- "d3-scale": "^4.0.2",
- "d3-shape": "^3.1.0",
- "d3-time": "^3.0.0",
- "d3-timer": "^3.0.1"
- }
- },
"node_modules/vite": {
"version": "5.4.8",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
@@ -4311,150 +4885,142 @@
}
}
},
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/vite-node": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz",
+ "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
+ "cac": "^6.7.14",
+ "debug": "^4.3.4",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "vite": "^5.0.0"
},
"bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "vite-node": "vite-node.mjs"
},
"engines": {
- "node": ">=12"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "node_modules/vitest": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz",
+ "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "@vitest/expect": "1.6.1",
+ "@vitest/runner": "1.6.1",
+ "@vitest/snapshot": "1.6.1",
+ "@vitest/spy": "1.6.1",
+ "@vitest/utils": "1.6.1",
+ "acorn-walk": "^8.3.2",
+ "chai": "^4.3.10",
+ "debug": "^4.3.4",
+ "execa": "^8.0.1",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.5.0",
+ "strip-literal": "^2.0.0",
+ "tinybench": "^2.5.1",
+ "tinypool": "^0.8.3",
+ "vite": "^5.0.0",
+ "vite-node": "1.6.1",
+ "why-is-node-running": "^2.2.2"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
},
"engines": {
- "node": ">=10"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
+ "url": "https://opencollective.com/vitest"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "1.6.1",
+ "@vitest/ui": "1.6.1",
+ "happy-dom": "*",
+ "jsdom": "*"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
}
},
- "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">= 8"
}
},
- "node_modules/wrap-ansi-cjs/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
+ "license": "ISC"
},
"node_modules/yallist": {
"version": "3.1.1",
@@ -4463,15 +5029,16 @@
"dev": true
},
"node_modules/yaml": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz",
- "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
+ "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
"dev": true,
+ "license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 14.6"
}
},
"node_modules/yocto-queue": {
From af94991e9c9c9ef68867326b1568e2a517c506cd Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 12 Jul 2025 12:47:42 +0000
Subject: [PATCH 3/5] Fix dependencies and test infrastructure
Co-authored-by: KrunalValvi <124663065+KrunalValvi@users.noreply.github.com>
---
coverage/StudyMaster/index.html | 146 +
.../StudyMaster/playwright.config.ts.html | 154 +
coverage/StudyMaster/postcss.config.js.html | 103 +
coverage/StudyMaster/src/App.tsx.html | 316 +
.../src/components/AIChat.tsx.html | 910 +++
.../src/components/Achievements.tsx.html | 1309 ++++
.../src/components/Analytics.tsx.html | 1162 ++++
.../src/components/Dashboard.tsx.html | 685 ++
.../src/components/FileUpload.tsx.html | 691 ++
.../src/components/Flashcards.tsx.html | 733 +++
.../src/components/Header.tsx.html | 340 +
.../src/components/Materials.tsx.html | 1570 +++++
.../StudyMaster/src/components/Quiz.tsx.html | 1750 ++++++
.../src/components/SearchResults.tsx.html | 1237 ++++
.../src/components/Settings.tsx.html | 1906 ++++++
.../src/components/Sidebar.tsx.html | 439 ++
.../src/components/StudyTimer.tsx.html | 1336 ++++
.../StudyMaster/src/components/index.html | 296 +
.../src/contexts/ThemeContext.tsx.html | 202 +
coverage/StudyMaster/src/contexts/index.html | 116 +
coverage/StudyMaster/src/data/index.html | 116 +
.../StudyMaster/src/data/sampleData.ts.html | 448 ++
coverage/StudyMaster/src/index.html | 131 +
coverage/StudyMaster/src/main.tsx.html | 115 +
coverage/StudyMaster/tailwind.config.js.html | 157 +
coverage/base.css | 224 +
coverage/block-navigation.js | 87 +
coverage/clover.xml | 4720 ++++++++++++++
coverage/coverage-final.json | 21 +
coverage/favicon.png | Bin 0 -> 445 bytes
coverage/index.html | 176 +
coverage/prettify.css | 1 +
coverage/prettify.js | 2 +
coverage/sort-arrow-sprite.png | Bin 0 -> 138 bytes
coverage/sorter.js | 196 +
package-lock.json | 5589 ++++++++++++++---
package.json | 21 +-
playwright.config.ts | 24 +
src/e2e/example.spec.ts | 15 +
src/test/App.test.tsx | 18 +
src/test/setup.ts | 12 +
vitest.config.ts | 12 +
42 files changed, 26661 insertions(+), 825 deletions(-)
create mode 100644 coverage/StudyMaster/index.html
create mode 100644 coverage/StudyMaster/playwright.config.ts.html
create mode 100644 coverage/StudyMaster/postcss.config.js.html
create mode 100644 coverage/StudyMaster/src/App.tsx.html
create mode 100644 coverage/StudyMaster/src/components/AIChat.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Achievements.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Analytics.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Dashboard.tsx.html
create mode 100644 coverage/StudyMaster/src/components/FileUpload.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Flashcards.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Header.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Materials.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Quiz.tsx.html
create mode 100644 coverage/StudyMaster/src/components/SearchResults.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Settings.tsx.html
create mode 100644 coverage/StudyMaster/src/components/Sidebar.tsx.html
create mode 100644 coverage/StudyMaster/src/components/StudyTimer.tsx.html
create mode 100644 coverage/StudyMaster/src/components/index.html
create mode 100644 coverage/StudyMaster/src/contexts/ThemeContext.tsx.html
create mode 100644 coverage/StudyMaster/src/contexts/index.html
create mode 100644 coverage/StudyMaster/src/data/index.html
create mode 100644 coverage/StudyMaster/src/data/sampleData.ts.html
create mode 100644 coverage/StudyMaster/src/index.html
create mode 100644 coverage/StudyMaster/src/main.tsx.html
create mode 100644 coverage/StudyMaster/tailwind.config.js.html
create mode 100644 coverage/base.css
create mode 100644 coverage/block-navigation.js
create mode 100644 coverage/clover.xml
create mode 100644 coverage/coverage-final.json
create mode 100644 coverage/favicon.png
create mode 100644 coverage/index.html
create mode 100644 coverage/prettify.css
create mode 100644 coverage/prettify.js
create mode 100644 coverage/sort-arrow-sprite.png
create mode 100644 coverage/sorter.js
create mode 100644 playwright.config.ts
create mode 100644 src/e2e/example.spec.ts
create mode 100644 src/test/App.test.tsx
create mode 100644 src/test/setup.ts
create mode 100644 vitest.config.ts
diff --git a/coverage/StudyMaster/index.html b/coverage/StudyMaster/index.html
new file mode 100644
index 0000000..ee38d72
--- /dev/null
+++ b/coverage/StudyMaster/index.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+ Code coverage report for StudyMaster
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/55
+
+
+
+
+ 0%
+ Branches
+ 0/3
+
+
+
+
+ 0%
+ Functions
+ 0/3
+
+
+
+
+ 0%
+ Lines
+ 0/55
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | playwright.config.ts |
+
+
+ |
+ 0% |
+ 0/24 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/24 |
+
+
+
+ | postcss.config.js |
+
+
+ |
+ 0% |
+ 0/6 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/6 |
+
+
+
+ | tailwind.config.js |
+
+
+ |
+ 0% |
+ 0/25 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/25 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/playwright.config.ts.html b/coverage/StudyMaster/playwright.config.ts.html
new file mode 100644
index 0000000..e80284b
--- /dev/null
+++ b/coverage/StudyMaster/playwright.config.ts.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/playwright.config.ts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/24
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/24
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import { defineConfig, devices } from '@playwright/test';
+
+export default defineConfig({
+ testDir: './src/e2e',
+ fullyParallel: true,
+ forbidOnly: !!process.env.CI,
+ retries: process.env.CI ? 2 : 0,
+ workers: process.env.CI ? 1 : undefined,
+ reporter: 'html',
+ use: {
+ baseURL: 'http://localhost:4173',
+ trace: 'on-first-retry',
+ },
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+ ],
+ webServer: {
+ command: 'npm run preview',
+ port: 4173,
+ },
+}); |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/postcss.config.js.html b/coverage/StudyMaster/postcss.config.js.html
new file mode 100644
index 0000000..aa9fdac
--- /dev/null
+++ b/coverage/StudyMaster/postcss.config.js.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/postcss.config.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/6
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/6
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7 |
+
+
+
+
+
+ | export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
+ |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/App.tsx.html b/coverage/StudyMaster/src/App.tsx.html
new file mode 100644
index 0000000..a31968e
--- /dev/null
+++ b/coverage/StudyMaster/src/App.tsx.html
@@ -0,0 +1,316 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/App.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/78
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/78
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState } from 'react';
+import { ThemeProvider } from './contexts/ThemeContext';
+import Sidebar from './components/Sidebar';
+import Header from './components/Header';
+import Dashboard from './components/Dashboard';
+import Flashcards from './components/Flashcards';
+import Quiz from './components/Quiz';
+import FileUpload from './components/FileUpload';
+import Analytics from './components/Analytics';
+import StudyTimer from './components/StudyTimer';
+import Achievements from './components/Achievements';
+import Materials from './components/Materials';
+import SearchResults from './components/SearchResults';
+import Settings from './components/Settings';
+import AIChat from './components/AIChat';
+
+function App() {
+ const [activeSection, setActiveSection] = useState('dashboard');
+ const [showAIChat, setShowAIChat] = useState(false);
+ const [sidebarOpen, setSidebarOpen] = useState(false);
+
+ const renderActiveSection = () => {
+ switch (activeSection) {
+ case 'dashboard':
+ return <Dashboard />;
+ case 'flashcards':
+ return <Flashcards />;
+ case 'quiz':
+ return <Quiz />;
+ case 'upload':
+ return <FileUpload />;
+ case 'analytics':
+ return <Analytics />;
+ case 'study-timer':
+ return <StudyTimer />;
+ case 'achievements':
+ return <Achievements />;
+ case 'materials':
+ return <Materials />;
+ case 'search':
+ return <SearchResults />;
+ case 'settings':
+ return <Settings />;
+ default:
+ return <Dashboard />;
+ }
+ };
+
+ return (
+ <ThemeProvider>
+ <div className="flex h-screen bg-gray-50 dark:bg-gray-900 overflow-hidden">
+ <Sidebar
+ activeSection={activeSection}
+ setActiveSection={setActiveSection}
+ isOpen={sidebarOpen}
+ onClose={() => setSidebarOpen(false)}
+ />
+
+ <div className="flex-1 flex flex-col overflow-hidden lg:ml-0">
+ <Header
+ showAIChat={showAIChat}
+ setShowAIChat={setShowAIChat}
+ onMenuClick={() => setSidebarOpen(true)}
+ />
+
+ <main className="flex-1 overflow-y-auto">
+ {renderActiveSection()}
+ </main>
+ </div>
+
+ {/* AI Chat Assistant */}
+ <AIChat isOpen={showAIChat} onClose={() => setShowAIChat(false)} />
+ </div>
+ </ThemeProvider>
+ );
+}
+
+export default App; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/AIChat.tsx.html b/coverage/StudyMaster/src/components/AIChat.tsx.html
new file mode 100644
index 0000000..534b45b
--- /dev/null
+++ b/coverage/StudyMaster/src/components/AIChat.tsx.html
@@ -0,0 +1,910 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/AIChat.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/276
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/276
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState, useRef, useEffect } from 'react';
+import { motion, AnimatePresence } from 'framer-motion';
+import { MessageCircle, X, Send, Bot, User, Sparkles, BookOpen, Brain, Target } from 'lucide-react';
+
+interface Message {
+ id: string;
+ text: string;
+ sender: 'user' | 'ai';
+ timestamp: Date;
+ suggestions?: string[];
+}
+
+interface AIChatProps {
+ isOpen: boolean;
+ onClose: () => void;
+}
+
+const AIChat: React.FC<AIChatProps> = ({ isOpen, onClose }) => {
+ const [messages, setMessages] = useState<Message[]>([
+ {
+ id: '1',
+ text: "Hi! I'm your AI study assistant. I can help you with creating flashcards, explaining concepts, generating quiz questions, and optimizing your study schedule. What would you like to work on today?",
+ sender: 'ai',
+ timestamp: new Date(),
+ suggestions: [
+ "Create flashcards from my notes",
+ "Explain quantum physics concepts",
+ "Generate a quiz on biology",
+ "Optimize my study schedule"
+ ]
+ }
+ ]);
+ const [inputText, setInputText] = useState('');
+ const [isTyping, setIsTyping] = useState(false);
+ const messagesEndRef = useRef<HTMLDivElement>(null);
+ const inputRef = useRef<HTMLInputElement>(null);
+
+ const aiResponses = [
+ "I'd be happy to help you with that concept. Let me break it down into simpler terms.",
+ "That's a great question! Based on your recent study sessions, I notice you might benefit from reviewing this topic again.",
+ "Excellent work! You're showing great progress in this subject area. Let me create some practice questions for you.",
+ "I recommend focusing on the key concepts we discussed earlier. Would you like me to generate some flashcards?",
+ "Based on your learning patterns, I suggest using spaced repetition for this material. Let me set up a study schedule.",
+ "I can see you're struggling with this topic. Let me provide a different explanation approach that might help.",
+ "Your study streak is impressive! To maintain momentum, let's focus on reinforcing what you've learned.",
+ "I've analyzed your quiz results and identified areas for improvement. Would you like me to create targeted practice materials?"
+ ];
+
+ const scrollToBottom = () => {
+ messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });
+ };
+
+ useEffect(() => {
+ scrollToBottom();
+ }, [messages]);
+
+ useEffect(() => {
+ if (isOpen && inputRef.current) {
+ inputRef.current.focus();
+ }
+ }, [isOpen]);
+
+ const handleSendMessage = async () => {
+ if (!inputText.trim()) return;
+
+ const userMessage: Message = {
+ id: Date.now().toString(),
+ text: inputText,
+ sender: 'user',
+ timestamp: new Date()
+ };
+
+ setMessages(prev => [...prev, userMessage]);
+ setInputText('');
+ setIsTyping(true);
+
+ // Simulate AI response delay
+ setTimeout(() => {
+ const aiResponse: Message = {
+ id: (Date.now() + 1).toString(),
+ text: aiResponses[Math.floor(Math.random() * aiResponses.length)],
+ sender: 'ai',
+ timestamp: new Date(),
+ suggestions: Math.random() > 0.5 ? [
+ "Create practice quiz",
+ "Generate summary",
+ "Schedule review session",
+ "Explain in detail"
+ ] : undefined
+ };
+
+ setMessages(prev => [...prev, aiResponse]);
+ setIsTyping(false);
+ }, 1000 + Math.random() * 2000);
+ };
+
+ const handleSuggestionClick = (suggestion: string) => {
+ setInputText(suggestion);
+ if (inputRef.current) {
+ inputRef.current.focus();
+ }
+ };
+
+ const formatTime = (date: Date) => {
+ return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
+ };
+
+ return (
+ <>
+ {/* Chat Toggle Button */}
+ <AnimatePresence>
+ {!isOpen && (
+ <motion.button
+ initial={{ scale: 0, opacity: 0 }}
+ animate={{ scale: 1, opacity: 1 }}
+ exit={{ scale: 0, opacity: 0 }}
+ onClick={() => setIsOpen(true)}
+ className="fixed bottom-4 right-4 lg:bottom-6 lg:right-6 w-12 h-12 lg:w-14 lg:h-14 bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-full shadow-lg hover:shadow-xl transition-all duration-300 flex items-center justify-center z-50 touch-manipulation"
+ whileHover={{ scale: 1.1 }}
+ whileTap={{ scale: 0.9 }}
+ >
+ <MessageCircle className="w-5 h-5 lg:w-6 lg:h-6" />
+ <div className="absolute -top-1 -right-1 w-3 h-3 lg:w-4 lg:h-4 bg-orange-500 rounded-full animate-pulse"></div>
+ </motion.button>
+ )}
+ </AnimatePresence>
+
+ {/* Chat Panel */}
+ <AnimatePresence>
+ {isOpen && (
+ <motion.div
+ initial={{ opacity: 0, x: 400, y: 100 }}
+ animate={{ opacity: 1, x: 0, y: 0 }}
+ exit={{ opacity: 0, x: 400, y: 100 }}
+ className="fixed bottom-4 right-4 lg:bottom-6 lg:right-6 w-[calc(100vw-2rem)] max-w-sm lg:w-96 h-[70vh] lg:h-[600px] bg-white dark:bg-gray-800 rounded-2xl shadow-2xl border border-gray-200 dark:border-gray-700 flex flex-col z-50"
+ >
+ {/* Header */}
+ <div className="flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700 bg-gradient-to-r from-blue-500 to-purple-600 rounded-t-2xl text-white">
+ <div className="flex items-center gap-3">
+ <div className="w-8 h-8 bg-white/20 rounded-full flex items-center justify-center">
+ <Sparkles className="w-4 h-4" />
+ </div>
+ <div>
+ <h3 className="font-semibold text-sm lg:text-base">AI Study Assistant</h3>
+ <p className="text-xs text-blue-100">Always here to help</p>
+ </div>
+ </div>
+ <button
+ onClick={onClose}
+ className="w-8 h-8 bg-white/20 rounded-full flex items-center justify-center hover:bg-white/30 transition-colors touch-manipulation"
+ >
+ <X className="w-4 h-4" />
+ </button>
+ </div>
+
+ {/* Messages */}
+ <div className="flex-1 overflow-y-auto p-4 space-y-4">
+ {messages.map((message) => (
+ <div
+ key={message.id}
+ className={`flex ${message.sender === 'user' ? 'justify-end' : 'justify-start'}`}
+ >
+ <div className={`flex gap-2 max-w-[85%] ${message.sender === 'user' ? 'flex-row-reverse' : ''}`}>
+ <div className={`w-6 h-6 lg:w-8 lg:h-8 rounded-full flex items-center justify-center flex-shrink-0 ${
+ message.sender === 'user'
+ ? 'bg-blue-500 text-white'
+ : 'bg-gradient-to-r from-purple-500 to-pink-500 text-white'
+ }`}>
+ {message.sender === 'user' ? <User className="w-3 h-3 lg:w-4 lg:h-4" /> : <Bot className="w-3 h-3 lg:w-4 lg:h-4" />}
+ </div>
+ <div className={`rounded-2xl px-3 py-2 lg:px-4 lg:py-2 ${
+ message.sender === 'user'
+ ? 'bg-blue-500 text-white rounded-br-md'
+ : 'bg-gray-100 dark:bg-gray-700 text-gray-900 dark:text-white rounded-bl-md'
+ }`}>
+ <p className="text-xs lg:text-sm">{message.text}</p>
+ <p className={`text-xs mt-1 ${
+ message.sender === 'user' ? 'text-blue-100' : 'text-gray-500 dark:text-gray-400'
+ }`}>
+ {formatTime(message.timestamp)}
+ </p>
+ </div>
+ </div>
+ </div>
+ ))}
+
+ {/* Suggestions */}
+ {messages.length > 0 && messages[messages.length - 1].suggestions && (
+ <div className="flex flex-wrap gap-2">
+ {messages[messages.length - 1].suggestions!.map((suggestion, index) => (
+ <button
+ key={index}
+ onClick={() => handleSuggestionClick(suggestion)}
+ className="px-2 py-1 lg:px-3 lg:py-1 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-full text-xs hover:bg-blue-100 dark:hover:bg-blue-900/50 transition-colors touch-manipulation"
+ >
+ {suggestion}
+ </button>
+ ))}
+ </div>
+ )}
+
+ {/* Typing Indicator */}
+ {isTyping && (
+ <div className="flex justify-start">
+ <div className="flex gap-2 max-w-[85%]">
+ <div className="w-6 h-6 lg:w-8 lg:h-8 rounded-full bg-gradient-to-r from-purple-500 to-pink-500 text-white flex items-center justify-center flex-shrink-0">
+ <Bot className="w-3 h-3 lg:w-4 lg:h-4" />
+ </div>
+ <div className="bg-gray-100 dark:bg-gray-700 rounded-2xl rounded-bl-md px-3 py-2 lg:px-4 lg:py-2">
+ <div className="flex gap-1">
+ <div className="w-2 h-2 bg-gray-400 rounded-full animate-bounce"></div>
+ <div className="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style={{ animationDelay: '0.1s' }}></div>
+ <div className="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style={{ animationDelay: '0.2s' }}></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ )}
+
+ <div ref={messagesEndRef} />
+ </div>
+
+ {/* Quick Actions */}
+ <div className="p-3 lg:p-4 border-t border-gray-200 dark:border-gray-700">
+ <div className="flex gap-1 lg:gap-2 mb-3">
+ <button
+ onClick={() => handleSuggestionClick("Create flashcards from my notes")}
+ className="flex-1 flex items-center gap-1 lg:gap-2 px-2 py-2 lg:px-3 lg:py-2 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded-lg hover:bg-blue-100 dark:hover:bg-blue-900/50 transition-colors touch-manipulation"
+ >
+ <Brain className="w-3 h-3 lg:w-4 lg:h-4" />
+ <span className="text-xs">Cards</span>
+ </button>
+ <button
+ onClick={() => handleSuggestionClick("Generate a practice quiz")}
+ className="flex-1 flex items-center gap-1 lg:gap-2 px-2 py-2 lg:px-3 lg:py-2 bg-green-50 dark:bg-green-900/30 text-green-600 dark:text-green-400 rounded-lg hover:bg-green-100 dark:hover:bg-green-900/50 transition-colors touch-manipulation"
+ >
+ <BookOpen className="w-3 h-3 lg:w-4 lg:h-4" />
+ <span className="text-xs">Quiz</span>
+ </button>
+ <button
+ onClick={() => handleSuggestionClick("Optimize my study schedule")}
+ className="flex-1 flex items-center gap-1 lg:gap-2 px-2 py-2 lg:px-3 lg:py-2 bg-purple-50 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 rounded-lg hover:bg-purple-100 dark:hover:bg-purple-900/50 transition-colors touch-manipulation"
+ >
+ <Target className="w-3 h-3 lg:w-4 lg:h-4" />
+ <span className="text-xs">Plan</span>
+ </button>
+ </div>
+
+ {/* Input */}
+ <div className="flex gap-2">
+ <input
+ ref={inputRef}
+ type="text"
+ value={inputText}
+ onChange={(e) => setInputText(e.target.value)}
+ onKeyPress={(e) => e.key === 'Enter' && handleSendMessage()}
+ placeholder="Ask me anything..."
+ className="flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-500 focus:ring-2 focus:ring-blue-500 focus:border-transparent text-sm"
+ />
+ <button
+ onClick={handleSendMessage}
+ disabled={!inputText.trim() || isTyping}
+ className="px-3 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors touch-manipulation"
+ >
+ <Send className="w-4 h-4" />
+ </button>
+ </div>
+ </div>
+ </motion.div>
+ )}
+ </AnimatePresence>
+ </>
+ );
+};
+
+export default AIChat; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Achievements.tsx.html b/coverage/StudyMaster/src/components/Achievements.tsx.html
new file mode 100644
index 0000000..2b7f173
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Achievements.tsx.html
@@ -0,0 +1,1309 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Achievements.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/409
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/409
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React from 'react';
+import { motion } from 'framer-motion';
+import {
+ Trophy,
+ Award,
+ Star,
+ Target,
+ Flame,
+ Brain,
+ Clock,
+ BookOpen,
+ Zap,
+ Crown,
+ Medal,
+ Shield,
+ Lock
+} from 'lucide-react';
+
+interface Achievement {
+ id: string;
+ title: string;
+ description: string;
+ icon: React.ReactNode;
+ unlocked: boolean;
+ progress: number;
+ maxProgress: number;
+ rarity: 'common' | 'rare' | 'epic' | 'legendary';
+ category: 'study' | 'quiz' | 'streak' | 'time' | 'special';
+ unlockedDate?: string;
+ xpReward: number;
+}
+
+const Achievements: React.FC = () => {
+ const achievements: Achievement[] = [
+ {
+ id: '1',
+ title: 'First Steps',
+ description: 'Complete your first study session',
+ icon: <BookOpen className="w-6 h-6" />,
+ unlocked: true,
+ progress: 1,
+ maxProgress: 1,
+ rarity: 'common',
+ category: 'study',
+ unlockedDate: '2025-06-15',
+ xpReward: 100
+ },
+ {
+ id: '2',
+ title: 'Quiz Master',
+ description: 'Score 90% or higher on 10 quizzes',
+ icon: <Brain className="w-6 h-6" />,
+ unlocked: true,
+ progress: 10,
+ maxProgress: 10,
+ rarity: 'rare',
+ category: 'quiz',
+ unlockedDate: '2025-06-20',
+ xpReward: 250
+ },
+ {
+ id: '3',
+ title: 'Study Streak',
+ description: 'Study for 7 consecutive days',
+ icon: <Flame className="w-6 h-6" />,
+ unlocked: true,
+ progress: 7,
+ maxProgress: 7,
+ rarity: 'rare',
+ category: 'streak',
+ unlockedDate: '2025-06-22',
+ xpReward: 300
+ },
+ {
+ id: '4',
+ title: 'Time Warrior',
+ description: 'Complete 50 hours of focused study',
+ icon: <Clock className="w-6 h-6" />,
+ unlocked: false,
+ progress: 23,
+ maxProgress: 50,
+ rarity: 'epic',
+ category: 'time',
+ xpReward: 500
+ },
+ {
+ id: '5',
+ title: 'Flashcard Hero',
+ description: 'Review 1000 flashcards',
+ icon: <Zap className="w-6 h-6" />,
+ unlocked: false,
+ progress: 342,
+ maxProgress: 1000,
+ rarity: 'epic',
+ category: 'study',
+ xpReward: 400
+ },
+ {
+ id: '6',
+ title: 'Perfect Score',
+ description: 'Achieve 100% on any quiz',
+ icon: <Star className="w-6 h-6" />,
+ unlocked: false,
+ progress: 0,
+ maxProgress: 1,
+ rarity: 'rare',
+ category: 'quiz',
+ xpReward: 200
+ },
+ {
+ id: '7',
+ title: 'Marathon Learner',
+ description: 'Study for 30 consecutive days',
+ icon: <Shield className="w-6 h-6" />,
+ unlocked: false,
+ progress: 15,
+ maxProgress: 30,
+ rarity: 'epic',
+ category: 'streak',
+ xpReward: 750
+ },
+ {
+ id: '8',
+ title: 'Knowledge Emperor',
+ description: 'Complete all available courses',
+ icon: <Crown className="w-6 h-6" />,
+ unlocked: false,
+ progress: 2,
+ maxProgress: 5,
+ rarity: 'legendary',
+ category: 'special',
+ xpReward: 1000
+ },
+ {
+ id: '9',
+ title: 'Speed Demon',
+ description: 'Complete a quiz in under 2 minutes',
+ icon: <Zap className="w-6 h-6" />,
+ unlocked: false,
+ progress: 0,
+ maxProgress: 1,
+ rarity: 'rare',
+ category: 'quiz',
+ xpReward: 250
+ },
+ {
+ id: '10',
+ title: 'Dedication Medal',
+ description: 'Study for 100 total hours',
+ icon: <Medal className="w-6 h-6" />,
+ unlocked: false,
+ progress: 67,
+ maxProgress: 100,
+ rarity: 'legendary',
+ category: 'time',
+ xpReward: 1500
+ }
+ ];
+
+ const getRarityColor = (rarity: string) => {
+ switch (rarity) {
+ case 'common': return 'from-gray-400 to-gray-600';
+ case 'rare': return 'from-blue-400 to-blue-600';
+ case 'epic': return 'from-purple-400 to-purple-600';
+ case 'legendary': return 'from-yellow-400 to-orange-500';
+ default: return 'from-gray-400 to-gray-600';
+ }
+ };
+
+ const getRarityBorder = (rarity: string) => {
+ switch (rarity) {
+ case 'common': return 'border-gray-300 dark:border-gray-600';
+ case 'rare': return 'border-blue-300 dark:border-blue-600';
+ case 'epic': return 'border-purple-300 dark:border-purple-600';
+ case 'legendary': return 'border-yellow-300 dark:border-yellow-600';
+ default: return 'border-gray-300 dark:border-gray-600';
+ }
+ };
+
+ const getCategoryIcon = (category: string) => {
+ switch (category) {
+ case 'study': return <BookOpen className="w-4 h-4" />;
+ case 'quiz': return <Brain className="w-4 h-4" />;
+ case 'streak': return <Flame className="w-4 h-4" />;
+ case 'time': return <Clock className="w-4 h-4" />;
+ case 'special': return <Crown className="w-4 h-4" />;
+ default: return <Target className="w-4 h-4" />;
+ }
+ };
+
+ const totalAchievements = achievements.length;
+ const unlockedAchievements = achievements.filter(a => a.unlocked).length;
+ const totalXP = achievements.filter(a => a.unlocked).reduce((sum, a) => sum + a.xpReward, 0);
+ const overallProgress = (unlockedAchievements / totalAchievements) * 100;
+
+ const categories = ['all', 'study', 'quiz', 'streak', 'time', 'special'];
+ const [selectedCategory, setSelectedCategory] = React.useState('all');
+
+ const filteredAchievements = selectedCategory === 'all'
+ ? achievements
+ : achievements.filter(a => a.category === selectedCategory);
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Achievements</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Track your learning milestones and unlock rewards
+ </p>
+ </div>
+ <div className="flex items-center gap-2 text-sm text-yellow-600 dark:text-yellow-400">
+ <Trophy className="w-4 h-4" />
+ <span>{totalXP} XP Earned</span>
+ </div>
+ </div>
+
+ {/* Progress Overview */}
+ <div className="grid grid-cols-1 md:grid-cols-4 gap-6">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-yellow-100 dark:bg-yellow-900 rounded-lg flex items-center justify-center">
+ <Trophy className="w-6 h-6 text-yellow-600 dark:text-yellow-400" />
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">{unlockedAchievements}</h3>
+ <p className="text-gray-600 dark:text-gray-400">Achievements Unlocked</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center">
+ <Target className="w-6 h-6 text-blue-600 dark:text-blue-400" />
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">{Math.round(overallProgress)}%</h3>
+ <p className="text-gray-600 dark:text-gray-400">Overall Progress</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-purple-100 dark:bg-purple-900 rounded-lg flex items-center justify-center">
+ <Star className="w-6 h-6 text-purple-600 dark:text-purple-400" />
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">{totalXP}</h3>
+ <p className="text-gray-600 dark:text-gray-400">Total XP</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-green-100 dark:bg-green-900 rounded-lg flex items-center justify-center">
+ <Award className="w-6 h-6 text-green-600 dark:text-green-400" />
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">
+ {achievements.filter(a => a.rarity === 'legendary' && a.unlocked).length}
+ </h3>
+ <p className="text-gray-600 dark:text-gray-400">Legendary Unlocked</p>
+ </div>
+ </div>
+
+ {/* Category Filters */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Categories</h3>
+ <div className="flex flex-wrap gap-2">
+ {categories.map((category) => (
+ <button
+ key={category}
+ onClick={() => setSelectedCategory(category)}
+ className={`px-4 py-2 rounded-lg font-medium transition-colors flex items-center gap-2 ${
+ selectedCategory === category
+ ? 'bg-blue-500 text-white'
+ : 'bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600'
+ }`}
+ >
+ {category !== 'all' && getCategoryIcon(category)}
+ <span className="capitalize">{category}</span>
+ <span className="text-xs opacity-75">
+ ({category === 'all' ? achievements.length : achievements.filter(a => a.category === category).length})
+ </span>
+ </button>
+ ))}
+ </div>
+ </div>
+
+ {/* Achievements Grid */}
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
+ {filteredAchievements.map((achievement, index) => (
+ <motion.div
+ key={achievement.id}
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ transition={{ delay: index * 0.1 }}
+ className={`bg-white dark:bg-gray-800 rounded-xl p-6 border-2 ${getRarityBorder(achievement.rarity)} relative overflow-hidden ${
+ achievement.unlocked ? '' : 'opacity-75'
+ }`}
+ >
+ {/* Rarity Background */}
+ <div className={`absolute top-0 right-0 w-16 h-16 bg-gradient-to-br ${getRarityColor(achievement.rarity)} opacity-10 rounded-bl-3xl`} />
+
+ {/* Lock Overlay for Locked Achievements */}
+ {!achievement.unlocked && (
+ <div className="absolute inset-0 bg-black/5 dark:bg-black/20 rounded-xl flex items-center justify-center">
+ <div className="w-12 h-12 bg-gray-400 dark:bg-gray-600 rounded-full flex items-center justify-center">
+ <Lock className="w-6 h-6 text-white" />
+ </div>
+ </div>
+ )}
+
+ <div className="relative">
+ {/* Achievement Icon */}
+ <div className={`w-16 h-16 bg-gradient-to-br ${getRarityColor(achievement.rarity)} rounded-xl flex items-center justify-center text-white mb-4 ${
+ achievement.unlocked ? '' : 'grayscale'
+ }`}>
+ {achievement.icon}
+ </div>
+
+ {/* Achievement Info */}
+ <div className="mb-4">
+ <div className="flex items-center justify-between mb-2">
+ <h4 className="font-semibold text-gray-900 dark:text-white">{achievement.title}</h4>
+ <div className="flex items-center gap-1">
+ {getCategoryIcon(achievement.category)}
+ <span className={`text-xs px-2 py-1 rounded-full font-medium ${
+ achievement.rarity === 'legendary' ? 'bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200' :
+ achievement.rarity === 'epic' ? 'bg-purple-100 dark:bg-purple-900 text-purple-800 dark:text-purple-200' :
+ achievement.rarity === 'rare' ? 'bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200' :
+ 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200'
+ }`}>
+ {achievement.rarity}
+ </span>
+ </div>
+ </div>
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3">
+ {achievement.description}
+ </p>
+ </div>
+
+ {/* Progress Bar */}
+ <div className="mb-4">
+ <div className="flex justify-between items-center mb-2">
+ <span className="text-sm font-medium text-gray-700 dark:text-gray-300">
+ Progress
+ </span>
+ <span className="text-sm text-gray-600 dark:text-gray-400">
+ {achievement.progress}/{achievement.maxProgress}
+ </span>
+ </div>
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">
+ <div
+ className={`bg-gradient-to-r ${getRarityColor(achievement.rarity)} h-2 rounded-full transition-all duration-300`}
+ style={{ width: `${(achievement.progress / achievement.maxProgress) * 100}%` }}
+ />
+ </div>
+ </div>
+
+ {/* Reward & Date */}
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-2">
+ <Star className="w-4 h-4 text-yellow-500" />
+ <span className="text-sm font-medium text-gray-900 dark:text-white">
+ {achievement.xpReward} XP
+ </span>
+ </div>
+ {achievement.unlocked && achievement.unlockedDate && (
+ <span className="text-xs text-gray-500 dark:text-gray-400">
+ Unlocked {achievement.unlockedDate}
+ </span>
+ )}
+ </div>
+ </div>
+ </motion.div>
+ ))}
+ </div>
+
+ {/* Achievement Tips */}
+ <div className="bg-gradient-to-r from-blue-500 to-purple-600 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
+ <Trophy className="w-5 h-5" />
+ Achievement Tips
+ </h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div>
+ <h4 className="font-medium mb-1">Stay Consistent</h4>
+ <p className="text-sm text-blue-100">
+ Daily study sessions help unlock streak-based achievements faster.
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Challenge Yourself</h4>
+ <p className="text-sm text-blue-100">
+ Take on difficult quizzes to unlock rare and epic achievements.
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Explore All Features</h4>
+ <p className="text-sm text-blue-100">
+ Use flashcards, timers, and different study methods for varied achievements.
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Achievements; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Analytics.tsx.html b/coverage/StudyMaster/src/components/Analytics.tsx.html
new file mode 100644
index 0000000..61073eb
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Analytics.tsx.html
@@ -0,0 +1,1162 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Analytics.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/360
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/360
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React from 'react';
+import { LineChart, Line, AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar, PieChart, Pie, Cell, RadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar } from 'recharts';
+import { TrendingUp, TrendingDown, Calendar, Clock, Target, Brain, BookOpen, Award, Zap, Users } from 'lucide-react';
+
+const Analytics: React.FC = () => {
+ // Sample data for charts
+ const studyProgressData = [
+ { date: '01/06', hours: 2.5, efficiency: 85, score: 78 },
+ { date: '02/06', hours: 3.2, efficiency: 88, score: 82 },
+ { date: '03/06', hours: 1.8, efficiency: 82, score: 75 },
+ { date: '04/06', hours: 4.1, efficiency: 91, score: 88 },
+ { date: '05/06', hours: 3.5, efficiency: 89, score: 85 },
+ { date: '06/06', hours: 2.9, efficiency: 87, score: 83 },
+ { date: '07/06', hours: 3.8, efficiency: 93, score: 91 }
+ ];
+
+ const subjectPerformance = [
+ { subject: 'Psychology', completed: 75, accuracy: 88, timeSpent: 45 },
+ { subject: 'Biology', completed: 62, accuracy: 82, timeSpent: 38 },
+ { subject: 'History', completed: 89, accuracy: 91, timeSpent: 52 },
+ { subject: 'Mathematics', completed: 58, accuracy: 76, timeSpent: 41 },
+ { subject: 'Physics', completed: 71, accuracy: 84, timeSpent: 47 }
+ ];
+
+ const studyMethodData = [
+ { method: 'Flashcards', value: 35, color: '#3B82F6' },
+ { method: 'Quizzes', value: 28, color: '#10B981' },
+ { method: 'Reading', value: 20, color: '#8B5CF6' },
+ { method: 'Videos', value: 17, color: '#F59E0B' }
+ ];
+
+ const skillRadarData = [
+ { skill: 'Memory', current: 85, target: 90 },
+ { skill: 'Analysis', current: 78, target: 85 },
+ { skill: 'Comprehension', current: 92, target: 95 },
+ { skill: 'Speed', current: 74, target: 80 },
+ { skill: 'Accuracy', current: 88, target: 90 },
+ { skill: 'Retention', current: 81, target: 85 }
+ ];
+
+ const weeklyGoals = [
+ { day: 'Mon', target: 3, achieved: 3.2 },
+ { day: 'Tue', target: 3, achieved: 2.8 },
+ { day: 'Wed', target: 3, achieved: 3.5 },
+ { day: 'Thu', target: 3, achieved: 2.9 },
+ { day: 'Fri', target: 3, achieved: 3.1 },
+ { day: 'Sat', target: 4, achieved: 4.2 },
+ { day: 'Sun', target: 4, achieved: 3.8 }
+ ];
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Study Analytics</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Track your learning progress and performance insights
+ </p>
+ </div>
+ <div className="flex items-center gap-2 text-sm text-blue-600 dark:text-blue-400">
+ <Brain className="w-4 h-4" />
+ <span>AI-Powered Insights</span>
+ </div>
+ </div>
+
+ {/* Key Metrics */}
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center">
+ <Clock className="w-6 h-6 text-blue-600 dark:text-blue-400" />
+ </div>
+ <div className="flex items-center text-green-500">
+ <TrendingUp className="w-4 h-4 mr-1" />
+ <span className="text-sm">+12%</span>
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">23.8h</h3>
+ <p className="text-gray-600 dark:text-gray-400">Weekly Study Time</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-green-100 dark:bg-green-900 rounded-lg flex items-center justify-center">
+ <Target className="w-6 h-6 text-green-600 dark:text-green-400" />
+ </div>
+ <div className="flex items-center text-green-500">
+ <TrendingUp className="w-4 h-4 mr-1" />
+ <span className="text-sm">+5%</span>
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">88.5%</h3>
+ <p className="text-gray-600 dark:text-gray-400">Average Accuracy</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-purple-100 dark:bg-purple-900 rounded-lg flex items-center justify-center">
+ <Zap className="w-6 h-6 text-purple-600 dark:text-purple-400" />
+ </div>
+ <div className="flex items-center text-red-500">
+ <TrendingDown className="w-4 h-4 mr-1" />
+ <span className="text-sm">-2%</span>
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">342</h3>
+ <p className="text-gray-600 dark:text-gray-400">Cards Reviewed</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-4">
+ <div className="w-12 h-12 bg-orange-100 dark:bg-orange-900 rounded-lg flex items-center justify-center">
+ <Award className="w-6 h-6 text-orange-600 dark:text-orange-400" />
+ </div>
+ <div className="flex items-center text-green-500">
+ <TrendingUp className="w-4 h-4 mr-1" />
+ <span className="text-sm">+1</span>
+ </div>
+ </div>
+ <h3 className="text-2xl font-bold text-gray-900 dark:text-white">15</h3>
+ <p className="text-gray-600 dark:text-gray-400">Day Streak</p>
+ </div>
+ </div>
+
+ {/* Charts Row 1 */}
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
+ {/* Study Progress Chart */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Study Progress Over Time</h3>
+ <ResponsiveContainer width="100%" height={300}>
+ <AreaChart data={studyProgressData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
+ <XAxis dataKey="date" stroke="#6B7280" />
+ <YAxis stroke="#6B7280" />
+ <Tooltip
+ contentStyle={{
+ backgroundColor: '#1F2937',
+ border: 'none',
+ borderRadius: '8px',
+ color: '#fff'
+ }}
+ />
+ <Area
+ type="monotone"
+ dataKey="hours"
+ stroke="#3B82F6"
+ fill="url(#colorHours)"
+ strokeWidth={2}
+ />
+ <defs>
+ <linearGradient id="colorHours" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor="#3B82F6" stopOpacity={0.3}/>
+ <stop offset="95%" stopColor="#3B82F6" stopOpacity={0}/>
+ </linearGradient>
+ </defs>
+ </AreaChart>
+ </ResponsiveContainer>
+ </div>
+
+ {/* Subject Performance */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Subject Performance</h3>
+ <ResponsiveContainer width="100%" height={300}>
+ <BarChart data={subjectPerformance}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
+ <XAxis dataKey="subject" stroke="#6B7280" />
+ <YAxis stroke="#6B7280" />
+ <Tooltip
+ contentStyle={{
+ backgroundColor: '#1F2937',
+ border: 'none',
+ borderRadius: '8px',
+ color: '#fff'
+ }}
+ />
+ <Bar dataKey="accuracy" fill="#10B981" radius={[4, 4, 0, 0]} />
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ </div>
+
+ {/* Charts Row 2 */}
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
+ {/* Study Methods Distribution */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Study Methods</h3>
+ <ResponsiveContainer width="100%" height={250}>
+ <PieChart>
+ <Pie
+ data={studyMethodData}
+ cx="50%"
+ cy="50%"
+ innerRadius={60}
+ outerRadius={90}
+ paddingAngle={5}
+ dataKey="value"
+ >
+ {studyMethodData.map((entry, index) => (
+ <Cell key={`cell-${index}`} fill={entry.color} />
+ ))}
+ </Pie>
+ <Tooltip />
+ </PieChart>
+ </ResponsiveContainer>
+ <div className="grid grid-cols-2 gap-2 mt-4">
+ {studyMethodData.map((method, index) => (
+ <div key={index} className="flex items-center gap-2">
+ <div
+ className="w-3 h-3 rounded-full"
+ style={{ backgroundColor: method.color }}
+ />
+ <span className="text-sm text-gray-600 dark:text-gray-400">
+ {method.method}
+ </span>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ {/* Skills Radar */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Skills Assessment</h3>
+ <ResponsiveContainer width="100%" height={250}>
+ <RadarChart data={skillRadarData}>
+ <PolarGrid />
+ <PolarAngleAxis dataKey="skill" />
+ <PolarRadiusAxis angle={30} domain={[0, 100]} />
+ <Radar
+ name="Current"
+ dataKey="current"
+ stroke="#3B82F6"
+ fill="#3B82F6"
+ fillOpacity={0.3}
+ />
+ <Radar
+ name="Target"
+ dataKey="target"
+ stroke="#10B981"
+ fill="#10B981"
+ fillOpacity={0.1}
+ />
+ <Tooltip />
+ </RadarChart>
+ </ResponsiveContainer>
+ </div>
+
+ {/* Weekly Goals */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Weekly Goals</h3>
+ <ResponsiveContainer width="100%" height={250}>
+ <BarChart data={weeklyGoals}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
+ <XAxis dataKey="day" stroke="#6B7280" />
+ <YAxis stroke="#6B7280" />
+ <Tooltip
+ contentStyle={{
+ backgroundColor: '#1F2937',
+ border: 'none',
+ borderRadius: '8px',
+ color: '#fff'
+ }}
+ />
+ <Bar dataKey="target" fill="#8B5CF6" radius={[4, 4, 0, 0]} />
+ <Bar dataKey="achieved" fill="#10B981" radius={[4, 4, 0, 0]} />
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ </div>
+
+ {/* Insights & Recommendations */}
+ <div className="bg-gradient-to-r from-blue-500 to-purple-600 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
+ <Brain className="w-5 h-5" />
+ AI-Powered Insights
+ </h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div className="bg-white/10 rounded-lg p-4">
+ <h4 className="font-medium mb-2">Peak Performance</h4>
+ <p className="text-sm text-blue-100">
+ Your best study hours are 2-4 PM with 93% efficiency. Consider scheduling challenging topics during this time.
+ </p>
+ </div>
+ <div className="bg-white/10 rounded-lg p-4">
+ <h4 className="font-medium mb-2">Improvement Area</h4>
+ <p className="text-sm text-blue-100">
+ Mathematics needs attention. Your accuracy dropped 8% this week. Recommend more practice sessions.
+ </p>
+ </div>
+ <div className="bg-white/10 rounded-lg p-4">
+ <h4 className="font-medium mb-2">Study Method</h4>
+ <p className="text-sm text-blue-100">
+ Flashcards show highest retention (94%). Consider increasing flashcard usage for difficult concepts.
+ </p>
+ </div>
+ </div>
+ </div>
+
+ {/* Detailed Statistics */}
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
+ {/* Learning Velocity */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Learning Velocity</h3>
+ <div className="space-y-4">
+ {subjectPerformance.map((subject, index) => (
+ <div key={index}>
+ <div className="flex justify-between items-center mb-2">
+ <span className="text-sm font-medium text-gray-900 dark:text-white">{subject.subject}</span>
+ <span className="text-sm text-gray-600 dark:text-gray-400">{subject.completed}%</span>
+ </div>
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">
+ <div
+ className="bg-gradient-to-r from-blue-500 to-purple-600 h-2 rounded-full transition-all duration-300"
+ style={{ width: `${subject.completed}%` }}
+ />
+ </div>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ {/* Study Streaks */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Achievement Timeline</h3>
+ <div className="space-y-4">
+ <div className="flex items-center gap-3">
+ <div className="w-8 h-8 bg-yellow-100 dark:bg-yellow-900 rounded-full flex items-center justify-center">
+ <Award className="w-4 h-4 text-yellow-600 dark:text-yellow-400" />
+ </div>
+ <div>
+ <p className="font-medium text-gray-900 dark:text-white">15-Day Study Streak</p>
+ <p className="text-sm text-gray-600 dark:text-gray-400">Achieved today</p>
+ </div>
+ </div>
+ <div className="flex items-center gap-3">
+ <div className="w-8 h-8 bg-green-100 dark:bg-green-900 rounded-full flex items-center justify-center">
+ <Target className="w-4 h-4 text-green-600 dark:text-green-400" />
+ </div>
+ <div>
+ <p className="font-medium text-gray-900 dark:text-white">90% Quiz Master</p>
+ <p className="text-sm text-gray-600 dark:text-gray-400">2 days ago</p>
+ </div>
+ </div>
+ <div className="flex items-center gap-3">
+ <div className="w-8 h-8 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center">
+ <BookOpen className="w-4 h-4 text-blue-600 dark:text-blue-400" />
+ </div>
+ <div>
+ <p className="font-medium text-gray-900 dark:text-white">1000 Cards Reviewed</p>
+ <p className="text-sm text-gray-600 dark:text-gray-400">1 week ago</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Analytics; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Dashboard.tsx.html b/coverage/StudyMaster/src/components/Dashboard.tsx.html
new file mode 100644
index 0000000..d42b9f6
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Dashboard.tsx.html
@@ -0,0 +1,685 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Dashboard.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/201
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/201
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React from 'react';
+import { LineChart, Line, AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar } from 'recharts';
+import { TrendingUp, Award, Clock, Brain, BookOpen, Target, Flame, Calendar } from 'lucide-react';
+import { studyProgressData, quizResultsData } from '../data/sampleData';
+
+const Dashboard: React.FC = () => {
+ // Prepare chart data
+ const chartData = quizResultsData.map(result => ({
+ date: result.date.slice(0, 5), // Show only day-month
+ score: result.score,
+ time: result.timeTaken
+ }));
+
+ const subjectData = studyProgressData.subjects.map(subject => ({
+ name: subject.name,
+ progress: subject.progress
+ }));
+
+ return (
+ <div className="p-4 lg:p-6 space-y-4 lg:space-y-6">
+ {/* Welcome Section */}
+ <div className="bg-gradient-to-r from-blue-500 to-purple-600 rounded-xl p-4 lg:p-6 text-white flex flex-col lg:flex-row justify-between items-start lg:items-center gap-4">
+ <div className="flex-1">
+ <h1 className="text-xl lg:text-2xl font-bold mb-2">Welcome back, {studyProgressData.user.name}! 🎉</h1>
+ <p className="text-blue-100 text-sm lg:text-base">Ready to continue your learning journey? You're doing amazing!</p>
+ </div>
+ <img
+ src="/white_circle_360x360.png"
+ alt="Bolt Logo"
+ className="w-20 h-20 lg:w-[120px] lg:h-[120px] flex-shrink-0 self-center lg:self-auto"
+ />
+ </div>
+
+ {/* Stats Grid */}
+ <div className="grid grid-cols-2 lg:grid-cols-4 gap-3 lg:gap-6">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-3 lg:mb-4">
+ <div className="w-10 h-10 lg:w-12 lg:h-12 bg-orange-100 dark:bg-orange-900 rounded-lg flex items-center justify-center">
+ <Flame className="w-5 h-5 lg:w-6 lg:h-6 text-orange-600 dark:text-orange-400" />
+ </div>
+ <TrendingUp className="w-4 h-4 lg:w-5 lg:h-5 text-green-500" />
+ </div>
+ <h3 className="text-xl lg:text-2xl font-bold text-gray-900 dark:text-white">{studyProgressData.user.studyStreak}</h3>
+ <p className="text-gray-600 dark:text-gray-400 text-xs lg:text-sm">Day Study Streak</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-3 lg:mb-4">
+ <div className="w-10 h-10 lg:w-12 lg:h-12 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center">
+ <Clock className="w-5 h-5 lg:w-6 lg:h-6 text-blue-600 dark:text-blue-400" />
+ </div>
+ <TrendingUp className="w-4 h-4 lg:w-5 lg:h-5 text-green-500" />
+ </div>
+ <h3 className="text-xl lg:text-2xl font-bold text-gray-900 dark:text-white">{studyProgressData.user.totalStudyHours}h</h3>
+ <p className="text-gray-600 dark:text-gray-400 text-xs lg:text-sm">Total Study Time</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-3 lg:mb-4">
+ <div className="w-10 h-10 lg:w-12 lg:h-12 bg-green-100 dark:bg-green-900 rounded-lg flex items-center justify-center">
+ <Target className="w-5 h-5 lg:w-6 lg:h-6 text-green-600 dark:text-green-400" />
+ </div>
+ <TrendingUp className="w-4 h-4 lg:w-5 lg:h-5 text-green-500" />
+ </div>
+ <h3 className="text-xl lg:text-2xl font-bold text-gray-900 dark:text-white">{studyProgressData.user.averageScore}%</h3>
+ <p className="text-gray-600 dark:text-gray-400 text-xs lg:text-sm">Average Score</p>
+ </div>
+
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-3 lg:mb-4">
+ <div className="w-10 h-10 lg:w-12 lg:h-12 bg-purple-100 dark:bg-purple-900 rounded-lg flex items-center justify-center">
+ <Brain className="w-5 h-5 lg:w-6 lg:h-6 text-purple-600 dark:text-purple-400" />
+ </div>
+ <TrendingUp className="w-4 h-4 lg:w-5 lg:h-5 text-green-500" />
+ </div>
+ <h3 className="text-xl lg:text-2xl font-bold text-gray-900 dark:text-white">{studyProgressData.user.cardsReviewed}</h3>
+ <p className="text-gray-600 dark:text-gray-400 text-xs lg:text-sm">Cards Reviewed</p>
+ </div>
+ </div>
+
+ {/* Charts Section */}
+ <div className="grid grid-cols-1 xl:grid-cols-2 gap-4 lg:gap-6">
+ {/* Performance Chart */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Quiz Performance</h3>
+ <ResponsiveContainer width="100%" height={250} className="lg:h-[300px]">
+ <AreaChart data={chartData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
+ <XAxis dataKey="date" stroke="#6B7280" fontSize={12} />
+ <YAxis stroke="#6B7280" fontSize={12} />
+ <Tooltip
+ contentStyle={{
+ backgroundColor: '#1F2937',
+ border: 'none',
+ borderRadius: '8px',
+ color: '#fff',
+ fontSize: '14px'
+ }}
+ />
+ <Area
+ type="monotone"
+ dataKey="score"
+ stroke="#3B82F6"
+ fill="url(#colorScore)"
+ strokeWidth={2}
+ />
+ <defs>
+ <linearGradient id="colorScore" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="5%" stopColor="#3B82F6" stopOpacity={0.3}/>
+ <stop offset="95%" stopColor="#3B82F6" stopOpacity={0}/>
+ </linearGradient>
+ </defs>
+ </AreaChart>
+ </ResponsiveContainer>
+ </div>
+
+ {/* Subject Progress */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Subject Progress</h3>
+ <ResponsiveContainer width="100%" height={250} className="lg:h-[300px]">
+ <BarChart data={subjectData}>
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
+ <XAxis dataKey="name" stroke="#6B7280" fontSize={12} />
+ <YAxis stroke="#6B7280" fontSize={12} />
+ <Tooltip
+ contentStyle={{
+ backgroundColor: '#1F2937',
+ border: 'none',
+ borderRadius: '8px',
+ color: '#fff',
+ fontSize: '14px'
+ }}
+ />
+ <Bar dataKey="progress" fill="#10B981" radius={[4, 4, 0, 0]} />
+ </BarChart>
+ </ResponsiveContainer>
+ </div>
+ </div>
+
+ {/* Recent Activity & Upcoming */}
+ <div className="grid grid-cols-1 xl:grid-cols-2 gap-4 lg:gap-6">
+ {/* Recent Activity */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Recent Activity</h3>
+ <div className="space-y-3 lg:space-y-4">
+ {quizResultsData.slice(0, 3).map((result, index) => (
+ <div key={index} className="flex items-center gap-3 lg:gap-4">
+ <div className="w-8 h-8 lg:w-10 lg:h-10 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center flex-shrink-0">
+ <BookOpen className="w-4 h-4 lg:w-5 lg:h-5 text-blue-600 dark:text-blue-400" />
+ </div>
+ <div className="flex-1 min-w-0">
+ <p className="font-medium text-gray-900 dark:text-white text-sm lg:text-base truncate">{result.subject} Quiz</p>
+ <p className="text-xs lg:text-sm text-gray-600 dark:text-gray-400">Score: {result.score}% • {result.date}</p>
+ </div>
+ <div className="text-right flex-shrink-0">
+ <div className="text-base lg:text-lg font-semibold text-green-600">{result.score}%</div>
+ </div>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ {/* Achievements */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 lg:p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Achievements</h3>
+ <div className="space-y-3 lg:space-y-4">
+ {studyProgressData.achievements.map((achievement, index) => (
+ <div key={index} className="flex items-center gap-3 lg:gap-4">
+ <div className={`w-8 h-8 lg:w-10 lg:h-10 rounded-lg flex items-center justify-center flex-shrink-0 ${
+ achievement.unlocked
+ ? 'bg-yellow-100 dark:bg-yellow-900'
+ : 'bg-gray-100 dark:bg-gray-700'
+ }`}>
+ <Award className={`w-4 h-4 lg:w-5 lg:h-5 ${
+ achievement.unlocked
+ ? 'text-yellow-600 dark:text-yellow-400'
+ : 'text-gray-400'
+ }`} />
+ </div>
+ <div className="flex-1 min-w-0">
+ <p className={`font-medium text-sm lg:text-base truncate ${
+ achievement.unlocked
+ ? 'text-gray-900 dark:text-white'
+ : 'text-gray-500 dark:text-gray-400'
+ }`}>
+ {achievement.name}
+ </p>
+ <p className="text-xs lg:text-sm text-gray-600 dark:text-gray-400">
+ {achievement.unlocked ? 'Unlocked!' : 'Keep studying to unlock'}
+ </p>
+ </div>
+ </div>
+ ))}
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Dashboard; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/FileUpload.tsx.html b/coverage/StudyMaster/src/components/FileUpload.tsx.html
new file mode 100644
index 0000000..99efda8
--- /dev/null
+++ b/coverage/StudyMaster/src/components/FileUpload.tsx.html
@@ -0,0 +1,691 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/FileUpload.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/203
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/203
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useCallback, useState } from 'react';
+import { useDropzone } from 'react-dropzone';
+import { Upload, FileText, Image, Film, Music, X, Sparkles } from 'lucide-react';
+import { motion, AnimatePresence } from 'framer-motion';
+
+interface UploadedFile {
+ id: string;
+ name: string;
+ size: number;
+ type: string;
+ url?: string;
+}
+
+const FileUpload: React.FC = () => {
+ const [uploadedFiles, setUploadedFiles] = useState<UploadedFile[]>([]);
+ const [isProcessing, setIsProcessing] = useState(false);
+
+ const onDrop = useCallback((acceptedFiles: File[]) => {
+ setIsProcessing(true);
+
+ // Simulate file processing
+ setTimeout(() => {
+ const newFiles: UploadedFile[] = acceptedFiles.map(file => ({
+ id: Math.random().toString(36).substr(2, 9),
+ name: file.name,
+ size: file.size,
+ type: file.type,
+ url: URL.createObjectURL(file)
+ }));
+
+ setUploadedFiles(prev => [...prev, ...newFiles]);
+ setIsProcessing(false);
+ }, 2000);
+ }, []);
+
+ const { getRootProps, getInputProps, isDragActive } = useDropzone({
+ onDrop,
+ accept: {
+ 'application/pdf': ['.pdf'],
+ 'text/plain': ['.txt'],
+ 'application/msword': ['.doc'],
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': ['.docx'],
+ 'image/*': ['.png', '.jpg', '.jpeg', '.gif'],
+ 'video/*': ['.mp4', '.mov', '.avi'],
+ 'audio/*': ['.mp3', '.wav', '.aac']
+ }
+ });
+
+ const removeFile = (id: string) => {
+ setUploadedFiles(prev => prev.filter(file => file.id !== id));
+ };
+
+ const getFileIcon = (type: string) => {
+ if (type.startsWith('image/')) return <Image className="w-6 h-6" />;
+ if (type.startsWith('video/')) return <Film className="w-6 h-6" />;
+ if (type.startsWith('audio/')) return <Music className="w-6 h-6" />;
+ return <FileText className="w-6 h-6" />;
+ };
+
+ const formatFileSize = (bytes: number) => {
+ if (bytes === 0) return '0 Bytes';
+ const k = 1024;
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
+ };
+
+ return (
+ <div className="p-6 space-y-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Upload Study Materials</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Upload PDFs, documents, images, or other study materials for AI processing
+ </p>
+ </div>
+ <div className="flex items-center gap-2 text-sm text-blue-600 dark:text-blue-400">
+ <Sparkles className="w-4 h-4" />
+ <span>AI-Powered Processing</span>
+ </div>
+ </div>
+
+ {/* Upload Zone */}
+ <motion.div
+ {...getRootProps()}
+ className={`border-2 border-dashed rounded-xl p-12 text-center cursor-pointer transition-all duration-300 ${
+ isDragActive
+ ? 'border-blue-500 bg-blue-50 dark:bg-blue-900/20'
+ : 'border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500'
+ }`}
+ whileHover={{ scale: 1.02 }}
+ whileTap={{ scale: 0.98 }}
+ >
+ <input {...getInputProps()} />
+ <motion.div
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ className="space-y-4"
+ >
+ <div className="w-16 h-16 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center mx-auto">
+ <Upload className="w-8 h-8 text-blue-600 dark:text-blue-400" />
+ </div>
+ <div>
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-2">
+ {isDragActive ? 'Drop files here...' : 'Upload your study materials'}
+ </h3>
+ <p className="text-gray-600 dark:text-gray-400">
+ Drag & drop files here, or click to browse
+ </p>
+ <p className="text-sm text-gray-500 dark:text-gray-500 mt-2">
+ Supports PDF, DOC, TXT, images, videos, and audio files
+ </p>
+ </div>
+ </motion.div>
+ </motion.div>
+
+ {/* Processing Indicator */}
+ <AnimatePresence>
+ {isProcessing && (
+ <motion.div
+ initial={{ opacity: 0, height: 0 }}
+ animate={{ opacity: 1, height: 'auto' }}
+ exit={{ opacity: 0, height: 0 }}
+ className="bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-700 rounded-xl p-4"
+ >
+ <div className="flex items-center gap-3">
+ <div className="animate-spin w-5 h-5 border-2 border-blue-500 border-t-transparent rounded-full"></div>
+ <div>
+ <p className="font-medium text-blue-900 dark:text-blue-100">Processing files with AI...</p>
+ <p className="text-sm text-blue-700 dark:text-blue-300">
+ Extracting content and generating flashcards automatically
+ </p>
+ </div>
+ </div>
+ </motion.div>
+ )}
+ </AnimatePresence>
+
+ {/* Uploaded Files */}
+ {uploadedFiles.length > 0 && (
+ <div className="space-y-4">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white">Uploaded Files</h3>
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
+ {uploadedFiles.map((file) => (
+ <motion.div
+ key={file.id}
+ initial={{ opacity: 0, scale: 0.9 }}
+ animate={{ opacity: 1, scale: 1 }}
+ className="bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl p-4"
+ >
+ <div className="flex items-start justify-between mb-3">
+ <div className="w-12 h-12 bg-gray-100 dark:bg-gray-700 rounded-lg flex items-center justify-center text-gray-600 dark:text-gray-400">
+ {getFileIcon(file.type)}
+ </div>
+ <button
+ onClick={() => removeFile(file.id)}
+ className="text-gray-400 hover:text-red-500 transition-colors"
+ >
+ <X className="w-4 h-4" />
+ </button>
+ </div>
+ <h4 className="font-medium text-gray-900 dark:text-white truncate">{file.name}</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">{formatFileSize(file.size)}</p>
+ <div className="mt-3 flex gap-2">
+ <button className="flex-1 bg-blue-500 text-white text-sm py-2 px-3 rounded-lg hover:bg-blue-600 transition-colors">
+ Generate Cards
+ </button>
+ <button className="flex-1 bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 text-sm py-2 px-3 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors">
+ View
+ </button>
+ </div>
+ </motion.div>
+ ))}
+ </div>
+ </div>
+ )}
+
+ {/* AI Features */}
+ <div className="bg-gradient-to-r from-purple-500 to-pink-500 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-2">AI-Powered Study Enhancement</h3>
+ <p className="text-purple-100 mb-4">
+ Our advanced AI automatically processes your uploaded materials to create:
+ </p>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div className="bg-white/10 rounded-lg p-3">
+ <h4 className="font-medium mb-1">Smart Flashcards</h4>
+ <p className="text-sm text-purple-100">Auto-generated from key concepts</p>
+ </div>
+ <div className="bg-white/10 rounded-lg p-3">
+ <h4 className="font-medium mb-1">Practice Quizzes</h4>
+ <p className="text-sm text-purple-100">Customized to your learning level</p>
+ </div>
+ <div className="bg-white/10 rounded-lg p-3">
+ <h4 className="font-medium mb-1">Study Summaries</h4>
+ <p className="text-sm text-purple-100">Concise overviews of main topics</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default FileUpload; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Flashcards.tsx.html b/coverage/StudyMaster/src/components/Flashcards.tsx.html
new file mode 100644
index 0000000..fa85685
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Flashcards.tsx.html
@@ -0,0 +1,733 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Flashcards.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/217
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/217
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState } from 'react';
+import { RotateCcw, ChevronLeft, ChevronRight, Brain, Shuffle, Play, BookOpen } from 'lucide-react';
+import { motion, AnimatePresence } from 'framer-motion';
+import { flashcardsData } from '../data/sampleData';
+
+interface Card {
+ front: string;
+ back: string;
+}
+
+const Flashcards: React.FC = () => {
+ const [selectedSubject, setSelectedSubject] = useState(flashcardsData.decks[0].subject);
+ const [currentCardIndex, setCurrentCardIndex] = useState(0);
+ const [isFlipped, setIsFlipped] = useState(false);
+ const [studyMode, setStudyMode] = useState<'review' | 'spaced'>('review');
+
+ const currentDeck = flashcardsData.decks.find(deck => deck.subject === selectedSubject);
+ const currentCard = currentDeck?.cards[currentCardIndex];
+
+ const nextCard = () => {
+ if (currentDeck && currentCardIndex < currentDeck.cards.length - 1) {
+ setCurrentCardIndex(prev => prev + 1);
+ setIsFlipped(false);
+ }
+ };
+
+ const prevCard = () => {
+ if (currentCardIndex > 0) {
+ setCurrentCardIndex(prev => prev - 1);
+ setIsFlipped(false);
+ }
+ };
+
+ const shuffleCards = () => {
+ setCurrentCardIndex(0);
+ setIsFlipped(false);
+ // In a real app, you'd shuffle the deck array
+ };
+
+ const resetProgress = () => {
+ setCurrentCardIndex(0);
+ setIsFlipped(false);
+ };
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Flashcards</h1>
+ <p className="text-gray-600 dark:text-gray-400">Review and master your study materials</p>
+ </div>
+
+ <div className="flex items-center gap-3">
+ <select
+ value={studyMode}
+ onChange={(e) => setStudyMode(e.target.value as 'review' | 'spaced')}
+ className="px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="review">Review Mode</option>
+ <option value="spaced">Spaced Repetition</option>
+ </select>
+
+ <button
+ onClick={shuffleCards}
+ className="px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors flex items-center gap-2"
+ >
+ <Shuffle className="w-4 h-4" />
+ Shuffle
+ </button>
+ </div>
+ </div>
+
+ {/* Subject Tabs */}
+ <div className="flex flex-wrap gap-2">
+ {flashcardsData.decks.map((deck) => (
+ <button
+ key={deck.subject}
+ onClick={() => {
+ setSelectedSubject(deck.subject);
+ setCurrentCardIndex(0);
+ setIsFlipped(false);
+ }}
+ className={`px-4 py-2 rounded-lg font-medium transition-colors ${
+ selectedSubject === deck.subject
+ ? 'bg-blue-500 text-white'
+ : 'bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700'
+ }`}
+ >
+ {deck.subject}
+ <span className="ml-2 text-sm opacity-75">({deck.cards.length})</span>
+ </button>
+ ))}
+ </div>
+
+ {/* Progress */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-2">
+ <span className="text-sm font-medium text-gray-700 dark:text-gray-300">
+ Card {currentCardIndex + 1} of {currentDeck?.cards.length}
+ </span>
+ <span className="text-sm text-gray-600 dark:text-gray-400">
+ {Math.round(((currentCardIndex + 1) / (currentDeck?.cards.length || 1)) * 100)}% Complete
+ </span>
+ </div>
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">
+ <div
+ className="bg-blue-500 h-2 rounded-full transition-all duration-300"
+ style={{
+ width: `${((currentCardIndex + 1) / (currentDeck?.cards.length || 1)) * 100}%`
+ }}
+ />
+ </div>
+ </div>
+
+ {/* Flashcard */}
+ <div className="flex justify-center">
+ <div className="w-full max-w-2xl">
+ <motion.div
+ className="relative h-80 perspective-1000"
+ style={{ perspective: '1000px' }}
+ >
+ <motion.div
+ className="relative w-full h-full cursor-pointer"
+ onClick={() => setIsFlipped(!isFlipped)}
+ animate={{ rotateY: isFlipped ? 180 : 0 }}
+ transition={{ duration: 0.6, type: "spring" }}
+ style={{ transformStyle: 'preserve-3d' }}
+ >
+ {/* Front of card */}
+ <div
+ className="absolute inset-0 w-full h-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl shadow-lg flex items-center justify-center p-8"
+ style={{ backfaceVisibility: 'hidden' }}
+ >
+ <div className="text-center">
+ <BookOpen className="w-8 h-8 text-blue-500 mx-auto mb-4" />
+ <p className="text-lg font-medium text-gray-900 dark:text-white">
+ {currentCard?.front}
+ </p>
+ <p className="text-sm text-gray-500 dark:text-gray-400 mt-4">
+ Click to reveal answer
+ </p>
+ </div>
+ </div>
+
+ {/* Back of card */}
+ <div
+ className="absolute inset-0 w-full h-full bg-gradient-to-br from-blue-500 to-purple-600 rounded-xl shadow-lg flex items-center justify-center p-8"
+ style={{
+ backfaceVisibility: 'hidden',
+ transform: 'rotateY(180deg)'
+ }}
+ >
+ <div className="text-center text-white">
+ <Brain className="w-8 h-8 mx-auto mb-4" />
+ <p className="text-lg font-medium">
+ {currentCard?.back}
+ </p>
+ <p className="text-sm text-blue-100 mt-4">
+ Click to return to question
+ </p>
+ </div>
+ </div>
+ </motion.div>
+ </motion.div>
+ </div>
+ </div>
+
+ {/* Controls */}
+ <div className="flex items-center justify-center gap-4">
+ <button
+ onClick={prevCard}
+ disabled={currentCardIndex === 0}
+ className="p-3 bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
+ >
+ <ChevronLeft className="w-6 h-6" />
+ </button>
+
+ <button
+ onClick={resetProgress}
+ className="p-3 bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"
+ >
+ <RotateCcw className="w-6 h-6" />
+ </button>
+
+ <button
+ onClick={nextCard}
+ disabled={!currentDeck || currentCardIndex === currentDeck.cards.length - 1}
+ className="p-3 bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
+ >
+ <ChevronRight className="w-6 h-6" />
+ </button>
+ </div>
+
+ {/* Study Tips */}
+ <div className="bg-gradient-to-r from-green-500 to-blue-500 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-2">Study Tips</h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div>
+ <h4 className="font-medium mb-1">Active Recall</h4>
+ <p className="text-sm text-green-100">Try to answer before flipping the card</p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Spaced Repetition</h4>
+ <p className="text-sm text-green-100">Review cards at increasing intervals</p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Mark Difficulty</h4>
+ <p className="text-sm text-green-100">Focus more time on challenging cards</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Flashcards; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Header.tsx.html b/coverage/StudyMaster/src/components/Header.tsx.html
new file mode 100644
index 0000000..b81016a
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Header.tsx.html
@@ -0,0 +1,340 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Header.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/86
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/86
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React from 'react';
+import { Search, Bell, Moon, Sun, MessageCircle, Menu } from 'lucide-react';
+import { useTheme } from '../contexts/ThemeContext';
+import { studyProgressData } from '../data/sampleData';
+
+interface HeaderProps {
+ showAIChat: boolean;
+ setShowAIChat: (show: boolean) => void;
+ onMenuClick?: () => void;
+}
+
+const Header: React.FC<HeaderProps> = ({ showAIChat, setShowAIChat, onMenuClick }) => {
+ const { isDark, toggleTheme } = useTheme();
+
+ return (
+ <header className="bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700 px-4 lg:px-6 py-4">
+ <div className="flex items-center justify-between">
+ {/* Mobile Menu Button */}
+ <button
+ onClick={onMenuClick}
+ className="lg:hidden p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg touch-manipulation"
+ >
+ <Menu className="w-5 h-5" />
+ </button>
+
+ {/* Search */}
+ <div className="flex-1 max-w-md mx-4 lg:mx-0">
+ <div className="relative">
+ <Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
+ <input
+ type="text"
+ placeholder="Search materials, notes, or ask AI..."
+ className="w-full pl-10 pr-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white placeholder-gray-500 focus:ring-2 focus:ring-blue-500 focus:border-transparent text-sm lg:text-base"
+ />
+ </div>
+ </div>
+
+ {/* Right side */}
+ <div className="flex items-center gap-2 lg:gap-4">
+ {/* AI Chat Toggle */}
+ <button
+ onClick={() => setShowAIChat(!showAIChat)}
+ className={`p-2 rounded-lg transition-colors touch-manipulation ${
+ showAIChat
+ ? 'bg-blue-100 dark:bg-blue-900 text-blue-600 dark:text-blue-400'
+ : 'text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800'
+ }`}
+ >
+ <MessageCircle className="w-5 h-5" />
+ </button>
+
+ {/* Notifications */}
+ <button className="relative p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg touch-manipulation">
+ <Bell className="w-5 h-5" />
+ <div className="absolute top-1 right-1 w-2 h-2 bg-red-500 rounded-full"></div>
+ </button>
+
+ {/* Theme Toggle */}
+ <button
+ onClick={toggleTheme}
+ className="p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg touch-manipulation"
+ >
+ {isDark ? <Sun className="w-5 h-5" /> : <Moon className="w-5 h-5" />}
+ </button>
+
+ {/* User Profile */}
+ <div className="flex items-center gap-2 lg:gap-3">
+ <div className="text-right hidden sm:block">
+ <div className="text-sm font-medium text-gray-900 dark:text-white">
+ {studyProgressData.user.name}
+ </div>
+ <div className="text-xs text-gray-500 dark:text-gray-400">
+ Level {studyProgressData.user.level} • {studyProgressData.user.xpPoints} XP
+ </div>
+ </div>
+ <div className="w-8 h-8 lg:w-10 lg:h-10 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center text-white font-medium text-sm lg:text-base">
+ {studyProgressData.user.name.split(' ').map(n => n[0]).join('')}
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ );
+};
+
+export default Header; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Materials.tsx.html b/coverage/StudyMaster/src/components/Materials.tsx.html
new file mode 100644
index 0000000..2ca0284
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Materials.tsx.html
@@ -0,0 +1,1570 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Materials.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/496
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/496
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState } from 'react';
+import { motion, AnimatePresence } from 'framer-motion';
+import {
+ FileText,
+ Image,
+ Film,
+ Music,
+ Download,
+ Eye,
+ Edit3,
+ Trash2,
+ Plus,
+ Search,
+ Filter,
+ Grid3X3,
+ List,
+ Calendar,
+ Tag,
+ Star,
+ MoreVertical,
+ Folder,
+ Upload
+} from 'lucide-react';
+
+interface Material {
+ id: string;
+ name: string;
+ type: 'pdf' | 'doc' | 'image' | 'video' | 'audio' | 'text';
+ size: number;
+ uploadDate: string;
+ lastAccessed: string;
+ tags: string[];
+ favorite: boolean;
+ progress?: number;
+ thumbnail?: string;
+ description?: string;
+ folder?: string;
+}
+
+const Materials: React.FC = () => {
+ const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid');
+ const [sortBy, setSortBy] = useState<'name' | 'date' | 'size' | 'type'>('date');
+ const [filterType, setFilterType] = useState<'all' | 'pdf' | 'doc' | 'image' | 'video' | 'audio'>('all');
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedFolder, setSelectedFolder] = useState<string>('all');
+
+ const materials: Material[] = [
+ {
+ id: '1',
+ name: 'Psychology Study Guide',
+ type: 'pdf',
+ size: 2457600, // 2.4 MB
+ uploadDate: '2025-06-20',
+ lastAccessed: '2025-06-28',
+ tags: ['psychology', 'study-guide', 'cognitive'],
+ favorite: true,
+ progress: 75,
+ description: 'Comprehensive guide covering cognitive psychology fundamentals',
+ folder: 'Psychology'
+ },
+ {
+ id: '2',
+ name: 'Biology Lecture Notes',
+ type: 'doc',
+ size: 1234567,
+ uploadDate: '2025-06-15',
+ lastAccessed: '2025-06-27',
+ tags: ['biology', 'notes', 'cellular'],
+ favorite: false,
+ progress: 60,
+ description: 'Detailed notes from cellular biology lectures',
+ folder: 'Biology'
+ },
+ {
+ id: '3',
+ name: 'History Timeline Infographic',
+ type: 'image',
+ size: 987654,
+ uploadDate: '2025-06-18',
+ lastAccessed: '2025-06-26',
+ tags: ['history', 'timeline', 'visual'],
+ favorite: true,
+ description: 'Visual timeline of major historical events',
+ folder: 'History'
+ },
+ {
+ id: '4',
+ name: 'Chemistry Lab Video',
+ type: 'video',
+ size: 15728640, // 15 MB
+ uploadDate: '2025-06-22',
+ lastAccessed: '2025-06-28',
+ tags: ['chemistry', 'lab', 'experiment'],
+ favorite: false,
+ progress: 30,
+ description: 'Laboratory demonstration of chemical reactions',
+ folder: 'Chemistry'
+ },
+ {
+ id: '5',
+ name: 'Math Formula Sheet',
+ type: 'pdf',
+ size: 654321,
+ uploadDate: '2025-06-25',
+ lastAccessed: '2025-06-28',
+ tags: ['mathematics', 'formulas', 'reference'],
+ favorite: true,
+ description: 'Quick reference for important mathematical formulas',
+ folder: 'Mathematics'
+ },
+ {
+ id: '6',
+ name: 'Physics Audio Lecture',
+ type: 'audio',
+ size: 8765432,
+ uploadDate: '2025-06-19',
+ lastAccessed: '2025-06-25',
+ tags: ['physics', 'lecture', 'quantum'],
+ favorite: false,
+ progress: 45,
+ description: 'Audio recording of quantum physics lecture',
+ folder: 'Physics'
+ }
+ ];
+
+ const folders = ['all', ...Array.from(new Set(materials.map(m => m.folder).filter(Boolean)))];
+
+ const getFileIcon = (type: string) => {
+ switch (type) {
+ case 'image': return <Image className="w-6 h-6" />;
+ case 'video': return <Film className="w-6 h-6" />;
+ case 'audio': return <Music className="w-6 h-6" />;
+ default: return <FileText className="w-6 h-6" />;
+ }
+ };
+
+ const getFileColor = (type: string) => {
+ switch (type) {
+ case 'pdf': return 'text-red-600 bg-red-100 dark:bg-red-900 dark:text-red-400';
+ case 'doc': return 'text-blue-600 bg-blue-100 dark:bg-blue-900 dark:text-blue-400';
+ case 'image': return 'text-green-600 bg-green-100 dark:bg-green-900 dark:text-green-400';
+ case 'video': return 'text-purple-600 bg-purple-100 dark:bg-purple-900 dark:text-purple-400';
+ case 'audio': return 'text-orange-600 bg-orange-100 dark:bg-orange-900 dark:text-orange-400';
+ default: return 'text-gray-600 bg-gray-100 dark:bg-gray-700 dark:text-gray-400';
+ }
+ };
+
+ const formatFileSize = (bytes: number) => {
+ if (bytes === 0) return '0 Bytes';
+ const k = 1024;
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
+ };
+
+ const formatDate = (dateString: string) => {
+ return new Date(dateString).toLocaleDateString();
+ };
+
+ const filteredMaterials = materials
+ .filter(material => {
+ if (filterType !== 'all' && material.type !== filterType) return false;
+ if (selectedFolder !== 'all' && material.folder !== selectedFolder) return false;
+ if (searchQuery && !material.name.toLowerCase().includes(searchQuery.toLowerCase()) &&
+ !material.tags.some(tag => tag.toLowerCase().includes(searchQuery.toLowerCase()))) return false;
+ return true;
+ })
+ .sort((a, b) => {
+ switch (sortBy) {
+ case 'name': return a.name.localeCompare(b.name);
+ case 'date': return new Date(b.uploadDate).getTime() - new Date(a.uploadDate).getTime();
+ case 'size': return b.size - a.size;
+ case 'type': return a.type.localeCompare(b.type);
+ default: return 0;
+ }
+ });
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Study Materials</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Organize and access all your learning resources
+ </p>
+ </div>
+ <button className="bg-gradient-to-r from-blue-500 to-purple-600 text-white px-4 py-2 rounded-lg hover:from-blue-600 hover:to-purple-700 transition-all duration-200 flex items-center gap-2">
+ <Upload className="w-4 h-4" />
+ Upload Files
+ </button>
+ </div>
+
+ {/* Search and Filters */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex flex-col lg:flex-row gap-4">
+ {/* Search */}
+ <div className="flex-1">
+ <div className="relative">
+ <Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
+ <input
+ type="text"
+ placeholder="Search materials, tags, or descriptions..."
+ value={searchQuery}
+ onChange={(e) => setSearchQuery(e.target.value)}
+ className="w-full pl-10 pr-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-500 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
+ />
+ </div>
+ </div>
+
+ {/* Filters */}
+ <div className="flex gap-4">
+ <select
+ value={selectedFolder}
+ onChange={(e) => setSelectedFolder(e.target.value)}
+ className="px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ {folders.map(folder => (
+ <option key={folder} value={folder}>
+ {folder === 'all' ? 'All Folders' : folder}
+ </option>
+ ))}
+ </select>
+
+ <select
+ value={filterType}
+ onChange={(e) => setFilterType(e.target.value as any)}
+ className="px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="all">All Types</option>
+ <option value="pdf">PDF</option>
+ <option value="doc">Documents</option>
+ <option value="image">Images</option>
+ <option value="video">Videos</option>
+ <option value="audio">Audio</option>
+ </select>
+
+ <select
+ value={sortBy}
+ onChange={(e) => setSortBy(e.target.value as any)}
+ className="px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="date">Sort by Date</option>
+ <option value="name">Sort by Name</option>
+ <option value="size">Sort by Size</option>
+ <option value="type">Sort by Type</option>
+ </select>
+
+ <div className="flex border border-gray-300 dark:border-gray-600 rounded-lg">
+ <button
+ onClick={() => setViewMode('grid')}
+ className={`p-2 ${viewMode === 'grid' ? 'bg-blue-500 text-white' : 'text-gray-600 dark:text-gray-400'}`}
+ >
+ <Grid3X3 className="w-4 h-4" />
+ </button>
+ <button
+ onClick={() => setViewMode('list')}
+ className={`p-2 ${viewMode === 'list' ? 'bg-blue-500 text-white' : 'text-gray-600 dark:text-gray-400'}`}
+ >
+ <List className="w-4 h-4" />
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ {/* Stats */}
+ <div className="grid grid-cols-1 md:grid-cols-4 gap-4">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 border border-gray-200 dark:border-gray-700">
+ <div className="text-2xl font-bold text-blue-600 dark:text-blue-400">{materials.length}</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Total Files</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 border border-gray-200 dark:border-gray-700">
+ <div className="text-2xl font-bold text-green-600 dark:text-green-400">
+ {formatFileSize(materials.reduce((sum, m) => sum + m.size, 0))}
+ </div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Total Size</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 border border-gray-200 dark:border-gray-700">
+ <div className="text-2xl font-bold text-purple-600 dark:text-purple-400">
+ {materials.filter(m => m.favorite).length}
+ </div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Favorites</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-4 border border-gray-200 dark:border-gray-700">
+ <div className="text-2xl font-bold text-orange-600 dark:text-orange-400">
+ {folders.length - 1}
+ </div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Folders</div>
+ </div>
+ </div>
+
+ {/* Materials Grid/List */}
+ <AnimatePresence mode="wait">
+ {viewMode === 'grid' ? (
+ <motion.div
+ key="grid"
+ initial={{ opacity: 0 }}
+ animate={{ opacity: 1 }}
+ exit={{ opacity: 0 }}
+ className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"
+ >
+ {filteredMaterials.map((material, index) => (
+ <motion.div
+ key={material.id}
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ transition={{ delay: index * 0.1 }}
+ className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 hover:shadow-lg transition-all duration-200"
+ >
+ <div className="flex items-start justify-between mb-4">
+ <div className={`w-12 h-12 rounded-lg flex items-center justify-center ${getFileColor(material.type)}`}>
+ {getFileIcon(material.type)}
+ </div>
+ <div className="flex items-center gap-2">
+ {material.favorite && (
+ <Star className="w-4 h-4 text-yellow-500 fill-current" />
+ )}
+ <button className="text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
+ <MoreVertical className="w-4 h-4" />
+ </button>
+ </div>
+ </div>
+
+ <h4 className="font-semibold text-gray-900 dark:text-white mb-2 truncate">
+ {material.name}
+ </h4>
+
+ {material.description && (
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3 line-clamp-2">
+ {material.description}
+ </p>
+ )}
+
+ {material.progress !== undefined && (
+ <div className="mb-3">
+ <div className="flex justify-between items-center mb-1">
+ <span className="text-xs text-gray-600 dark:text-gray-400">Progress</span>
+ <span className="text-xs text-gray-600 dark:text-gray-400">{material.progress}%</span>
+ </div>
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-1">
+ <div
+ className="bg-blue-500 h-1 rounded-full transition-all duration-300"
+ style={{ width: `${material.progress}%` }}
+ />
+ </div>
+ </div>
+ )}
+
+ <div className="flex flex-wrap gap-1 mb-3">
+ {material.tags.slice(0, 2).map((tag, tagIndex) => (
+ <span
+ key={tagIndex}
+ className="px-2 py-1 bg-blue-100 dark:bg-blue-900 text-blue-600 dark:text-blue-400 text-xs rounded-full"
+ >
+ {tag}
+ </span>
+ ))}
+ {material.tags.length > 2 && (
+ <span className="px-2 py-1 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 text-xs rounded-full">
+ +{material.tags.length - 2}
+ </span>
+ )}
+ </div>
+
+ <div className="flex items-center justify-between text-xs text-gray-500 dark:text-gray-400 mb-4">
+ <span>{formatFileSize(material.size)}</span>
+ <span>{formatDate(material.uploadDate)}</span>
+ </div>
+
+ <div className="flex gap-2">
+ <button className="flex-1 bg-blue-500 text-white text-sm py-2 px-3 rounded-lg hover:bg-blue-600 transition-colors flex items-center justify-center gap-1">
+ <Eye className="w-3 h-3" />
+ View
+ </button>
+ <button className="bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 text-sm py-2 px-3 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors">
+ <Download className="w-3 h-3" />
+ </button>
+ </div>
+ </motion.div>
+ ))}
+ </motion.div>
+ ) : (
+ <motion.div
+ key="list"
+ initial={{ opacity: 0 }}
+ animate={{ opacity: 1 }}
+ exit={{ opacity: 0 }}
+ className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 overflow-hidden"
+ >
+ <div className="grid grid-cols-12 gap-4 p-4 bg-gray-50 dark:bg-gray-700 text-sm font-medium text-gray-700 dark:text-gray-300 border-b border-gray-200 dark:border-gray-600">
+ <div className="col-span-5">Name</div>
+ <div className="col-span-2">Type</div>
+ <div className="col-span-1">Size</div>
+ <div className="col-span-2">Modified</div>
+ <div className="col-span-1">Progress</div>
+ <div className="col-span-1">Actions</div>
+ </div>
+
+ {filteredMaterials.map((material, index) => (
+ <motion.div
+ key={material.id}
+ initial={{ opacity: 0, x: -20 }}
+ animate={{ opacity: 1, x: 0 }}
+ transition={{ delay: index * 0.05 }}
+ className="grid grid-cols-12 gap-4 p-4 border-b border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"
+ >
+ <div className="col-span-5 flex items-center gap-3">
+ <div className={`w-8 h-8 rounded-lg flex items-center justify-center ${getFileColor(material.type)}`}>
+ {getFileIcon(material.type)}
+ </div>
+ <div>
+ <div className="font-medium text-gray-900 dark:text-white flex items-center gap-2">
+ {material.name}
+ {material.favorite && (
+ <Star className="w-3 h-3 text-yellow-500 fill-current" />
+ )}
+ </div>
+ {material.folder && (
+ <div className="text-xs text-gray-500 dark:text-gray-400 flex items-center gap-1">
+ <Folder className="w-3 h-3" />
+ {material.folder}
+ </div>
+ )}
+ </div>
+ </div>
+
+ <div className="col-span-2 flex items-center">
+ <span className={`px-2 py-1 rounded-full text-xs font-medium ${getFileColor(material.type)}`}>
+ {material.type.toUpperCase()}
+ </span>
+ </div>
+
+ <div className="col-span-1 flex items-center text-sm text-gray-600 dark:text-gray-400">
+ {formatFileSize(material.size)}
+ </div>
+
+ <div className="col-span-2 flex items-center text-sm text-gray-600 dark:text-gray-400">
+ {formatDate(material.lastAccessed)}
+ </div>
+
+ <div className="col-span-1 flex items-center">
+ {material.progress !== undefined ? (
+ <div className="w-full">
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-1">
+ <div
+ className="bg-blue-500 h-1 rounded-full"
+ style={{ width: `${material.progress}%` }}
+ />
+ </div>
+ <div className="text-xs text-gray-500 dark:text-gray-400 mt-1">
+ {material.progress}%
+ </div>
+ </div>
+ ) : (
+ <span className="text-xs text-gray-400">-</span>
+ )}
+ </div>
+
+ <div className="col-span-1 flex items-center gap-2">
+ <button className="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300">
+ <Eye className="w-4 h-4" />
+ </button>
+ <button className="text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300">
+ <Download className="w-4 h-4" />
+ </button>
+ <button className="text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300">
+ <MoreVertical className="w-4 h-4" />
+ </button>
+ </div>
+ </motion.div>
+ ))}
+ </motion.div>
+ )}
+ </AnimatePresence>
+
+ {/* Empty State */}
+ {filteredMaterials.length === 0 && (
+ <div className="text-center py-12">
+ <FileText className="w-16 h-16 text-gray-400 mx-auto mb-4" />
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-2">No materials found</h3>
+ <p className="text-gray-600 dark:text-gray-400 mb-4">
+ {searchQuery || filterType !== 'all' || selectedFolder !== 'all'
+ ? 'Try adjusting your search or filters'
+ : 'Upload your first study material to get started'}
+ </p>
+ <button className="bg-blue-500 text-white px-4 py-2 rounded-lg hover:bg-blue-600 transition-colors">
+ Upload Files
+ </button>
+ </div>
+ )}
+ </div>
+ );
+};
+
+export default Materials; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Quiz.tsx.html b/coverage/StudyMaster/src/components/Quiz.tsx.html
new file mode 100644
index 0000000..8d74e25
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Quiz.tsx.html
@@ -0,0 +1,1750 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Quiz.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/556
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/556
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState, useEffect } from 'react';
+import { motion, AnimatePresence } from 'framer-motion';
+import {
+ Play,
+ Pause,
+ RotateCcw,
+ Check,
+ X,
+ Clock,
+ Trophy,
+ Target,
+ ChevronRight,
+ Brain,
+ Zap,
+ Award
+} from 'lucide-react';
+
+interface Question {
+ id: string;
+ question: string;
+ options: string[];
+ correctAnswer: number;
+ explanation: string;
+ difficulty: 'easy' | 'medium' | 'hard';
+ subject: string;
+}
+
+interface QuizResult {
+ questionId: string;
+ selectedAnswer: number | null;
+ isCorrect: boolean;
+ timeSpent: number;
+}
+
+const Quiz: React.FC = () => {
+ const [selectedSubject, setSelectedSubject] = useState('Psychology');
+ const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);
+ const [selectedAnswer, setSelectedAnswer] = useState<number | null>(null);
+ const [showResult, setShowResult] = useState(false);
+ const [quizStarted, setQuizStarted] = useState(false);
+ const [quizCompleted, setQuizCompleted] = useState(false);
+ const [results, setResults] = useState<QuizResult[]>([]);
+ const [timeElapsed, setTimeElapsed] = useState(0);
+ const [questionStartTime, setQuestionStartTime] = useState(Date.now());
+
+ const subjects = ['Psychology', 'Biology', 'History', 'Mathematics', 'Physics'];
+
+ const questions: Question[] = [
+ {
+ id: '1',
+ question: 'What is cognitive dissonance?',
+ options: [
+ 'Mental discomfort from conflicting beliefs',
+ 'A type of memory disorder',
+ 'Enhanced cognitive ability',
+ 'Rapid information processing'
+ ],
+ correctAnswer: 0,
+ explanation: 'Cognitive dissonance occurs when a person holds contradictory beliefs, ideas, or values simultaneously, causing psychological discomfort.',
+ difficulty: 'medium',
+ subject: 'Psychology'
+ },
+ {
+ id: '2',
+ question: 'Which part of the brain processes emotions and fear?',
+ options: [
+ 'Cerebellum',
+ 'Amygdala',
+ 'Hippocampus',
+ 'Frontal cortex'
+ ],
+ correctAnswer: 1,
+ explanation: 'The amygdala is an almond-shaped structure in the limbic system that plays a key role in processing emotions, particularly fear and threat detection.',
+ difficulty: 'easy',
+ subject: 'Psychology'
+ },
+ {
+ id: '3',
+ question: 'What is the process by which plants convert light energy into chemical energy?',
+ options: [
+ 'Cellular respiration',
+ 'Photosynthesis',
+ 'Fermentation',
+ 'Osmosis'
+ ],
+ correctAnswer: 1,
+ explanation: 'Photosynthesis is the process by which plants use sunlight, water, and carbon dioxide to produce glucose and oxygen.',
+ difficulty: 'easy',
+ subject: 'Biology'
+ },
+ {
+ id: '4',
+ question: 'Which event triggered World War I?',
+ options: [
+ 'Invasion of Poland',
+ 'Assassination of Archduke Franz Ferdinand',
+ 'Attack on Pearl Harbor',
+ 'Sinking of the Lusitania'
+ ],
+ correctAnswer: 1,
+ explanation: 'The assassination of Archduke Franz Ferdinand of Austria-Hungary on June 28, 1914, was the immediate trigger that led to the outbreak of World War I.',
+ difficulty: 'medium',
+ subject: 'History'
+ },
+ {
+ id: '5',
+ question: 'What is the function of mitochondria in cells?',
+ options: [
+ 'Protein synthesis',
+ 'DNA storage',
+ 'Energy production',
+ 'Waste removal'
+ ],
+ correctAnswer: 2,
+ explanation: 'Mitochondria are known as the powerhouses of the cell because they produce ATP (adenosine triphosphate), which provides energy for cellular processes.',
+ difficulty: 'medium',
+ subject: 'Biology'
+ }
+ ];
+
+ const currentQuestions = questions.filter(q => q.subject === selectedSubject);
+ const currentQuestion = currentQuestions[currentQuestionIndex];
+
+ useEffect(() => {
+ let interval: NodeJS.Timeout;
+ if (quizStarted && !quizCompleted) {
+ interval = setInterval(() => {
+ setTimeElapsed(prev => prev + 1);
+ }, 1000);
+ }
+ return () => clearInterval(interval);
+ }, [quizStarted, quizCompleted]);
+
+ const startQuiz = () => {
+ setQuizStarted(true);
+ setCurrentQuestionIndex(0);
+ setSelectedAnswer(null);
+ setShowResult(false);
+ setQuizCompleted(false);
+ setResults([]);
+ setTimeElapsed(0);
+ setQuestionStartTime(Date.now());
+ };
+
+ const handleAnswerSelect = (answerIndex: number) => {
+ if (showResult) return;
+ setSelectedAnswer(answerIndex);
+ };
+
+ const handleSubmitAnswer = () => {
+ if (selectedAnswer === null) return;
+
+ const isCorrect = selectedAnswer === currentQuestion.correctAnswer;
+ const timeSpent = Math.floor((Date.now() - questionStartTime) / 1000);
+
+ const result: QuizResult = {
+ questionId: currentQuestion.id,
+ selectedAnswer,
+ isCorrect,
+ timeSpent
+ };
+
+ setResults(prev => [...prev, result]);
+ setShowResult(true);
+ };
+
+ const handleNextQuestion = () => {
+ if (currentQuestionIndex < currentQuestions.length - 1) {
+ setCurrentQuestionIndex(prev => prev + 1);
+ setSelectedAnswer(null);
+ setShowResult(false);
+ setQuestionStartTime(Date.now());
+ } else {
+ setQuizCompleted(true);
+ }
+ };
+
+ const resetQuiz = () => {
+ setQuizStarted(false);
+ setCurrentQuestionIndex(0);
+ setSelectedAnswer(null);
+ setShowResult(false);
+ setQuizCompleted(false);
+ setResults([]);
+ setTimeElapsed(0);
+ };
+
+ const formatTime = (seconds: number) => {
+ const mins = Math.floor(seconds / 60);
+ const secs = seconds % 60;
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
+ };
+
+ const calculateScore = () => {
+ const correct = results.filter(r => r.isCorrect).length;
+ return Math.round((correct / results.length) * 100);
+ };
+
+ const getDifficultyColor = (difficulty: string) => {
+ switch (difficulty) {
+ case 'easy': return 'text-green-600 bg-green-100 dark:bg-green-900 dark:text-green-400';
+ case 'medium': return 'text-yellow-600 bg-yellow-100 dark:bg-yellow-900 dark:text-yellow-400';
+ case 'hard': return 'text-red-600 bg-red-100 dark:bg-red-900 dark:text-red-400';
+ default: return 'text-gray-600 bg-gray-100';
+ }
+ };
+
+ if (!quizStarted) {
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Interactive Quizzes</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Test your knowledge with AI-generated questions
+ </p>
+ </div>
+ <div className="flex items-center gap-2 text-sm text-purple-600 dark:text-purple-400">
+ <Zap className="w-4 h-4" />
+ <span>AI-Powered</span>
+ </div>
+ </div>
+
+ {/* Subject Selection */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Choose Subject</h3>
+ <div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-3">
+ {subjects.map((subject) => (
+ <button
+ key={subject}
+ onClick={() => setSelectedSubject(subject)}
+ className={`p-4 rounded-lg border-2 transition-all duration-200 ${
+ selectedSubject === subject
+ ? 'border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400'
+ : 'border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 text-gray-700 dark:text-gray-300'
+ }`}
+ >
+ <div className="font-medium">{subject}</div>
+ <div className="text-sm opacity-75">
+ {currentQuestions.filter(q => q.subject === subject).length} questions
+ </div>
+ </button>
+ ))}
+ </div>
+ </div>
+
+ {/* Quiz Preview */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">
+ {selectedSubject} Quiz Preview
+ </h3>
+
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
+ <div className="text-center p-4 bg-blue-50 dark:bg-blue-900/30 rounded-lg">
+ <Brain className="w-8 h-8 text-blue-600 dark:text-blue-400 mx-auto mb-2" />
+ <div className="font-semibold text-gray-900 dark:text-white">{currentQuestions.length}</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Questions</div>
+ </div>
+ <div className="text-center p-4 bg-green-50 dark:bg-green-900/30 rounded-lg">
+ <Clock className="w-8 h-8 text-green-600 dark:text-green-400 mx-auto mb-2" />
+ <div className="font-semibold text-gray-900 dark:text-white">~{currentQuestions.length * 2} min</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Estimated Time</div>
+ </div>
+ <div className="text-center p-4 bg-purple-50 dark:bg-purple-900/30 rounded-lg">
+ <Target className="w-8 h-8 text-purple-600 dark:text-purple-400 mx-auto mb-2" />
+ <div className="font-semibold text-gray-900 dark:text-white">Mixed</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Difficulty</div>
+ </div>
+ </div>
+
+ <button
+ onClick={startQuiz}
+ className="w-full bg-gradient-to-r from-blue-500 to-purple-600 text-white py-3 px-6 rounded-lg hover:from-blue-600 hover:to-purple-700 transition-all duration-200 flex items-center justify-center gap-2 font-medium"
+ >
+ <Play className="w-5 h-5" />
+ Start Quiz
+ </button>
+ </div>
+
+ {/* Study Tips */}
+ <div className="bg-gradient-to-r from-green-500 to-blue-500 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-2">Quiz Tips</h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div>
+ <h4 className="font-medium mb-1">Read Carefully</h4>
+ <p className="text-sm text-green-100">Take time to understand each question fully</p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Eliminate Options</h4>
+ <p className="text-sm text-green-100">Rule out obviously wrong answers first</p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Learn from Mistakes</h4>
+ <p className="text-sm text-green-100">Review explanations to improve understanding</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+ }
+
+ if (quizCompleted) {
+ const score = calculateScore();
+ const averageTime = Math.round(results.reduce((sum, r) => sum + r.timeSpent, 0) / results.length);
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Results Header */}
+ <div className="text-center">
+ <motion.div
+ initial={{ scale: 0 }}
+ animate={{ scale: 1 }}
+ className="w-20 h-20 bg-gradient-to-r from-green-500 to-blue-500 rounded-full flex items-center justify-center mx-auto mb-4"
+ >
+ <Trophy className="w-10 h-10 text-white" />
+ </motion.div>
+ <h1 className="text-3xl font-bold text-gray-900 dark:text-white mb-2">Quiz Complete!</h1>
+ <p className="text-gray-600 dark:text-gray-400">Great job on completing the {selectedSubject} quiz</p>
+ </div>
+
+ {/* Score Summary */}
+ <div className="grid grid-cols-1 md:grid-cols-4 gap-4">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 text-center">
+ <div className="text-3xl font-bold text-blue-600 dark:text-blue-400 mb-2">{score}%</div>
+ <div className="text-gray-600 dark:text-gray-400">Final Score</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 text-center">
+ <div className="text-3xl font-bold text-green-600 dark:text-green-400 mb-2">
+ {results.filter(r => r.isCorrect).length}
+ </div>
+ <div className="text-gray-600 dark:text-gray-400">Correct Answers</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 text-center">
+ <div className="text-3xl font-bold text-purple-600 dark:text-purple-400 mb-2">
+ {formatTime(timeElapsed)}
+ </div>
+ <div className="text-gray-600 dark:text-gray-400">Total Time</div>
+ </div>
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 text-center">
+ <div className="text-3xl font-bold text-orange-600 dark:text-orange-400 mb-2">
+ {averageTime}s
+ </div>
+ <div className="text-gray-600 dark:text-gray-400">Avg per Question</div>
+ </div>
+ </div>
+
+ {/* Performance Badge */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-center">
+ <div className={`px-6 py-3 rounded-full flex items-center gap-2 ${
+ score >= 90 ? 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-600 dark:text-yellow-400' :
+ score >= 80 ? 'bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400' :
+ score >= 70 ? 'bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400' :
+ 'bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400'
+ }`}>
+ <Award className="w-5 h-5" />
+ <span className="font-medium">
+ {score >= 90 ? 'Excellent!' : score >= 80 ? 'Great Job!' : score >= 70 ? 'Good Work!' : 'Keep Practicing!'}
+ </span>
+ </div>
+ </div>
+ </div>
+
+ {/* Question Review */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Question Review</h3>
+ <div className="space-y-4">
+ {currentQuestions.map((question, index) => {
+ const result = results[index];
+ return (
+ <div key={question.id} className="p-4 bg-gray-50 dark:bg-gray-700 rounded-lg">
+ <div className="flex items-start justify-between mb-2">
+ <h4 className="font-medium text-gray-900 dark:text-white">{question.question}</h4>
+ <div className={`flex items-center gap-1 ${result.isCorrect ? 'text-green-600' : 'text-red-600'}`}>
+ {result.isCorrect ? <Check className="w-4 h-4" /> : <X className="w-4 h-4" />}
+ </div>
+ </div>
+ <div className="text-sm text-gray-600 dark:text-gray-400 mb-2">
+ <strong>Correct Answer:</strong> {question.options[question.correctAnswer]}
+ </div>
+ {result.selectedAnswer !== null && result.selectedAnswer !== question.correctAnswer && (
+ <div className="text-sm text-red-600 dark:text-red-400 mb-2">
+ <strong>Your Answer:</strong> {question.options[result.selectedAnswer]}
+ </div>
+ )}
+ <div className="text-sm text-gray-700 dark:text-gray-300">
+ {question.explanation}
+ </div>
+ </div>
+ );
+ })}
+ </div>
+ </div>
+
+ {/* Actions */}
+ <div className="flex gap-4">
+ <button
+ onClick={resetQuiz}
+ className="flex-1 bg-gradient-to-r from-blue-500 to-purple-600 text-white py-3 px-6 rounded-lg hover:from-blue-600 hover:to-purple-700 transition-all duration-200 flex items-center justify-center gap-2 font-medium"
+ >
+ <RotateCcw className="w-5 h-5" />
+ Take Another Quiz
+ </button>
+ </div>
+ </div>
+ );
+ }
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Quiz Header */}
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-4">
+ <button
+ onClick={resetQuiz}
+ className="p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors"
+ >
+ <X className="w-5 h-5" />
+ </button>
+ <div>
+ <h1 className="text-xl font-bold text-gray-900 dark:text-white">{selectedSubject} Quiz</h1>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Question {currentQuestionIndex + 1} of {currentQuestions.length}
+ </p>
+ </div>
+ </div>
+ <div className="flex items-center gap-4">
+ <div className="flex items-center gap-2 text-gray-600 dark:text-gray-400">
+ <Clock className="w-4 h-4" />
+ <span className="font-mono">{formatTime(timeElapsed)}</span>
+ </div>
+ </div>
+ </div>
+
+ {/* Progress Bar */}
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2">
+ <div
+ className="bg-gradient-to-r from-blue-500 to-purple-600 h-2 rounded-full transition-all duration-300"
+ style={{ width: `${((currentQuestionIndex + 1) / currentQuestions.length) * 100}%` }}
+ />
+ </div>
+
+ {/* Question Card */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-8 border border-gray-200 dark:border-gray-700">
+ <div className="flex items-center justify-between mb-6">
+ <span className={`px-3 py-1 rounded-full text-xs font-medium ${getDifficultyColor(currentQuestion.difficulty)}`}>
+ {currentQuestion.difficulty.charAt(0).toUpperCase() + currentQuestion.difficulty.slice(1)}
+ </span>
+ <span className="text-sm text-gray-500 dark:text-gray-400">
+ ID: {currentQuestion.id}
+ </span>
+ </div>
+
+ <h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-8">
+ {currentQuestion.question}
+ </h2>
+
+ <div className="space-y-3 mb-8">
+ {currentQuestion.options.map((option, index) => (
+ <motion.button
+ key={index}
+ onClick={() => handleAnswerSelect(index)}
+ className={`w-full p-4 text-left rounded-lg border-2 transition-all duration-200 ${
+ selectedAnswer === index
+ ? showResult
+ ? index === currentQuestion.correctAnswer
+ ? 'border-green-500 bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-300'
+ : 'border-red-500 bg-red-50 dark:bg-red-900/30 text-red-700 dark:text-red-300'
+ : 'border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300'
+ : showResult && index === currentQuestion.correctAnswer
+ ? 'border-green-500 bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-300'
+ : 'border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 text-gray-900 dark:text-white'
+ }`}
+ whileHover={{ scale: 1.02 }}
+ whileTap={{ scale: 0.98 }}
+ >
+ <div className="flex items-center gap-3">
+ <div className={`w-6 h-6 rounded-full border-2 flex items-center justify-center text-sm font-medium ${
+ selectedAnswer === index
+ ? showResult
+ ? index === currentQuestion.correctAnswer
+ ? 'border-green-500 bg-green-500 text-white'
+ : 'border-red-500 bg-red-500 text-white'
+ : 'border-blue-500 bg-blue-500 text-white'
+ : showResult && index === currentQuestion.correctAnswer
+ ? 'border-green-500 bg-green-500 text-white'
+ : 'border-gray-300 dark:border-gray-600'
+ }`}>
+ {showResult && (selectedAnswer === index || index === currentQuestion.correctAnswer) ? (
+ index === currentQuestion.correctAnswer ? (
+ <Check className="w-3 h-3" />
+ ) : (
+ <X className="w-3 h-3" />
+ )
+ ) : (
+ String.fromCharCode(65 + index)
+ )}
+ </div>
+ <span>{option}</span>
+ </div>
+ </motion.button>
+ ))}
+ </div>
+
+ {/* Explanation */}
+ <AnimatePresence>
+ {showResult && (
+ <motion.div
+ initial={{ opacity: 0, height: 0 }}
+ animate={{ opacity: 1, height: 'auto' }}
+ exit={{ opacity: 0, height: 0 }}
+ className="p-4 bg-blue-50 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-700 rounded-lg mb-6"
+ >
+ <h4 className="font-medium text-blue-900 dark:text-blue-100 mb-2">Explanation:</h4>
+ <p className="text-blue-800 dark:text-blue-200">{currentQuestion.explanation}</p>
+ </motion.div>
+ )}
+ </AnimatePresence>
+
+ {/* Action Buttons */}
+ <div className="flex gap-4">
+ {!showResult ? (
+ <button
+ onClick={handleSubmitAnswer}
+ disabled={selectedAnswer === null}
+ className="flex-1 bg-gradient-to-r from-blue-500 to-purple-600 text-white py-3 px-6 rounded-lg hover:from-blue-600 hover:to-purple-700 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 flex items-center justify-center gap-2 font-medium"
+ >
+ <Check className="w-5 h-5" />
+ Submit Answer
+ </button>
+ ) : (
+ <button
+ onClick={handleNextQuestion}
+ className="flex-1 bg-gradient-to-r from-green-500 to-blue-500 text-white py-3 px-6 rounded-lg hover:from-green-600 hover:to-blue-600 transition-all duration-200 flex items-center justify-center gap-2 font-medium"
+ >
+ {currentQuestionIndex < currentQuestions.length - 1 ? (
+ <>
+ Next Question
+ <ChevronRight className="w-5 h-5" />
+ </>
+ ) : (
+ <>
+ View Results
+ <Trophy className="w-5 h-5" />
+ </>
+ )}
+ </button>
+ )}
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Quiz; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/SearchResults.tsx.html b/coverage/StudyMaster/src/components/SearchResults.tsx.html
new file mode 100644
index 0000000..50af07d
--- /dev/null
+++ b/coverage/StudyMaster/src/components/SearchResults.tsx.html
@@ -0,0 +1,1237 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/SearchResults.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/385
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/385
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState } from 'react';
+import { motion } from 'framer-motion';
+import {
+ Search,
+ Filter,
+ Clock,
+ FileText,
+ Brain,
+ BookOpen,
+ Target,
+ Sparkles,
+ TrendingUp,
+ Calendar,
+ Tag,
+ Star
+} from 'lucide-react';
+
+interface SearchResult {
+ id: string;
+ title: string;
+ type: 'flashcard' | 'quiz' | 'material' | 'note' | 'concept';
+ content: string;
+ relevance: number;
+ lastAccessed: string;
+ tags: string[];
+ subject: string;
+ favorite?: boolean;
+}
+
+const SearchResults: React.FC = () => {
+ const [searchQuery, setSearchQuery] = useState('');
+ const [selectedFilter, setSelectedFilter] = useState<'all' | 'flashcard' | 'quiz' | 'material' | 'note' | 'concept'>('all');
+ const [sortBy, setSortBy] = useState<'relevance' | 'date' | 'alphabetical'>('relevance');
+
+ const searchResults: SearchResult[] = [
+ {
+ id: '1',
+ title: 'Cognitive Dissonance Definition',
+ type: 'flashcard',
+ content: 'Mental discomfort from conflicting beliefs, ideas, or values simultaneously held by an individual.',
+ relevance: 95,
+ lastAccessed: '2025-06-28',
+ tags: ['psychology', 'cognitive', 'theory'],
+ subject: 'Psychology',
+ favorite: true
+ },
+ {
+ id: '2',
+ title: 'Psychology Quiz - Cognitive Theories',
+ type: 'quiz',
+ content: 'Test your knowledge of cognitive psychology theories including dissonance, schemas, and processing models.',
+ relevance: 88,
+ lastAccessed: '2025-06-27',
+ tags: ['psychology', 'quiz', 'cognitive'],
+ subject: 'Psychology'
+ },
+ {
+ id: '3',
+ title: 'Mitochondria Function',
+ type: 'concept',
+ content: 'Powerhouse of the cell - produces ATP through cellular respiration, contains its own DNA.',
+ relevance: 82,
+ lastAccessed: '2025-06-26',
+ tags: ['biology', 'cellular', 'energy'],
+ subject: 'Biology'
+ },
+ {
+ id: '4',
+ title: 'World War I Causes Study Material',
+ type: 'material',
+ content: 'Comprehensive document covering the complex causes of WWI including nationalism, imperialism, and alliance systems.',
+ relevance: 76,
+ lastAccessed: '2025-06-25',
+ tags: ['history', 'war', 'causes'],
+ subject: 'History'
+ },
+ {
+ id: '5',
+ title: 'Photosynthesis Process Notes',
+ type: 'note',
+ content: 'Detailed notes on light-dependent and light-independent reactions in photosynthesis.',
+ relevance: 71,
+ lastAccessed: '2025-06-24',
+ tags: ['biology', 'plants', 'energy'],
+ subject: 'Biology',
+ favorite: true
+ },
+ {
+ id: '6',
+ title: 'Classical Conditioning Flashcard',
+ type: 'flashcard',
+ content: 'Learning process through association between stimuli - Pavlov\'s dogs experiment.',
+ relevance: 68,
+ lastAccessed: '2025-06-23',
+ tags: ['psychology', 'learning', 'behaviorism'],
+ subject: 'Psychology'
+ }
+ ];
+
+ const getTypeIcon = (type: string) => {
+ switch (type) {
+ case 'flashcard': return <Brain className="w-4 h-4" />;
+ case 'quiz': return <Target className="w-4 h-4" />;
+ case 'material': return <FileText className="w-4 h-4" />;
+ case 'note': return <BookOpen className="w-4 h-4" />;
+ case 'concept': return <Sparkles className="w-4 h-4" />;
+ default: return <Search className="w-4 h-4" />;
+ }
+ };
+
+ const getTypeColor = (type: string) => {
+ switch (type) {
+ case 'flashcard': return 'text-blue-600 bg-blue-100 dark:bg-blue-900 dark:text-blue-400';
+ case 'quiz': return 'text-green-600 bg-green-100 dark:bg-green-900 dark:text-green-400';
+ case 'material': return 'text-purple-600 bg-purple-100 dark:bg-purple-900 dark:text-purple-400';
+ case 'note': return 'text-orange-600 bg-orange-100 dark:bg-orange-900 dark:text-orange-400';
+ case 'concept': return 'text-pink-600 bg-pink-100 dark:bg-pink-900 dark:text-pink-400';
+ default: return 'text-gray-600 bg-gray-100 dark:bg-gray-700 dark:text-gray-400';
+ }
+ };
+
+ const filteredResults = searchResults
+ .filter(result => selectedFilter === 'all' || result.type === selectedFilter)
+ .filter(result =>
+ searchQuery === '' ||
+ result.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ result.content.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ result.tags.some(tag => tag.toLowerCase().includes(searchQuery.toLowerCase()))
+ )
+ .sort((a, b) => {
+ switch (sortBy) {
+ case 'relevance': return b.relevance - a.relevance;
+ case 'date': return new Date(b.lastAccessed).getTime() - new Date(a.lastAccessed).getTime();
+ case 'alphabetical': return a.title.localeCompare(b.title);
+ default: return 0;
+ }
+ });
+
+ const recentSearches = [
+ 'cognitive dissonance',
+ 'mitochondria function',
+ 'world war 1 causes',
+ 'photosynthesis',
+ 'classical conditioning'
+ ];
+
+ const suggestedTopics = [
+ { name: 'Psychology Theories', count: 24 },
+ { name: 'Cell Biology', count: 18 },
+ { name: 'Historical Events', count: 15 },
+ { name: 'Chemical Reactions', count: 12 },
+ { name: 'Mathematical Formulas', count: 9 }
+ ];
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Search & Discovery</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Find anything across your study materials and notes
+ </p>
+ </div>
+ <div className="flex items-center gap-2 text-sm text-blue-600 dark:text-blue-400">
+ <Sparkles className="w-4 h-4" />
+ <span>AI-Enhanced Search</span>
+ </div>
+ </div>
+
+ {/* Search Bar */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <div className="relative mb-4">
+ <Search className="absolute left-4 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5" />
+ <input
+ type="text"
+ placeholder="Search across all your study materials, flashcards, quizzes, and notes..."
+ value={searchQuery}
+ onChange={(e) => setSearchQuery(e.target.value)}
+ className="w-full pl-12 pr-4 py-3 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-500 focus:ring-2 focus:ring-blue-500 focus:border-transparent text-lg"
+ />
+ </div>
+
+ {/* Filters */}
+ <div className="flex flex-wrap gap-4">
+ <div className="flex items-center gap-2">
+ <Filter className="w-4 h-4 text-gray-600 dark:text-gray-400" />
+ <span className="text-sm font-medium text-gray-700 dark:text-gray-300">Filter by:</span>
+ </div>
+
+ <select
+ value={selectedFilter}
+ onChange={(e) => setSelectedFilter(e.target.value as any)}
+ className="px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white text-sm"
+ >
+ <option value="all">All Types</option>
+ <option value="flashcard">Flashcards</option>
+ <option value="quiz">Quizzes</option>
+ <option value="material">Materials</option>
+ <option value="note">Notes</option>
+ <option value="concept">Concepts</option>
+ </select>
+
+ <select
+ value={sortBy}
+ onChange={(e) => setSortBy(e.target.value as any)}
+ className="px-3 py-1 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white text-sm"
+ >
+ <option value="relevance">Most Relevant</option>
+ <option value="date">Recently Accessed</option>
+ <option value="alphabetical">Alphabetical</option>
+ </select>
+ </div>
+ </div>
+
+ {/* Search Results */}
+ {searchQuery || selectedFilter !== 'all' ? (
+ <div className="space-y-4">
+ <div className="flex items-center justify-between">
+ <h2 className="text-lg font-semibold text-gray-900 dark:text-white">
+ Search Results ({filteredResults.length})
+ </h2>
+ {searchQuery && (
+ <div className="text-sm text-gray-600 dark:text-gray-400">
+ Showing results for "{searchQuery}"
+ </div>
+ )}
+ </div>
+
+ <div className="space-y-3">
+ {filteredResults.map((result, index) => (
+ <motion.div
+ key={result.id}
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ transition={{ delay: index * 0.1 }}
+ className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700 hover:shadow-lg transition-all duration-200 cursor-pointer"
+ >
+ <div className="flex items-start justify-between mb-3">
+ <div className="flex items-center gap-3">
+ <div className={`w-8 h-8 rounded-lg flex items-center justify-center ${getTypeColor(result.type)}`}>
+ {getTypeIcon(result.type)}
+ </div>
+ <div>
+ <h3 className="font-semibold text-gray-900 dark:text-white flex items-center gap-2">
+ {result.title}
+ {result.favorite && (
+ <Star className="w-4 h-4 text-yellow-500 fill-current" />
+ )}
+ </h3>
+ <div className="flex items-center gap-2 text-sm text-gray-600 dark:text-gray-400">
+ <span className="capitalize">{result.type}</span>
+ <span>•</span>
+ <span>{result.subject}</span>
+ <span>•</span>
+ <div className="flex items-center gap-1">
+ <TrendingUp className="w-3 h-3" />
+ <span>{result.relevance}% match</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div className="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400">
+ <Clock className="w-3 h-3" />
+ <span>{new Date(result.lastAccessed).toLocaleDateString()}</span>
+ </div>
+ </div>
+
+ <p className="text-gray-700 dark:text-gray-300 mb-3 line-clamp-2">
+ {result.content}
+ </p>
+
+ <div className="flex items-center justify-between">
+ <div className="flex flex-wrap gap-2">
+ {result.tags.map((tag, tagIndex) => (
+ <span
+ key={tagIndex}
+ className="px-2 py-1 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400 text-xs rounded-full flex items-center gap-1"
+ >
+ <Tag className="w-2 h-2" />
+ {tag}
+ </span>
+ ))}
+ </div>
+ <button className="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 text-sm font-medium">
+ Open →
+ </button>
+ </div>
+ </motion.div>
+ ))}
+ </div>
+
+ {filteredResults.length === 0 && (
+ <div className="text-center py-12">
+ <Search className="w-16 h-16 text-gray-400 mx-auto mb-4" />
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-2">No results found</h3>
+ <p className="text-gray-600 dark:text-gray-400">
+ Try adjusting your search terms or filters
+ </p>
+ </div>
+ )}
+ </div>
+ ) : (
+ /* Default State - Recent Searches & Suggestions */
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
+ {/* Recent Searches */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
+ <Clock className="w-5 h-5" />
+ Recent Searches
+ </h3>
+ <div className="space-y-3">
+ {recentSearches.map((search, index) => (
+ <button
+ key={index}
+ onClick={() => setSearchQuery(search)}
+ className="w-full text-left p-3 bg-gray-50 dark:bg-gray-700 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-600 transition-colors"
+ >
+ <div className="flex items-center gap-3">
+ <Search className="w-4 h-4 text-gray-400" />
+ <span className="text-gray-900 dark:text-white">{search}</span>
+ </div>
+ </button>
+ ))}
+ </div>
+ </div>
+
+ {/* Suggested Topics */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2">
+ <Sparkles className="w-5 h-5" />
+ Suggested Topics
+ </h3>
+ <div className="space-y-3">
+ {suggestedTopics.map((topic, index) => (
+ <button
+ key={index}
+ onClick={() => setSearchQuery(topic.name.toLowerCase())}
+ className="w-full text-left p-3 bg-gray-50 dark:bg-gray-700 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-600 transition-colors"
+ >
+ <div className="flex items-center justify-between">
+ <span className="text-gray-900 dark:text-white">{topic.name}</span>
+ <span className="text-sm text-gray-500 dark:text-gray-400">
+ {topic.count} items
+ </span>
+ </div>
+ </button>
+ ))}
+ </div>
+ </div>
+ </div>
+ )}
+
+ {/* Search Tips */}
+ <div className="bg-gradient-to-r from-blue-500 to-purple-600 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
+ <Sparkles className="w-5 h-5" />
+ Search Tips
+ </h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div>
+ <h4 className="font-medium mb-1">Use Keywords</h4>
+ <p className="text-sm text-blue-100">
+ Search for specific terms, concepts, or topics you're studying
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Filter by Type</h4>
+ <p className="text-sm text-blue-100">
+ Narrow down results by content type: flashcards, quizzes, or materials
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Use Tags</h4>
+ <p className="text-sm text-blue-100">
+ Search by subject tags like "psychology" or "biology" for better results
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default SearchResults; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Settings.tsx.html b/coverage/StudyMaster/src/components/Settings.tsx.html
new file mode 100644
index 0000000..4646d52
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Settings.tsx.html
@@ -0,0 +1,1906 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Settings.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/608
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/608
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState } from 'react';
+import { motion } from 'framer-motion';
+import {
+ User,
+ Bell,
+ Shield,
+ Palette,
+ Globe,
+ Download,
+ Trash2,
+ Key,
+ Moon,
+ Sun,
+ Volume2,
+ VolumeX,
+ Smartphone,
+ Mail,
+ Lock,
+ Eye,
+ EyeOff,
+ Save,
+ RefreshCw
+} from 'lucide-react';
+import { useTheme } from '../contexts/ThemeContext';
+
+const Settings: React.FC = () => {
+ const { isDark, toggleTheme } = useTheme();
+ const [activeTab, setActiveTab] = useState('profile');
+ const [showPassword, setShowPassword] = useState(false);
+ const [notifications, setNotifications] = useState({
+ email: true,
+ push: true,
+ studyReminders: true,
+ quizResults: true,
+ achievements: true,
+ weeklyReports: false
+ });
+ const [privacy, setPrivacy] = useState({
+ profileVisibility: 'private',
+ studyStats: 'friends',
+ achievements: 'public'
+ });
+ const [preferences, setPreferences] = useState({
+ language: 'en',
+ timezone: 'UTC-5',
+ soundEffects: true,
+ autoSave: true,
+ darkMode: isDark,
+ studyReminders: true,
+ dailyGoal: 4
+ });
+
+ const tabs = [
+ { id: 'profile', label: 'Profile', icon: User },
+ { id: 'notifications', label: 'Notifications', icon: Bell },
+ { id: 'privacy', label: 'Privacy & Security', icon: Shield },
+ { id: 'preferences', label: 'Preferences', icon: Palette },
+ { id: 'data', label: 'Data & Storage', icon: Download }
+ ];
+
+ const handleNotificationChange = (key: string, value: boolean) => {
+ setNotifications(prev => ({ ...prev, [key]: value }));
+ };
+
+ const handlePrivacyChange = (key: string, value: string) => {
+ setPrivacy(prev => ({ ...prev, [key]: value }));
+ };
+
+ const handlePreferenceChange = (key: string, value: any) => {
+ setPreferences(prev => ({ ...prev, [key]: value }));
+ if (key === 'darkMode') {
+ toggleTheme();
+ }
+ };
+
+ const renderTabContent = () => {
+ switch (activeTab) {
+ case 'profile':
+ return (
+ <div className="space-y-6">
+ <div className="flex items-center gap-6">
+ <div className="w-24 h-24 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center text-white text-2xl font-bold">
+ AJ
+ </div>
+ <div>
+ <h3 className="text-xl font-semibold text-gray-900 dark:text-white">Alex Johnson</h3>
+ <p className="text-gray-600 dark:text-gray-400">alex.johnson@email.com</p>
+ <button className="mt-2 text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 text-sm font-medium">
+ Change Photo
+ </button>
+ </div>
+ </div>
+
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ First Name
+ </label>
+ <input
+ type="text"
+ defaultValue="Alex"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Last Name
+ </label>
+ <input
+ type="text"
+ defaultValue="Johnson"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Email
+ </label>
+ <input
+ type="email"
+ defaultValue="alex.johnson@email.com"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Phone
+ </label>
+ <input
+ type="tel"
+ placeholder="+1 (555) 123-4567"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ </div>
+
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Bio
+ </label>
+ <textarea
+ rows={3}
+ placeholder="Tell us about yourself..."
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+
+ <div>
+ <h4 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Change Password</h4>
+ <div className="space-y-4">
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Current Password
+ </label>
+ <div className="relative">
+ <input
+ type={showPassword ? 'text' : 'password'}
+ className="w-full px-3 py-2 pr-10 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ <button
+ onClick={() => setShowPassword(!showPassword)}
+ className="absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"
+ >
+ {showPassword ? <EyeOff className="w-4 h-4" /> : <Eye className="w-4 h-4" />}
+ </button>
+ </div>
+ </div>
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ New Password
+ </label>
+ <input
+ type="password"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Confirm Password
+ </label>
+ <input
+ type="password"
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+
+ case 'notifications':
+ return (
+ <div className="space-y-6">
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Notification Preferences</h3>
+ <div className="space-y-4">
+ {Object.entries(notifications).map(([key, value]) => (
+ <div key={key} className="flex items-center justify-between">
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white capitalize">
+ {key.replace(/([A-Z])/g, ' $1').trim()}
+ </h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ {key === 'email' && 'Receive notifications via email'}
+ {key === 'push' && 'Receive push notifications on your device'}
+ {key === 'studyReminders' && 'Get reminded about your study sessions'}
+ {key === 'quizResults' && 'Notifications when quiz results are available'}
+ {key === 'achievements' && 'Get notified when you unlock achievements'}
+ {key === 'weeklyReports' && 'Receive weekly progress reports'}
+ </p>
+ </div>
+ <button
+ onClick={() => handleNotificationChange(key, !value)}
+ className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${
+ value ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'
+ }`}
+ >
+ <span
+ className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${
+ value ? 'translate-x-6' : 'translate-x-1'
+ }`}
+ />
+ </button>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Notification Channels</h3>
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center gap-3 mb-2">
+ <Mail className="w-5 h-5 text-blue-600 dark:text-blue-400" />
+ <h4 className="font-medium text-gray-900 dark:text-white">Email</h4>
+ </div>
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3">
+ alex.johnson@email.com
+ </p>
+ <button className="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 text-sm font-medium">
+ Change Email
+ </button>
+ </div>
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center gap-3 mb-2">
+ <Smartphone className="w-5 h-5 text-green-600 dark:text-green-400" />
+ <h4 className="font-medium text-gray-900 dark:text-white">Push Notifications</h4>
+ </div>
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3">
+ Enabled on this device
+ </p>
+ <button className="text-green-600 dark:text-green-400 hover:text-green-700 dark:hover:text-green-300 text-sm font-medium">
+ Manage Devices
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+
+ case 'privacy':
+ return (
+ <div className="space-y-6">
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Privacy Settings</h3>
+ <div className="space-y-4">
+ {Object.entries(privacy).map(([key, value]) => (
+ <div key={key}>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2 capitalize">
+ {key.replace(/([A-Z])/g, ' $1').trim()}
+ </label>
+ <select
+ value={value}
+ onChange={(e) => handlePrivacyChange(key, e.target.value)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="public">Public</option>
+ <option value="friends">Friends Only</option>
+ <option value="private">Private</option>
+ </select>
+ </div>
+ ))}
+ </div>
+ </div>
+
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Security</h3>
+ <div className="space-y-4">
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center justify-between">
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Two-Factor Authentication</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Add an extra layer of security to your account
+ </p>
+ </div>
+ <button className="bg-blue-500 text-white px-4 py-2 rounded-lg hover:bg-blue-600 transition-colors">
+ Enable
+ </button>
+ </div>
+ </div>
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center justify-between">
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Login Sessions</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Manage your active login sessions
+ </p>
+ </div>
+ <button className="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-medium">
+ View Sessions
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+
+ case 'preferences':
+ return (
+ <div className="space-y-6">
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">General Preferences</h3>
+ <div className="space-y-4">
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Language
+ </label>
+ <select
+ value={preferences.language}
+ onChange={(e) => handlePreferenceChange('language', e.target.value)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="en">English</option>
+ <option value="es">Spanish</option>
+ <option value="fr">French</option>
+ <option value="de">German</option>
+ </select>
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Timezone
+ </label>
+ <select
+ value={preferences.timezone}
+ onChange={(e) => handlePreferenceChange('timezone', e.target.value)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
+ >
+ <option value="UTC-8">Pacific Time (UTC-8)</option>
+ <option value="UTC-5">Eastern Time (UTC-5)</option>
+ <option value="UTC+0">GMT (UTC+0)</option>
+ <option value="UTC+1">Central European Time (UTC+1)</option>
+ </select>
+ </div>
+ </div>
+
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Daily Study Goal (sessions)
+ </label>
+ <input
+ type="number"
+ min="1"
+ max="20"
+ value={preferences.dailyGoal}
+ onChange={(e) => handlePreferenceChange('dailyGoal', parseInt(e.target.value))}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">App Preferences</h3>
+ <div className="space-y-4">
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-3">
+ {isDark ? <Moon className="w-5 h-5" /> : <Sun className="w-5 h-5" />}
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Dark Mode</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Use dark theme for better night studying
+ </p>
+ </div>
+ </div>
+ <button
+ onClick={() => handlePreferenceChange('darkMode', !preferences.darkMode)}
+ className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${
+ preferences.darkMode ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'
+ }`}
+ >
+ <span
+ className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${
+ preferences.darkMode ? 'translate-x-6' : 'translate-x-1'
+ }`}
+ />
+ </button>
+ </div>
+
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-3">
+ {preferences.soundEffects ? <Volume2 className="w-5 h-5" /> : <VolumeX className="w-5 h-5" />}
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Sound Effects</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Play sounds for interactions and notifications
+ </p>
+ </div>
+ </div>
+ <button
+ onClick={() => handlePreferenceChange('soundEffects', !preferences.soundEffects)}
+ className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${
+ preferences.soundEffects ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'
+ }`}
+ >
+ <span
+ className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${
+ preferences.soundEffects ? 'translate-x-6' : 'translate-x-1'
+ }`}
+ />
+ </button>
+ </div>
+
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-3">
+ <Save className="w-5 h-5" />
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Auto-Save</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Automatically save your progress
+ </p>
+ </div>
+ </div>
+ <button
+ onClick={() => handlePreferenceChange('autoSave', !preferences.autoSave)}
+ className={`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${
+ preferences.autoSave ? 'bg-blue-600' : 'bg-gray-200 dark:bg-gray-700'
+ }`}
+ >
+ <span
+ className={`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${
+ preferences.autoSave ? 'translate-x-6' : 'translate-x-1'
+ }`}
+ />
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+
+ case 'data':
+ return (
+ <div className="space-y-6">
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Data Management</h3>
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <h4 className="font-medium text-gray-900 dark:text-white mb-2">Export Data</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3">
+ Download all your study data, progress, and materials
+ </p>
+ <button className="bg-blue-500 text-white px-4 py-2 rounded-lg hover:bg-blue-600 transition-colors flex items-center gap-2">
+ <Download className="w-4 h-4" />
+ Export Data
+ </button>
+ </div>
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <h4 className="font-medium text-gray-900 dark:text-white mb-2">Storage Usage</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400 mb-3">
+ You're using 2.4 GB of 10 GB available
+ </p>
+ <div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2 mb-3">
+ <div className="bg-blue-500 h-2 rounded-full" style={{ width: '24%' }} />
+ </div>
+ <button className="text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-medium">
+ Manage Storage
+ </button>
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <h3 className="text-lg font-medium text-gray-900 dark:text-white mb-4">Backup & Sync</h3>
+ <div className="space-y-4">
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center justify-between">
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Auto Backup</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ Automatically backup your data to the cloud
+ </p>
+ </div>
+ <button className="relative inline-flex h-6 w-11 items-center rounded-full bg-blue-600">
+ <span className="inline-block h-4 w-4 transform rounded-full bg-white translate-x-6" />
+ </button>
+ </div>
+ </div>
+ <div className="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
+ <div className="flex items-center justify-between">
+ <div>
+ <h4 className="font-medium text-gray-900 dark:text-white">Last Backup</h4>
+ <p className="text-sm text-gray-600 dark:text-gray-400">
+ June 28, 2025 at 3:45 PM
+ </p>
+ </div>
+ <button className="bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 px-4 py-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors flex items-center gap-2">
+ <RefreshCw className="w-4 h-4" />
+ Backup Now
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <h3 className="text-lg font-medium text-red-600 dark:text-red-400 mb-4">Danger Zone</h3>
+ <div className="p-4 border border-red-200 dark:border-red-700 rounded-lg bg-red-50 dark:bg-red-900/20">
+ <h4 className="font-medium text-red-900 dark:text-red-100 mb-2">Delete Account</h4>
+ <p className="text-sm text-red-700 dark:text-red-300 mb-4">
+ Permanently delete your account and all associated data. This action cannot be undone.
+ </p>
+ <button className="bg-red-600 text-white px-4 py-2 rounded-lg hover:bg-red-700 transition-colors flex items-center gap-2">
+ <Trash2 className="w-4 h-4" />
+ Delete Account
+ </button>
+ </div>
+ </div>
+ </div>
+ );
+
+ default:
+ return null;
+ }
+ };
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Settings</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Manage your account, preferences, and privacy settings
+ </p>
+ </div>
+ </div>
+
+ <div className="grid grid-cols-1 lg:grid-cols-4 gap-6">
+ {/* Sidebar */}
+ <div className="lg:col-span-1">
+ <div className="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 overflow-hidden">
+ {tabs.map((tab) => {
+ const Icon = tab.icon;
+ return (
+ <button
+ key={tab.id}
+ onClick={() => setActiveTab(tab.id)}
+ className={`w-full flex items-center gap-3 px-4 py-3 text-left transition-colors ${
+ activeTab === tab.id
+ ? 'bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 border-r-2 border-blue-500'
+ : 'text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
+ }`}
+ >
+ <Icon className="w-5 h-5" />
+ <span className="font-medium">{tab.label}</span>
+ </button>
+ );
+ })}
+ </div>
+ </div>
+
+ {/* Content */}
+ <div className="lg:col-span-3">
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <motion.div
+ key={activeTab}
+ initial={{ opacity: 0, y: 20 }}
+ animate={{ opacity: 1, y: 0 }}
+ transition={{ duration: 0.2 }}
+ >
+ {renderTabContent()}
+ </motion.div>
+
+ {/* Save Button */}
+ <div className="mt-8 pt-6 border-t border-gray-200 dark:border-gray-700">
+ <div className="flex justify-end gap-4">
+ <button className="px-4 py-2 text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white transition-colors">
+ Cancel
+ </button>
+ <button className="bg-blue-500 text-white px-6 py-2 rounded-lg hover:bg-blue-600 transition-colors flex items-center gap-2">
+ <Save className="w-4 h-4" />
+ Save Changes
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+};
+
+export default Settings; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/Sidebar.tsx.html b/coverage/StudyMaster/src/components/Sidebar.tsx.html
new file mode 100644
index 0000000..2299ff8
--- /dev/null
+++ b/coverage/StudyMaster/src/components/Sidebar.tsx.html
@@ -0,0 +1,439 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/Sidebar.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/119
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/119
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React from 'react';
+import {
+ Home,
+ BookOpen,
+ Brain,
+ BarChart3,
+ Upload,
+ Timer,
+ Trophy,
+ Settings,
+ GraduationCap,
+ FileText,
+ Search,
+ X,
+ Menu
+} from 'lucide-react';
+
+interface SidebarProps {
+ activeSection: string;
+ setActiveSection: (section: string) => void;
+ isOpen?: boolean;
+ onClose?: () => void;
+}
+
+const Sidebar: React.FC<SidebarProps> = ({ activeSection, setActiveSection, isOpen = true, onClose }) => {
+ const menuItems = [
+ { id: 'dashboard', label: 'Dashboard', icon: Home },
+ { id: 'flashcards', label: 'Flashcards', icon: Brain },
+ { id: 'quiz', label: 'Quizzes', icon: BookOpen },
+ { id: 'upload', label: 'Upload', icon: Upload },
+ { id: 'analytics', label: 'Analytics', icon: BarChart3 },
+ { id: 'study-timer', label: 'Study Timer', icon: Timer },
+ { id: 'achievements', label: 'Achievements', icon: Trophy },
+ { id: 'materials', label: 'Materials', icon: FileText },
+ { id: 'search', label: 'Search', icon: Search },
+ { id: 'settings', label: 'Settings', icon: Settings },
+ ];
+
+ const handleItemClick = (itemId: string) => {
+ setActiveSection(itemId);
+ if (onClose) {
+ onClose();
+ }
+ };
+
+ return (
+ <>
+ {/* Mobile Overlay */}
+ {isOpen && (
+ <div
+ className="fixed inset-0 bg-black bg-opacity-50 z-40 lg:hidden"
+ onClick={onClose}
+ />
+ )}
+
+ {/* Sidebar */}
+ <div className={`
+ fixed lg:static inset-y-0 left-0 z-50 lg:z-auto
+ w-64 bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700
+ min-h-screen flex flex-col transform transition-transform duration-300 ease-in-out
+ ${isOpen ? 'translate-x-0' : '-translate-x-full lg:translate-x-0'}
+ `}>
+ {/* Logo */}
+ <div className="flex items-center justify-between gap-3 p-4 lg:p-6 border-b border-gray-200 dark:border-gray-700">
+ <div className="flex items-center gap-3">
+ <div className="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center">
+ <GraduationCap className="w-5 h-5 text-white" />
+ </div>
+ <span className="text-xl font-bold text-gray-900 dark:text-white">StudyMaster</span>
+ </div>
+
+ {/* Close button for mobile */}
+ <button
+ onClick={onClose}
+ className="lg:hidden p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg"
+ >
+ <X className="w-5 h-5" />
+ </button>
+ </div>
+
+ {/* Navigation */}
+ <nav className="flex-1 p-3 lg:p-4 space-y-1 lg:space-y-2 overflow-y-auto">
+ {menuItems.map((item) => {
+ const Icon = item.icon;
+ const isActive = activeSection === item.id;
+
+ return (
+ <button
+ key={item.id}
+ onClick={() => handleItemClick(item.id)}
+ className={`w-full flex items-center gap-3 px-3 lg:px-4 py-3 rounded-lg text-left transition-all duration-200 touch-manipulation ${
+ isActive
+ ? 'bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 border border-blue-200 dark:border-blue-700'
+ : 'text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-900 dark:hover:text-gray-200'
+ }`}
+ >
+ <Icon className="w-5 h-5 flex-shrink-0" />
+ <span className="font-medium truncate">{item.label}</span>
+ </button>
+ );
+ })}
+ </nav>
+
+ {/* Upgrade Section */}
+ <div className="p-3 lg:p-4 border-t border-gray-200 dark:border-gray-700">
+ <div className="bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg p-4 text-white">
+ <h3 className="font-semibold mb-2 text-sm lg:text-base">Upgrade to Pro</h3>
+ <p className="text-xs lg:text-sm text-blue-100 mb-3">Unlock advanced AI features and unlimited storage</p>
+ <button className="w-full bg-white text-blue-600 rounded-lg py-2 text-sm font-medium hover:bg-blue-50 transition-colors touch-manipulation">
+ Upgrade Now
+ </button>
+ </div>
+ </div>
+ </div>
+ </>
+ );
+};
+
+export default Sidebar; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/StudyTimer.tsx.html b/coverage/StudyMaster/src/components/StudyTimer.tsx.html
new file mode 100644
index 0000000..474da63
--- /dev/null
+++ b/coverage/StudyMaster/src/components/StudyTimer.tsx.html
@@ -0,0 +1,1336 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components/StudyTimer.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/418
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/418
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | import React, { useState, useEffect, useRef } from 'react';
+import { motion, AnimatePresence } from 'framer-motion';
+import {
+ Play,
+ Pause,
+ RotateCcw,
+ Clock,
+ Coffee,
+ Brain,
+ Target,
+ Settings,
+ Volume2,
+ VolumeX,
+ Bell,
+ CheckCircle
+} from 'lucide-react';
+
+interface Session {
+ type: 'focus' | 'break' | 'longBreak';
+ duration: number;
+ completed: boolean;
+}
+
+const StudyTimer: React.FC = () => {
+ const [timeLeft, setTimeLeft] = useState(25 * 60); // 25 minutes in seconds
+ const [isRunning, setIsRunning] = useState(false);
+ const [currentSession, setCurrentSession] = useState<'focus' | 'break' | 'longBreak'>('focus');
+ const [sessionsCompleted, setSessionsCompleted] = useState(0);
+ const [customDurations, setCustomDurations] = useState({
+ focus: 25,
+ shortBreak: 5,
+ longBreak: 15
+ });
+ const [soundEnabled, setSoundEnabled] = useState(true);
+ const [showSettings, setShowSettings] = useState(false);
+ const [dailyGoal, setDailyGoal] = useState(8); // sessions
+ const [totalStudyTime, setTotalStudyTime] = useState(0);
+ const [currentStreak, setCurrentStreak] = useState(0);
+
+ const intervalRef = useRef<NodeJS.Timeout | null>(null);
+ const audioRef = useRef<HTMLAudioElement | null>(null);
+
+ const sessions: Session[] = [
+ { type: 'focus', duration: customDurations.focus * 60, completed: false },
+ { type: 'break', duration: customDurations.shortBreak * 60, completed: false },
+ { type: 'focus', duration: customDurations.focus * 60, completed: false },
+ { type: 'break', duration: customDurations.shortBreak * 60, completed: false },
+ { type: 'focus', duration: customDurations.focus * 60, completed: false },
+ { type: 'break', duration: customDurations.shortBreak * 60, completed: false },
+ { type: 'focus', duration: customDurations.focus * 60, completed: false },
+ { type: 'longBreak', duration: customDurations.longBreak * 60, completed: false },
+ ];
+
+ useEffect(() => {
+ if (isRunning && timeLeft > 0) {
+ intervalRef.current = setInterval(() => {
+ setTimeLeft(prev => {
+ if (prev <= 1) {
+ handleSessionComplete();
+ return 0;
+ }
+ return prev - 1;
+ });
+ }, 1000);
+ } else if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+
+ return () => {
+ if (intervalRef.current) {
+ clearInterval(intervalRef.current);
+ }
+ };
+ }, [isRunning, timeLeft]);
+
+ const handleSessionComplete = () => {
+ setIsRunning(false);
+ if (soundEnabled && audioRef.current) {
+ audioRef.current.play();
+ }
+
+ if (currentSession === 'focus') {
+ setSessionsCompleted(prev => prev + 1);
+ setTotalStudyTime(prev => prev + customDurations.focus);
+ setCurrentStreak(prev => prev + 1);
+ }
+
+ // Auto-advance to next session
+ const nextSessionIndex = sessionsCompleted % sessions.length;
+ const nextSession = sessions[nextSessionIndex];
+ setCurrentSession(nextSession.type);
+ setTimeLeft(nextSession.duration);
+ };
+
+ const toggleTimer = () => {
+ setIsRunning(prev => !prev);
+ };
+
+ const resetTimer = () => {
+ setIsRunning(false);
+ const sessionDuration = currentSession === 'focus'
+ ? customDurations.focus * 60
+ : currentSession === 'break'
+ ? customDurations.shortBreak * 60
+ : customDurations.longBreak * 60;
+ setTimeLeft(sessionDuration);
+ };
+
+ const formatTime = (seconds: number) => {
+ const mins = Math.floor(seconds / 60);
+ const secs = seconds % 60;
+ return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
+ };
+
+ const getProgress = () => {
+ const totalDuration = currentSession === 'focus'
+ ? customDurations.focus * 60
+ : currentSession === 'break'
+ ? customDurations.shortBreak * 60
+ : customDurations.longBreak * 60;
+ return ((totalDuration - timeLeft) / totalDuration) * 100;
+ };
+
+ const getSessionColor = () => {
+ switch (currentSession) {
+ case 'focus': return 'from-blue-500 to-purple-600';
+ case 'break': return 'from-green-500 to-blue-500';
+ case 'longBreak': return 'from-orange-500 to-red-500';
+ default: return 'from-blue-500 to-purple-600';
+ }
+ };
+
+ const getSessionIcon = () => {
+ switch (currentSession) {
+ case 'focus': return <Brain className="w-8 h-8" />;
+ case 'break': return <Coffee className="w-8 h-8" />;
+ case 'longBreak': return <Coffee className="w-8 h-8" />;
+ default: return <Brain className="w-8 h-8" />;
+ }
+ };
+
+ const handleDurationChange = (type: keyof typeof customDurations, value: number) => {
+ setCustomDurations(prev => ({ ...prev, [type]: value }));
+ if (type === 'focus' && currentSession === 'focus') {
+ setTimeLeft(value * 60);
+ } else if (type === 'shortBreak' && currentSession === 'break') {
+ setTimeLeft(value * 60);
+ } else if (type === 'longBreak' && currentSession === 'longBreak') {
+ setTimeLeft(value * 60);
+ }
+ };
+
+ return (
+ <div className="p-6 space-y-6">
+ {/* Header */}
+ <div className="flex items-center justify-between">
+ <div>
+ <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Focus Timer</h1>
+ <p className="text-gray-600 dark:text-gray-400 mt-1">
+ Use the Pomodoro Technique to boost your productivity
+ </p>
+ </div>
+ <button
+ onClick={() => setShowSettings(!showSettings)}
+ className="p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors"
+ >
+ <Settings className="w-5 h-5" />
+ </button>
+ </div>
+
+ {/* Settings Panel */}
+ <AnimatePresence>
+ {showSettings && (
+ <motion.div
+ initial={{ opacity: 0, height: 0 }}
+ animate={{ opacity: 1, height: 'auto' }}
+ exit={{ opacity: 0, height: 0 }}
+ className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700"
+ >
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Timer Settings</h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 mb-4">
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Focus Duration (minutes)
+ </label>
+ <input
+ type="number"
+ min="1"
+ max="60"
+ value={customDurations.focus}
+ onChange={(e) => handleDurationChange('focus', parseInt(e.target.value) || 25)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Short Break (minutes)
+ </label>
+ <input
+ type="number"
+ min="1"
+ max="30"
+ value={customDurations.shortBreak}
+ onChange={(e) => handleDurationChange('shortBreak', parseInt(e.target.value) || 5)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ <div>
+ <label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
+ Long Break (minutes)
+ </label>
+ <input
+ type="number"
+ min="1"
+ max="60"
+ value={customDurations.longBreak}
+ onChange={(e) => handleDurationChange('longBreak', parseInt(e.target.value) || 15)}
+ className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white"
+ />
+ </div>
+ </div>
+ <div className="flex items-center justify-between">
+ <div className="flex items-center gap-2">
+ <button
+ onClick={() => setSoundEnabled(!soundEnabled)}
+ className="flex items-center gap-2 text-gray-600 dark:text-gray-400"
+ >
+ {soundEnabled ? <Volume2 className="w-4 h-4" /> : <VolumeX className="w-4 h-4" />}
+ <span className="text-sm">Sound Notifications</span>
+ </button>
+ </div>
+ <div className="flex items-center gap-2">
+ <label className="text-sm text-gray-700 dark:text-gray-300">Daily Goal:</label>
+ <input
+ type="number"
+ min="1"
+ max="20"
+ value={dailyGoal}
+ onChange={(e) => setDailyGoal(parseInt(e.target.value) || 8)}
+ className="w-16 px-2 py-1 border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white text-sm"
+ />
+ <span className="text-sm text-gray-700 dark:text-gray-300">sessions</span>
+ </div>
+ </div>
+ </motion.div>
+ )}
+ </AnimatePresence>
+
+ {/* Main Timer */}
+ <div className="flex justify-center">
+ <div className="relative">
+ {/* Progress Ring */}
+ <svg className="w-80 h-80 transform -rotate-90" viewBox="0 0 320 320">
+ <circle
+ cx="160"
+ cy="160"
+ r="140"
+ stroke="currentColor"
+ strokeWidth="8"
+ fill="transparent"
+ className="text-gray-200 dark:text-gray-700"
+ />
+ <circle
+ cx="160"
+ cy="160"
+ r="140"
+ stroke="url(#gradient)"
+ strokeWidth="8"
+ fill="transparent"
+ strokeDasharray={`${2 * Math.PI * 140}`}
+ strokeDashoffset={`${2 * Math.PI * 140 * (1 - getProgress() / 100)}`}
+ className="transition-all duration-1000 ease-in-out"
+ strokeLinecap="round"
+ />
+ <defs>
+ <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%">
+ <stop offset="0%" stopColor={currentSession === 'focus' ? '#3B82F6' : currentSession === 'break' ? '#10B981' : '#F59E0B'} />
+ <stop offset="100%" stopColor={currentSession === 'focus' ? '#8B5CF6' : currentSession === 'break' ? '#3B82F6' : '#EF4444'} />
+ </linearGradient>
+ </defs>
+ </svg>
+
+ {/* Timer Content */}
+ <div className="absolute inset-0 flex flex-col items-center justify-center">
+ <motion.div
+ key={currentSession}
+ initial={{ scale: 0.8, opacity: 0 }}
+ animate={{ scale: 1, opacity: 1 }}
+ className={`w-16 h-16 bg-gradient-to-r ${getSessionColor()} rounded-full flex items-center justify-center text-white mb-4`}
+ >
+ {getSessionIcon()}
+ </motion.div>
+
+ <div className="text-5xl font-mono font-bold text-gray-900 dark:text-white mb-2">
+ {formatTime(timeLeft)}
+ </div>
+
+ <div className="text-lg font-medium text-gray-600 dark:text-gray-400 mb-6">
+ {currentSession === 'focus' ? 'Focus Time' :
+ currentSession === 'break' ? 'Short Break' : 'Long Break'}
+ </div>
+
+ <div className="flex gap-4">
+ <button
+ onClick={toggleTimer}
+ className={`w-16 h-16 bg-gradient-to-r ${getSessionColor()} text-white rounded-full flex items-center justify-center hover:scale-105 transition-transform duration-200 shadow-lg`}
+ >
+ {isRunning ? <Pause className="w-6 h-6" /> : <Play className="w-6 h-6 ml-1" />}
+ </button>
+
+ <button
+ onClick={resetTimer}
+ className="w-16 h-16 bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-400 rounded-full flex items-center justify-center hover:scale-105 transition-transform duration-200"
+ >
+ <RotateCcw className="w-6 h-6" />
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ {/* Session Progress */}
+ <div className="bg-white dark:bg-gray-800 rounded-xl p-6 border border-gray-200 dark:border-gray-700">
+ <h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Today's Progress</h3>
+
+ <div className="grid grid-cols-1 md:grid-cols-4 gap-4 mb-6">
+ <div className="text-center p-4 bg-blue-50 dark:bg-blue-900/30 rounded-lg">
+ <div className="text-2xl font-bold text-blue-600 dark:text-blue-400">{sessionsCompleted}</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Sessions Completed</div>
+ </div>
+ <div className="text-center p-4 bg-green-50 dark:bg-green-900/30 rounded-lg">
+ <div className="text-2xl font-bold text-green-600 dark:text-green-400">{Math.floor(totalStudyTime / 60)}h {totalStudyTime % 60}m</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Study Time</div>
+ </div>
+ <div className="text-center p-4 bg-purple-50 dark:bg-purple-900/30 rounded-lg">
+ <div className="text-2xl font-bold text-purple-600 dark:text-purple-400">{currentStreak}</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Current Streak</div>
+ </div>
+ <div className="text-center p-4 bg-orange-50 dark:bg-orange-900/30 rounded-lg">
+ <div className="text-2xl font-bold text-orange-600 dark:text-orange-400">{Math.round((sessionsCompleted / dailyGoal) * 100)}%</div>
+ <div className="text-sm text-gray-600 dark:text-gray-400">Daily Goal</div>
+ </div>
+ </div>
+
+ {/* Session Timeline */}
+ <div className="flex items-center gap-2 mb-4">
+ <span className="text-sm font-medium text-gray-700 dark:text-gray-300">Session Timeline:</span>
+ </div>
+ <div className="flex gap-2">
+ {sessions.map((session, index) => (
+ <div
+ key={index}
+ className={`flex-1 h-3 rounded-full ${
+ index < sessionsCompleted
+ ? session.type === 'focus'
+ ? 'bg-blue-500'
+ : 'bg-green-500'
+ : index === sessionsCompleted
+ ? session.type === 'focus'
+ ? 'bg-blue-300'
+ : 'bg-green-300'
+ : 'bg-gray-200 dark:bg-gray-700'
+ }`}
+ />
+ ))}
+ </div>
+ <div className="flex justify-between text-xs text-gray-500 dark:text-gray-400 mt-2">
+ <span>Focus</span>
+ <span>Break</span>
+ <span>Focus</span>
+ <span>Break</span>
+ <span>Focus</span>
+ <span>Break</span>
+ <span>Focus</span>
+ <span>Long Break</span>
+ </div>
+ </div>
+
+ {/* Tips */}
+ <div className="bg-gradient-to-r from-indigo-500 to-purple-600 rounded-xl p-6 text-white">
+ <h3 className="text-lg font-semibold mb-4 flex items-center gap-2">
+ <Target className="w-5 h-5" />
+ Pomodoro Tips
+ </h3>
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
+ <div>
+ <h4 className="font-medium mb-1">Stay Focused</h4>
+ <p className="text-sm text-indigo-100">
+ During focus sessions, avoid all distractions. Put your phone away and close unnecessary tabs.
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Take Real Breaks</h4>
+ <p className="text-sm text-indigo-100">
+ Use break time to rest your mind. Stand up, stretch, or take a short walk.
+ </p>
+ </div>
+ <div>
+ <h4 className="font-medium mb-1">Track Progress</h4>
+ <p className="text-sm text-indigo-100">
+ Review your daily sessions to identify patterns and optimize your study schedule.
+ </p>
+ </div>
+ </div>
+ </div>
+
+ {/* Hidden audio element for notifications */}
+ <audio
+ ref={audioRef}
+ preload="auto"
+ >
+ <source src="data:audio/wav;base64,UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhJGZBnp2Q4K2Ae3w=" type="audio/wav" />
+ </audio>
+ </div>
+ );
+};
+
+export default StudyTimer; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/components/index.html b/coverage/StudyMaster/src/components/index.html
new file mode 100644
index 0000000..8387826
--- /dev/null
+++ b/coverage/StudyMaster/src/components/index.html
@@ -0,0 +1,296 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/components
+
+
+
+
+
+
+
+
+
+
+
+
All files StudyMaster/src/components
+
+
+
+ 0%
+ Statements
+ 0/4334
+
+
+
+
+ 0%
+ Branches
+ 0/13
+
+
+
+
+ 0%
+ Functions
+ 0/13
+
+
+
+
+ 0%
+ Lines
+ 0/4334
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | AIChat.tsx |
+
+
+ |
+ 0% |
+ 0/276 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/276 |
+
+
+
+ | Achievements.tsx |
+
+
+ |
+ 0% |
+ 0/409 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/409 |
+
+
+
+ | Analytics.tsx |
+
+
+ |
+ 0% |
+ 0/360 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/360 |
+
+
+
+ | Dashboard.tsx |
+
+
+ |
+ 0% |
+ 0/201 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/201 |
+
+
+
+ | FileUpload.tsx |
+
+
+ |
+ 0% |
+ 0/203 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/203 |
+
+
+
+ | Flashcards.tsx |
+
+
+ |
+ 0% |
+ 0/217 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/217 |
+
+
+
+ | Header.tsx |
+
+
+ |
+ 0% |
+ 0/86 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/86 |
+
+
+
+ | Materials.tsx |
+
+
+ |
+ 0% |
+ 0/496 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/496 |
+
+
+
+ | Quiz.tsx |
+
+
+ |
+ 0% |
+ 0/556 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/556 |
+
+
+
+ | SearchResults.tsx |
+
+
+ |
+ 0% |
+ 0/385 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/385 |
+
+
+
+ | Settings.tsx |
+
+
+ |
+ 0% |
+ 0/608 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/608 |
+
+
+
+ | Sidebar.tsx |
+
+
+ |
+ 0% |
+ 0/119 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/119 |
+
+
+
+ | StudyTimer.tsx |
+
+
+ |
+ 0% |
+ 0/418 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/418 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/contexts/ThemeContext.tsx.html b/coverage/StudyMaster/src/contexts/ThemeContext.tsx.html
new file mode 100644
index 0000000..ec6718e
--- /dev/null
+++ b/coverage/StudyMaster/src/contexts/ThemeContext.tsx.html
@@ -0,0 +1,202 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/contexts/ThemeContext.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 82.5%
+ Statements
+ 33/40
+
+
+
+
+ 50%
+ Branches
+ 3/6
+
+
+
+
+ 33.33%
+ Functions
+ 1/3
+
+
+
+
+ 82.5%
+ Lines
+ 33/40
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40 | 1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+
+
+
+
+
+
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x
+1x | import React, { createContext, useContext, useState, useEffect } from 'react';
+
+interface ThemeContextType {
+ isDark: boolean;
+ toggleTheme: () => void;
+}
+
+const ThemeContext = createContext<ThemeContextType | undefined>(undefined);
+
+export const useTheme = () => {
+ const context = useContext(ThemeContext);
+ if (!context) {
+ throw new Error('useTheme must be used within a ThemeProvider');
+ }
+ return context;
+};
+
+export const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
+ const [isDark, setIsDark] = useState(() => {
+ const saved = localStorage.getItem('theme');
+ return saved ? saved === 'dark' : false;
+ });
+
+ useEffect(() => {
+ localStorage.setItem('theme', isDark ? 'dark' : 'light');
+ if (isDark) {
+ document.documentElement.classList.add('dark');
+ } else {
+ document.documentElement.classList.remove('dark');
+ }
+ }, [isDark]);
+
+ const toggleTheme = () => setIsDark(!isDark);
+
+ return (
+ <ThemeContext.Provider value={{ isDark, toggleTheme }}>
+ {children}
+ </ThemeContext.Provider>
+ );
+}; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/contexts/index.html b/coverage/StudyMaster/src/contexts/index.html
new file mode 100644
index 0000000..51c588c
--- /dev/null
+++ b/coverage/StudyMaster/src/contexts/index.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/contexts
+
+
+
+
+
+
+
+
+
+
+
+
All files StudyMaster/src/contexts
+
+
+
+ 82.5%
+ Statements
+ 33/40
+
+
+
+
+ 50%
+ Branches
+ 3/6
+
+
+
+
+ 33.33%
+ Functions
+ 1/3
+
+
+
+
+ 82.5%
+ Lines
+ 33/40
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | ThemeContext.tsx |
+
+
+ |
+ 82.5% |
+ 33/40 |
+ 50% |
+ 3/6 |
+ 33.33% |
+ 1/3 |
+ 82.5% |
+ 33/40 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/data/index.html b/coverage/StudyMaster/src/data/index.html
new file mode 100644
index 0000000..644a3c9
--- /dev/null
+++ b/coverage/StudyMaster/src/data/index.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/data
+
+
+
+
+
+
+
+
+
+
+
+
All files StudyMaster/src/data
+
+
+
+ 0%
+ Statements
+ 0/122
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/122
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | sampleData.ts |
+
+
+ |
+ 0% |
+ 0/122 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/122 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/data/sampleData.ts.html b/coverage/StudyMaster/src/data/sampleData.ts.html
new file mode 100644
index 0000000..adb749a
--- /dev/null
+++ b/coverage/StudyMaster/src/data/sampleData.ts.html
@@ -0,0 +1,448 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/data/sampleData.ts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/122
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/122
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | // Sample flashcards data
+export const flashcardsData = {
+ "decks": [
+ {
+ "subject": "Psychology",
+ "cards": [
+ {
+ "front": "What is cognitive dissonance?",
+ "back": "Mental discomfort from conflicting beliefs"
+ },
+ {
+ "front": "Define operant conditioning",
+ "back": "Learning through rewards and punishments"
+ },
+ {
+ "front": "What is the amygdala?",
+ "back": "Brain region that processes emotions and fear"
+ },
+ {
+ "front": "What does the prefrontal cortex do?",
+ "back": "Involved in decision-making and self-control"
+ },
+ {
+ "front": "Define classical conditioning",
+ "back": "Learning through association between stimuli"
+ }
+ ]
+ },
+ {
+ "subject": "Biology",
+ "cards": [
+ {
+ "front": "What is mitosis?",
+ "back": "Cell division creating identical diploid cells"
+ },
+ {
+ "front": "Define photosynthesis",
+ "back": "Process plants use to convert light into energy"
+ },
+ {
+ "front": "What is DNA?",
+ "back": "Genetic material containing hereditary information"
+ },
+ {
+ "front": "What is the function of mitochondria?",
+ "back": "Produces energy through cellular respiration"
+ },
+ {
+ "front": "Define osmosis",
+ "back": "Movement of water across a semi-permeable membrane"
+ }
+ ]
+ },
+ {
+ "subject": "History",
+ "cards": [
+ {
+ "front": "Who was the first President of the United States?",
+ "back": "George Washington"
+ },
+ {
+ "front": "What triggered World War I?",
+ "back": "The assassination of Archduke Franz Ferdinand"
+ },
+ {
+ "front": "When did India gain independence?",
+ "back": "August 15, 1947"
+ },
+ {
+ "front": "What was the Cold War?",
+ "back": "Period of political tension between the US and USSR"
+ },
+ {
+ "front": "Who was Napoleon Bonaparte?",
+ "back": "French military leader who rose to power after the French Revolution"
+ }
+ ]
+ }
+ ]
+};
+
+// Sample quiz results data
+export const quizResultsData = [
+ { date: "28-06-2025", subject: "Psychology", score: 92, timeTaken: 8.5, questionsTotal: 10, questionsCorrect: 9 },
+ { date: "27-06-2025", subject: "Biology", score: 87, timeTaken: 12.3, questionsTotal: 15, questionsCorrect: 13 },
+ { date: "26-06-2025", subject: "History", score: 95, timeTaken: 6.2, questionsTotal: 8, questionsCorrect: 8 },
+ { date: "25-06-2025", subject: "Psychology", score: 83, timeTaken: 9.1, questionsTotal: 12, questionsCorrect: 10 },
+ { date: "24-06-2025", subject: "Biology", score: 91, timeTaken: 10.8, questionsTotal: 11, questionsCorrect: 10 }
+];
+
+// Sample study progress data
+export const studyProgressData = {
+ "user": {
+ "name": "Alex Johnson",
+ "studyStreak": 15,
+ "totalStudyHours": 67,
+ "cardsReviewed": 342,
+ "quizzesTaken": 28,
+ "averageScore": 88.5,
+ "level": 7,
+ "xpPoints": 2450
+ },
+ "subjects": [
+ {"name": "Psychology", "progress": 75, "lastStudied": "2025-06-27"},
+ {"name": "Biology", "progress": 62, "lastStudied": "2025-06-26"},
+ {"name": "History", "progress": 89, "lastStudied": "2025-06-28"}
+ ],
+ "achievements": [
+ {"name": "Study Streak Master", "unlocked": true},
+ {"name": "Quiz Champion", "unlocked": true},
+ {"name": "Flashcard Expert", "unlocked": false}
+ ]
+};
+
+// Sample AI responses for chat
+export const aiResponses = [
+ "I'd be happy to help you with that concept. Can you tell me more about what specific aspect you're struggling with?",
+ "That's a great question! Let me break this down into simpler terms for you.",
+ "Based on your recent study sessions, I notice you might benefit from reviewing this topic again.",
+ "Excellent work! You're showing great progress in this subject area.",
+ "I recommend focusing on the key concepts we discussed earlier. Would you like me to create some practice questions?"
+]; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/index.html b/coverage/StudyMaster/src/index.html
new file mode 100644
index 0000000..4d2ce1e
--- /dev/null
+++ b/coverage/StudyMaster/src/index.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/88
+
+
+
+
+ 0%
+ Branches
+ 0/2
+
+
+
+
+ 0%
+ Functions
+ 0/2
+
+
+
+
+ 0%
+ Lines
+ 0/88
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | App.tsx |
+
+
+ |
+ 0% |
+ 0/78 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/78 |
+
+
+
+ | main.tsx |
+
+
+ |
+ 0% |
+ 0/10 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/10 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/src/main.tsx.html b/coverage/StudyMaster/src/main.tsx.html
new file mode 100644
index 0000000..a4223d2
--- /dev/null
+++ b/coverage/StudyMaster/src/main.tsx.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/src/main.tsx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/10
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/10
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11 |
+
+
+
+
+
+
+
+
+
+ | import { StrictMode } from 'react';
+import { createRoot } from 'react-dom/client';
+import App from './App.tsx';
+import './index.css';
+
+createRoot(document.getElementById('root')!).render(
+ <StrictMode>
+ <App />
+ </StrictMode>
+);
+ |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/StudyMaster/tailwind.config.js.html b/coverage/StudyMaster/tailwind.config.js.html
new file mode 100644
index 0000000..d51c03c
--- /dev/null
+++ b/coverage/StudyMaster/tailwind.config.js.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+ Code coverage report for StudyMaster/tailwind.config.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0%
+ Statements
+ 0/25
+
+
+
+
+ 0%
+ Branches
+ 0/1
+
+
+
+
+ 0%
+ Functions
+ 0/1
+
+
+
+
+ 0%
+ Lines
+ 0/25
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+| 1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | /** @type {import('tailwindcss').Config} */
+export default {
+ content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
+ darkMode: 'class',
+ theme: {
+ extend: {
+ screens: {
+ 'xs': '475px',
+ },
+ spacing: {
+ 'safe-top': 'env(safe-area-inset-top)',
+ 'safe-bottom': 'env(safe-area-inset-bottom)',
+ 'safe-left': 'env(safe-area-inset-left)',
+ 'safe-right': 'env(safe-area-inset-right)',
+ },
+ minHeight: {
+ 'screen-safe': 'calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))',
+ },
+ maxHeight: {
+ 'screen-safe': 'calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))',
+ },
+ },
+ },
+ plugins: [],
+}; |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/base.css b/coverage/base.css
new file mode 100644
index 0000000..f418035
--- /dev/null
+++ b/coverage/base.css
@@ -0,0 +1,224 @@
+body, html {
+ margin:0; padding: 0;
+ height: 100%;
+}
+body {
+ font-family: Helvetica Neue, Helvetica, Arial;
+ font-size: 14px;
+ color:#333;
+}
+.small { font-size: 12px; }
+*, *:after, *:before {
+ -webkit-box-sizing:border-box;
+ -moz-box-sizing:border-box;
+ box-sizing:border-box;
+ }
+h1 { font-size: 20px; margin: 0;}
+h2 { font-size: 14px; }
+pre {
+ font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
+ margin: 0;
+ padding: 0;
+ -moz-tab-size: 2;
+ -o-tab-size: 2;
+ tab-size: 2;
+}
+a { color:#0074D9; text-decoration:none; }
+a:hover { text-decoration:underline; }
+.strong { font-weight: bold; }
+.space-top1 { padding: 10px 0 0 0; }
+.pad2y { padding: 20px 0; }
+.pad1y { padding: 10px 0; }
+.pad2x { padding: 0 20px; }
+.pad2 { padding: 20px; }
+.pad1 { padding: 10px; }
+.space-left2 { padding-left:55px; }
+.space-right2 { padding-right:20px; }
+.center { text-align:center; }
+.clearfix { display:block; }
+.clearfix:after {
+ content:'';
+ display:block;
+ height:0;
+ clear:both;
+ visibility:hidden;
+ }
+.fl { float: left; }
+@media only screen and (max-width:640px) {
+ .col3 { width:100%; max-width:100%; }
+ .hide-mobile { display:none!important; }
+}
+
+.quiet {
+ color: #7f7f7f;
+ color: rgba(0,0,0,0.5);
+}
+.quiet a { opacity: 0.7; }
+
+.fraction {
+ font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
+ font-size: 10px;
+ color: #555;
+ background: #E8E8E8;
+ padding: 4px 5px;
+ border-radius: 3px;
+ vertical-align: middle;
+}
+
+div.path a:link, div.path a:visited { color: #333; }
+table.coverage {
+ border-collapse: collapse;
+ margin: 10px 0 0 0;
+ padding: 0;
+}
+
+table.coverage td {
+ margin: 0;
+ padding: 0;
+ vertical-align: top;
+}
+table.coverage td.line-count {
+ text-align: right;
+ padding: 0 5px 0 20px;
+}
+table.coverage td.line-coverage {
+ text-align: right;
+ padding-right: 10px;
+ min-width:20px;
+}
+
+table.coverage td span.cline-any {
+ display: inline-block;
+ padding: 0 5px;
+ width: 100%;
+}
+.missing-if-branch {
+ display: inline-block;
+ margin-right: 5px;
+ border-radius: 3px;
+ position: relative;
+ padding: 0 4px;
+ background: #333;
+ color: yellow;
+}
+
+.skip-if-branch {
+ display: none;
+ margin-right: 10px;
+ position: relative;
+ padding: 0 4px;
+ background: #ccc;
+ color: white;
+}
+.missing-if-branch .typ, .skip-if-branch .typ {
+ color: inherit !important;
+}
+.coverage-summary {
+ border-collapse: collapse;
+ width: 100%;
+}
+.coverage-summary tr { border-bottom: 1px solid #bbb; }
+.keyline-all { border: 1px solid #ddd; }
+.coverage-summary td, .coverage-summary th { padding: 10px; }
+.coverage-summary tbody { border: 1px solid #bbb; }
+.coverage-summary td { border-right: 1px solid #bbb; }
+.coverage-summary td:last-child { border-right: none; }
+.coverage-summary th {
+ text-align: left;
+ font-weight: normal;
+ white-space: nowrap;
+}
+.coverage-summary th.file { border-right: none !important; }
+.coverage-summary th.pct { }
+.coverage-summary th.pic,
+.coverage-summary th.abs,
+.coverage-summary td.pct,
+.coverage-summary td.abs { text-align: right; }
+.coverage-summary td.file { white-space: nowrap; }
+.coverage-summary td.pic { min-width: 120px !important; }
+.coverage-summary tfoot td { }
+
+.coverage-summary .sorter {
+ height: 10px;
+ width: 7px;
+ display: inline-block;
+ margin-left: 0.5em;
+ background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
+}
+.coverage-summary .sorted .sorter {
+ background-position: 0 -20px;
+}
+.coverage-summary .sorted-desc .sorter {
+ background-position: 0 -10px;
+}
+.status-line { height: 10px; }
+/* yellow */
+.cbranch-no { background: yellow !important; color: #111; }
+/* dark red */
+.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
+.low .chart { border:1px solid #C21F39 }
+.highlighted,
+.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
+ background: #C21F39 !important;
+}
+/* medium red */
+.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
+/* light red */
+.low, .cline-no { background:#FCE1E5 }
+/* light green */
+.high, .cline-yes { background:rgb(230,245,208) }
+/* medium green */
+.cstat-yes { background:rgb(161,215,106) }
+/* dark green */
+.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
+.high .chart { border:1px solid rgb(77,146,33) }
+/* dark yellow (gold) */
+.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
+.medium .chart { border:1px solid #f9cd0b; }
+/* light yellow */
+.medium { background: #fff4c2; }
+
+.cstat-skip { background: #ddd; color: #111; }
+.fstat-skip { background: #ddd; color: #111 !important; }
+.cbranch-skip { background: #ddd !important; color: #111; }
+
+span.cline-neutral { background: #eaeaea; }
+
+.coverage-summary td.empty {
+ opacity: .5;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ line-height: 1;
+ color: #888;
+}
+
+.cover-fill, .cover-empty {
+ display:inline-block;
+ height: 12px;
+}
+.chart {
+ line-height: 0;
+}
+.cover-empty {
+ background: white;
+}
+.cover-full {
+ border-right: none !important;
+}
+pre.prettyprint {
+ border: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+}
+.com { color: #999 !important; }
+.ignore-none { color: #999; font-weight: normal; }
+
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -48px;
+}
+.footer, .push {
+ height: 48px;
+}
diff --git a/coverage/block-navigation.js b/coverage/block-navigation.js
new file mode 100644
index 0000000..cc12130
--- /dev/null
+++ b/coverage/block-navigation.js
@@ -0,0 +1,87 @@
+/* eslint-disable */
+var jumpToCode = (function init() {
+ // Classes of code we would like to highlight in the file view
+ var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
+
+ // Elements to highlight in the file listing view
+ var fileListingElements = ['td.pct.low'];
+
+ // We don't want to select elements that are direct descendants of another match
+ var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
+
+ // Selecter that finds elements on the page to which we can jump
+ var selector =
+ fileListingElements.join(', ') +
+ ', ' +
+ notSelector +
+ missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
+
+ // The NodeList of matching elements
+ var missingCoverageElements = document.querySelectorAll(selector);
+
+ var currentIndex;
+
+ function toggleClass(index) {
+ missingCoverageElements
+ .item(currentIndex)
+ .classList.remove('highlighted');
+ missingCoverageElements.item(index).classList.add('highlighted');
+ }
+
+ function makeCurrent(index) {
+ toggleClass(index);
+ currentIndex = index;
+ missingCoverageElements.item(index).scrollIntoView({
+ behavior: 'smooth',
+ block: 'center',
+ inline: 'center'
+ });
+ }
+
+ function goToPrevious() {
+ var nextIndex = 0;
+ if (typeof currentIndex !== 'number' || currentIndex === 0) {
+ nextIndex = missingCoverageElements.length - 1;
+ } else if (missingCoverageElements.length > 1) {
+ nextIndex = currentIndex - 1;
+ }
+
+ makeCurrent(nextIndex);
+ }
+
+ function goToNext() {
+ var nextIndex = 0;
+
+ if (
+ typeof currentIndex === 'number' &&
+ currentIndex < missingCoverageElements.length - 1
+ ) {
+ nextIndex = currentIndex + 1;
+ }
+
+ makeCurrent(nextIndex);
+ }
+
+ return function jump(event) {
+ if (
+ document.getElementById('fileSearch') === document.activeElement &&
+ document.activeElement != null
+ ) {
+ // if we're currently focused on the search input, we don't want to navigate
+ return;
+ }
+
+ switch (event.which) {
+ case 78: // n
+ case 74: // j
+ goToNext();
+ break;
+ case 66: // b
+ case 75: // k
+ case 80: // p
+ goToPrevious();
+ break;
+ }
+ };
+})();
+window.addEventListener('keydown', jumpToCode);
diff --git a/coverage/clover.xml b/coverage/clover.xml
new file mode 100644
index 0000000..a1472ed
--- /dev/null
+++ b/coverage/clover.xml
@@ -0,0 +1,4720 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json
new file mode 100644
index 0000000..d6e735b
--- /dev/null
+++ b/coverage/coverage-final.json
@@ -0,0 +1,21 @@
+{"/home/runner/work/StudyMaster/StudyMaster/playwright.config.ts": {"path":"/home/runner/work/StudyMaster/StudyMaster/playwright.config.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":57}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":23}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":22}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":31}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":34}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":42}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":19}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":8}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":37}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":28}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":4}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":13}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":5}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":23}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":44}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":6}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":4}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":14}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":31}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":15}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":4}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":3}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":24,"column":-101}},"locations":[{"start":{"line":1,"column":0},"end":{"line":24,"column":-101}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":24,"column":-101}},"loc":{"start":{"line":1,"column":0},"end":{"line":24,"column":-101}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/postcss.config.js": {"path":"/home/runner/work/StudyMaster/StudyMaster/postcss.config.js","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":16}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":12}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":20}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":21}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":4}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":2}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":-11}},"locations":[{"start":{"line":1,"column":0},"end":{"line":6,"column":-11}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":6,"column":-11}},"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":-11}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/tailwind.config.js": {"path":"/home/runner/work/StudyMaster/StudyMaster/tailwind.config.js","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":43}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":16}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":58}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":20}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":10}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":16}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":22}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":8}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":16}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":53}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":49}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":51}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":8}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":18}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":94}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":8}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":18}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":94}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":8}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":6}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":4}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":14}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":2}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":25,"column":-13}},"locations":[{"start":{"line":1,"column":0},"end":{"line":25,"column":-13}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":25,"column":-13}},"loc":{"start":{"line":1,"column":0},"end":{"line":25,"column":-13}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/App.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/App.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":56}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":41}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":47}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":49}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":37}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":49}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":47}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":49}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":53}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":47}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":55}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":45}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":41}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":0}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":16}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":66}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":54}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":56}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":37}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":28}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":23}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":29}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":24}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":30}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":18}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":24}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":20}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":30}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":23}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":29}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":25}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":30}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":26}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":32}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":23}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":29}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":20}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":33}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":22}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":28}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":14}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":29}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":5}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":4}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":0}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":10}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":81}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":17}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":40}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":45}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":30}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":47}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":10}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":8}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":70}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":18}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":36}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":41}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":52}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":12}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":10}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":51}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":35}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":17}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":14}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":0}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":33}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":75}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":12}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":20}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":4}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":1}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":0}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":19}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":78,"column":-1392}},"locations":[{"start":{"line":1,"column":0},"end":{"line":78,"column":-1392}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":78,"column":-1392}},"loc":{"start":{"line":1,"column":0},"end":{"line":78,"column":-1392}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/main.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/main.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":35}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":46}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":21}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":52}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":14}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":11}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":15}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":2}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":233},"end":{"line":10,"column":2}},"locations":[{"start":{"line":1,"column":233},"end":{"line":10,"column":2}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":233},"end":{"line":10,"column":2}},"loc":{"start":{"line":1,"column":233},"end":{"line":10,"column":2}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/AIChat.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/AIChat.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":56}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":100}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":0}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":19}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":15}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":24}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":18}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":25}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":1}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":0}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":23}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":18}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":22}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":1}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":64}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":55}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":5}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":14}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":210}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":19}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":28}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":20}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":42}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":43}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":37}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":36}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":7}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":5}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":49}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":50}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":54}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":50}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":0}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":23}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":91}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":128}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":121}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":116}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":124}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":116}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":109}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":132}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":4}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":0}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":32}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":67}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":4}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":0}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":19}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":21}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":17}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":0}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":19}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":37}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":31}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":5}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":15}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":0}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":41}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":34}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":0}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":34}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":32}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":22}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":27}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":6}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":0}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":48}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":21}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":22}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":0}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":33}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":22}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":35}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":40}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":74}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":21}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":30}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":44}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":33}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":29}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":36}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":29}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":21}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":8}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":0}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":49}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":25}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":36}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":4}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":0}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":57}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":29}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":27}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":31}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":5}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":4}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":0}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":38}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":79}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":4}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":0}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":10}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":6}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":32}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":23}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":21}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":24}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":46}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":46}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":43}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":43}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":275}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":39}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":37}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":11}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":63}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":123}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":26}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":10}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":24}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":0}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":24}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":23}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":20}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":21}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":52}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":48}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":49}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":241}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":11}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":26}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":183}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":55}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":99}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":50}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":22}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":21}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":92}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":78}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":22}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":20}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":21}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":33}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":148}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":15}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":41}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":23}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":18}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":0}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":28}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":66}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":42}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":20}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":34}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":99}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":17}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":115}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":121}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":48}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":51}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":83}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":24}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":138}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":26}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":77}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":47}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":64}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":100}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":24}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":74}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":52}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":104}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":26}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":55}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":26}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":26}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":24}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":22}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":17}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":0}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":33}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":84}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":54}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":90}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":27}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":33}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":71}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":225}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":21}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":34}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":29}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":21}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":22}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":16}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":0}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":38}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":28}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":52}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":58}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":175}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":63}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":26}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":118}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":50}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":95}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":130}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":130}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":28}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":26}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":24}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":22}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":16}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":0}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":42}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":18}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":0}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":33}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":86}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":56}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":23}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":90}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":251}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":17}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":61}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":56}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":25}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":23}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":83}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":257}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":17}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":64}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":55}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":25}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":23}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":85}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":263}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":17}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":62}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":55}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":25}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":20}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":0}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":27}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":42}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":22}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":32}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":29}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":35}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":64}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":78}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":50}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":244}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":18}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":23}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":45}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":58}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":176}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":17}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":46}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":25}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":20}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":18}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":23}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":10}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":24}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":7}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":4}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":2}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":0}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":22}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":276,"column":-5632}},"locations":[{"start":{"line":1,"column":0},"end":{"line":276,"column":-5632}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":276,"column":-5632}},"loc":{"start":{"line":1,"column":0},"end":{"line":276,"column":-5632}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Achievements.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Achievements.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":10}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":9}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":8}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":10}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":9}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":9}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":9}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":11}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":6}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":8}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":8}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":9}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":6}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":22}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":0}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":23}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":13}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":16}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":22}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":24}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":20}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":19}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":22}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":51}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":61}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":24}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":19}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":1}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":0}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":38}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":39}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":5}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":14}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":27}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":55}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":45}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":21}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":18}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":21}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":23}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":24}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":33}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":19}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":6}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":5}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":14}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":27}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":55}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":42}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":21}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":19}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":22}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":21}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":23}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":33}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":19}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":6}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":5}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":14}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":28}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":50}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":42}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":21}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":18}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":21}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":25}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":33}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":19}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":6}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":5}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":28}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":56}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":42}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":22}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":19}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":22}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":21}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":23}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":19}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":6}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":5}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":14}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":30}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":44}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":40}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":22}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":20}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":24}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":21}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":24}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":19}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":6}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":5}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":14}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":29}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":46}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":41}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":22}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":18}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":21}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":21}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":23}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":19}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":6}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":5}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":14}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":32}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":51}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":43}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":22}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":19}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":22}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":21}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":25}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":19}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":6}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":5}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":14}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":33}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":52}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":42}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":22}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":18}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":21}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":26}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":26}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":20}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":6}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":5}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":14}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":27}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":56}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":40}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":22}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":18}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":21}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":21}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":23}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":19}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":6}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":5}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":15}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":32}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":47}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":42}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":22}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":19}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":23}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":26}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":23}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":20}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":5}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":4}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":0}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":46}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":21}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":56}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":54}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":58}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":63}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":50}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":5}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":4}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":0}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":47}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":21}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":67}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":65}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":69}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":74}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":61}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":5}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":4}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":0}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":49}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":23}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":60}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":56}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":58}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":56}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":59}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":53}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":5}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":4}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":0}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":48}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":75}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":95}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":75}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":0}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":75}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":72}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":0}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":58}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":19}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":64}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":0}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":10}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":35}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":20}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":57}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":13}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":92}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":63}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":61}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":14}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":14}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":94}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":40}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":42}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":14}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":12}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":0}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":31}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":61}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":110}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":66}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":116}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":81}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":18}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":16}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":102}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":83}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":14}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":0}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":110}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":66}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":112}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":77}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":18}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":16}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":110}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":78}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":14}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":0}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":110}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":66}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":116}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":79}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":18}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":16}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":89}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":70}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":14}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":0}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":110}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":66}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":114}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":78}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":18}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":16}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":75}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":85}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":15}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":80}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":14}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":12}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":0}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":30}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":108}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":96}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":46}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":41}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":19}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":28}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":59}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":103}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":45}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":44}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":124}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":17}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":13}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":63}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":60}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":51}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":119}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":21}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":21}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":13}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":14}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":12}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":0}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":31}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":76}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":59}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":21}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":32}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":43}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":42}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":47}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":140}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":54}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":15}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":11}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":37}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":148}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":12}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":56}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":39}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":120}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":118}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":57}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":22}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":20}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":14}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":0}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":38}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":38}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":159}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":55}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":18}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":34}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":20}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":0}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":38}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":36}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":72}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":102}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":59}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":59}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":83}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":132}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":127}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":119}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":85}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":24}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":42}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":27}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":24}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":22}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":77}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":43}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":20}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":20}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":0}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":34}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":36}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":72}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":89}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":28}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":25}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":77}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":68}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":25}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":22}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":86}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":22}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":133}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":99}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":20}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":22}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":20}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":0}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":35}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":65}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":57}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":62}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":86}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":45}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":25}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":22}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":70}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":77}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":55}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":25}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":18}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":20}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":18}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":23}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":11}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":12}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":0}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":30}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":94}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":75}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":40}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":26}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":13}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":63}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":15}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":65}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":49}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":80}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":16}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":16}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":15}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":68}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":49}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":77}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":16}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":16}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":15}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":70}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":49}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":90}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":16}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":16}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":14}},"403":{"start":{"line":404,"column":0},"end":{"line":404,"column":12}},"404":{"start":{"line":405,"column":0},"end":{"line":405,"column":10}},"405":{"start":{"line":406,"column":0},"end":{"line":406,"column":4}},"406":{"start":{"line":407,"column":0},"end":{"line":407,"column":2}},"407":{"start":{"line":408,"column":0},"end":{"line":408,"column":0}},"408":{"start":{"line":409,"column":0},"end":{"line":409,"column":28}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":409,"column":-8184}},"locations":[{"start":{"line":1,"column":0},"end":{"line":409,"column":-8184}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":409,"column":-8184}},"loc":{"start":{"line":1,"column":0},"end":{"line":409,"column":-8184}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Analytics.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Analytics.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":218}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":117}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":0}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":35}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":27}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":29}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":61}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":61}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":61}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":61}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":61}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":61}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":60}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":4}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":0}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":30}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":74}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":71}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":71}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":75}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":70}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":4}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":0}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":27}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":58}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":55}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":55}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":53}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":4}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":0}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":26}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":49}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":51}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":56}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":48}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":51}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":51}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":4}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":0}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":23}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":45}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":45}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":45}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":45}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":45}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":45}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":44}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":4}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":0}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":10}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":35}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":20}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":57}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":13}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":95}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":63}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":65}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":14}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":14}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":90}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":39}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":42}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":14}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":12}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":0}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":25}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":76}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":110}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":66}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":112}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":76}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":18}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":62}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":53}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":51}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":18}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":16}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":85}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":79}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":14}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":0}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":110}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":66}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":114}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":79}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":18}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":62}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":53}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":50}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":18}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":16}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":85}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":78}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":14}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":0}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":110}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":66}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":116}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":78}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":18}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":60}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":55}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":50}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":18}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":16}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":83}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":76}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":14}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":0}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":110}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":66}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":116}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":80}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":18}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":62}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":53}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":49}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":18}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":16}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":82}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":72}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":14}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":12}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":0}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":26}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":61}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":36}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":110}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":112}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":57}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":48}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":70}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":55}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":40}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":23}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":32}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":46}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":34}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":38}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":31}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":18}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":16}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":19}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":31}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":31}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":32}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":39}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":31}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":16}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":20}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":76}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":75}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":74}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":33}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":21}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":24}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":32}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":14}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":0}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":35}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":110}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":107}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":57}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":48}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":70}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":58}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":40}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":23}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":32}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":46}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":34}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":38}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":31}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":18}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":16}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":77}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":23}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":32}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":14}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":12}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":0}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":26}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":61}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":42}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":110}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":101}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":57}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":22}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":18}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":38}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":24}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":24}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":32}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":32}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":32}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":31}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":15}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":56}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":67}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":19}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":20}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":25}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":23}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":32}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":55}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":53}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":67}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":21}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":51}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":59}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":18}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":75}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":33}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":23}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":20}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":15}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":16}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":14}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":0}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":28}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":110}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":105}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":57}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":46}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":27}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":48}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":62}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":20}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":30}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":33}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":32}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":30}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":33}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":16}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":20}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":29}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":32}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":32}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":30}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":33}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":16}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":25}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":25}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":32}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":14}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":0}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":28}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":110}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":100}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":57}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":41}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":70}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":54}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":40}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":23}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":32}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":46}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":34}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":38}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":31}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":18}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":16}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":75}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":77}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":23}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":32}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":14}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":12}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":0}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":40}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":94}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":75}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":39}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":29}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":13}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":63}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":54}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":66}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":49}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":124}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":16}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":16}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":54}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":66}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":49}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":112}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":16}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":16}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":54}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":62}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":49}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":114}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":16}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":16}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":14}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":12}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":0}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":33}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":61}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":33}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":110}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":105}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":37}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":57}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":31}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":72}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":110}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":104}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":22}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":86}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":22}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":121}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":62}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":20}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":22}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":20}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":15}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":16}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":14}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":0}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":29}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":110}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":108}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":37}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":53}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":118}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":82}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":20}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":19}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":96}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":90}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":20}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":18}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":53}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":116}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":81}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":20}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":19}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":92}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":86}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":20}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":18}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":53}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":114}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":81}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":20}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":19}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":96}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":86}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":20}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":18}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":16}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":14}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":12}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":10}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":4}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":2}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":0}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":25}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":360,"column":-10401}},"locations":[{"start":{"line":1,"column":0},"end":{"line":360,"column":-10401}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":360,"column":-10401}},"loc":{"start":{"line":1,"column":0},"end":{"line":360,"column":-10401}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Dashboard.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Dashboard.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":134}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":98}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":72}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":35}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":23}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":52}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":57}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":24}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":26}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":6}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":0}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":66}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":23}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":30}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":6}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":0}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":10}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":55}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":29}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":177}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":32}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":113}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":126}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":14}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":13}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":42}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":25}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":96}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":10}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":12}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":0}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":24}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":70}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":117}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":74}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":132}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":94}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":18}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":75}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":16}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":127}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":97}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":14}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":0}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":117}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":74}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":128}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":90}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":18}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":75}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":16}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":132}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":97}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":14}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":0}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":117}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":74}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":130}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":93}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":18}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":75}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":16}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":129}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":94}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":14}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":0}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":117}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":74}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":132}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":94}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":18}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":75}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":16}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":129}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":95}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":14}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":12}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":0}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":28}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":70}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":33}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":117}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":104}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":82}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":40}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":70}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":69}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":54}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":23}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":32}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":46}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":34}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":38}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":32}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":34}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":18}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":16}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":19}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":31}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":31}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":32}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":39}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":31}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":16}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":20}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":76}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":75}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":74}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":33}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":21}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":24}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":32}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":14}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":0}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":32}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":117}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":104}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":82}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":41}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":70}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":69}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":54}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":23}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":32}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":46}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":34}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":38}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":32}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":34}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":18}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":16}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":77}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":23}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":32}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":14}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":12}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":0}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":40}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":70}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":31}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":117}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":103}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":50}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":65}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":76}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":144}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":97}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":22}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":48}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":130}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":127}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":22}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":58}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":106}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":22}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":20}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":15}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":16}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":14}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":0}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":28}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":117}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":100}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":50}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":73}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":76}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":117}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":39}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":57}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":52}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":20}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":61}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":41}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":63}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":39}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":24}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":22}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":48}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":77}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":41}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":56}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":58}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":22}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":38}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":22}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":85}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":84}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":22}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":22}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":20}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":15}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":16}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":14}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":12}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":10}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":4}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":2}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":0}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":25}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":201,"column":-6556}},"locations":[{"start":{"line":1,"column":0},"end":{"line":201,"column":-6556}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":201,"column":-6556}},"loc":{"start":{"line":1,"column":0},"end":{"line":201,"column":-6556}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/FileUpload.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/FileUpload.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":53}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":45}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":81}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":56}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":13}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":15}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":15}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":15}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":15}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":1}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":0}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":36}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":73}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":58}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":57}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":26}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":4}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":31}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":22}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":67}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":52}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":24}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":24}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":24}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":38}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":10}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":6}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":55}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":29}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":13}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":9}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":0}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":69}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":11}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":13}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":34}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":29}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":37}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":91}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":51}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":42}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":41}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":5}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":5}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":0}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":38}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":66}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":4}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":0}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":41}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":72}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":71}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":72}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":44}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":4}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":0}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":45}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":38}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":19}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":46}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":56}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":76}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":4}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":0}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":10}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":35}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":57}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":13}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":102}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":63}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":86}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":14}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":90}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":42}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":44}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":14}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":12}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":0}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":25}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":17}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":27}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":116}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":22}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":62}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":101}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":11}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":36}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":34}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":7}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":38}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":19}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":41}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":40}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":31}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":9}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":120}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":75}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":16}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":15}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":85}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":83}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":17}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":60}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":56}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":16}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":73}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":69}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":16}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":16}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":21}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":19}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":0}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":34}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":23}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":26}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":21}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":47}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":52}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":44}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":113}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":11}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":53}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":117}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":19}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":107}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":72}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":76}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":20}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":20}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":18}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":23}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":10}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":24}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":0}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":28}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":36}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":35}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":97}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":80}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":42}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":25}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":29}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":52}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":50}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":112}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":15}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":71}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":151}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":44}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":24}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":25}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":55}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":82}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":19}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":45}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":27}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":22}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":99}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":103}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":49}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":133}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":34}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":27}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":195}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":24}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":27}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":22}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":27}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":15}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":16}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":14}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":8}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":0}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":25}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":94}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":84}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":44}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":84}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":12}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":63}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":54}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":66}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":87}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":16}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":54}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":66}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":88}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":16}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":54}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":65}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":87}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":16}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":14}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":12}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":10}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":4}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":2}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":0}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":26}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":203,"column":-4435}},"locations":[{"start":{"line":1,"column":0},"end":{"line":203,"column":-4435}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":203,"column":-4435}},"loc":{"start":{"line":1,"column":0},"end":{"line":203,"column":-4435}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Flashcards.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Flashcards.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":100}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":56}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":16}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":16}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":15}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":1}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":0}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":36}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":90}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":62}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":52}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":76}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":0}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":90}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":59}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":0}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":26}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":73}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":44}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":26}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":5}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":4}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":0}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":26}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":31}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":44}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":26}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":4}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":0}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":30}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":27}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":24}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":50}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":4}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":0}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":31}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":27}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":24}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":4}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":0}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":10}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":35}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":20}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":87}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":13}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":90}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":100}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":14}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":8}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":49}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":17}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":29}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":81}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":144}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":11}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":55}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":61}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":19}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":10}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":17}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":34}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":127}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":11}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":43}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":19}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":19}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":14}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":12}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":0}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":26}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":44}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":45}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":17}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":30}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":28}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":47}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":37}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":34}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":14}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":77}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":46}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":42}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":122}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":15}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":11}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":26}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":82}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":19}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":11}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":12}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":0}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":22}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":108}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":64}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":81}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":70}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":17}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":69}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":101}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":17}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":14}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":78}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":14}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":80}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":20}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":92}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":14}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":12}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":14}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":12}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":0}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":23}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":43}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":42}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":21}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":54}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":45}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":11}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":23}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":63}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":54}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":56}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":60}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":55}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":13}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":35}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":18}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":186}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":56}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":15}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":45}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":77}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":83}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":40}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":22}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":79}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":42}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":22}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":22}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":20}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":0}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":34}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":18}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":162}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":25}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":47}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":46}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":18}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":15}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":56}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":60}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":53}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":39}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":22}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":60}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":47}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":22}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":22}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":20}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":25}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":23}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":14}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":12}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":0}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":22}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":62}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":15}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":28}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":43}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":207}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":9}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":45}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":17}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":0}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":15}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":33}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":159}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":9}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":43}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":17}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":0}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":15}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":28}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":86}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":207}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":9}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":46}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":17}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":12}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":0}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":24}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":93}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":66}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":63}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":15}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":63}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":92}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":16}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":15}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":67}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":90}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":16}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":15}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":65}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":90}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":16}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":14}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":12}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":10}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":4}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":2}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":0}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":26}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":217,"column":-4430}},"locations":[{"start":{"line":1,"column":0},"end":{"line":217,"column":-4430}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":217,"column":-4430}},"loc":{"start":{"line":1,"column":0},"end":{"line":217,"column":-4430}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Header.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Header.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":76}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":52}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":55}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":23}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":22}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":41}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":27}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":1}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":0}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":87}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":45}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":0}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":10}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":114}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":57}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":34}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":15}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":31}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":139}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":9}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":38}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":17}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":0}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":22}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":54}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":36}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":107}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":18}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":25}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":65}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":259}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":14}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":16}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":14}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":0}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":26}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":58}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":32}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":17}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":54}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":78}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":25}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":82}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":93}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":15}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":11}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":49}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":0}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":31}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":147}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":40}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":90}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":19}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":0}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":30}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":17}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":33}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":131}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":11}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":81}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":19}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":0}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":30}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":60}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":56}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":81}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":45}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":20}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":72}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":91}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":20}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":18}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":189}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":78}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":18}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":16}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":14}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":12}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":13}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":4}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":2}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":0}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":22}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":86,"column":-1606}},"locations":[{"start":{"line":1,"column":0},"end":{"line":86,"column":-1606}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":86,"column":-1606}},"loc":{"start":{"line":1,"column":0},"end":{"line":86,"column":-1606}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Materials.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Materials.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":56}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":12}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":9}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":8}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":12}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":7}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":9}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":10}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":7}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":9}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":9}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":10}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":7}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":11}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":6}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":7}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":15}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":9}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":8}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":22}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":0}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":20}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":13}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":15}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":61}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":15}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":21}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":23}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":17}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":20}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":20}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":21}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":23}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":18}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":1}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":0}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":35}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":68}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":82}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":107}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":53}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":70}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":0}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":33}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":5}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":14}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":37}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":18}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":30}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":31}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":33}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":55}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":21}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":19}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":84}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":26}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":6}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":5}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":14}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":36}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":18}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":20}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":31}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":33}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":45}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":22}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":19}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":67}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":23}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":6}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":5}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":43}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":20}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":19}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":31}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":33}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":46}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":21}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":64}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":23}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":6}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":5}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":14}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":34}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":20}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":30}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":31}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":33}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":47}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":22}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":19}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":68}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":25}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":6}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":5}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":14}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":33}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":18}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":19}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":31}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":33}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":53}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":21}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":73}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":27}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":6}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":5}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":14}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":36}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":20}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":20}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":31}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":33}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":46}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":22}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":19}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":64}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":23}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":5}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":4}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":0}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":96}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":0}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":41}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":19}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":57}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":56}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":57}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":55}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":5}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":4}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":0}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":42}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":19}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":85}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":89}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":95}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":99}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":99}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":86}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":5}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":4}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":0}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":45}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":38}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":19}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":46}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":56}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":76}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":4}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":0}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":46}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":53}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":4}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":0}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":37}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":25}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":77}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":87}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":92}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":106}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":18}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":6}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":21}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":23}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":57}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":96}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":44}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":57}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":26}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":7}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":7}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":0}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":10}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":35}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":20}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":57}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":13}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":95}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":63}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":59}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":14}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":14}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":197}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":40}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":22}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":17}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":12}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":0}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":32}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":108}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":57}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":24}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":34}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":38}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":109}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":20}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":27}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":72}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":35}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":64}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":240}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":16}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":18}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":16}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":0}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":25}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":38}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":19}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":36}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":65}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":146}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":13}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":38}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":52}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":61}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":25}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":17}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":21}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":0}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":19}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":32}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":68}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":146}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":13}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":52}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":46}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":52}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":51}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":51}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":50}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":21}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":0}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":19}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":28}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":64}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":146}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":13}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":56}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":56}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":56}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":56}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":21}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":0}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":89}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":21}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":51}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":120}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":15}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":47}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":23}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":21}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":51}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":120}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":15}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":44}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":23}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":18}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":16}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":14}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":12}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":0}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":19}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":61}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":110}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":103}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":85}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":14}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":110}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":81}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":75}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":16}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":84}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":14}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":110}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":83}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":54}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":16}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":83}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":14}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":110}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":83}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":32}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":16}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":81}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":14}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":12}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":0}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":33}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":35}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":32}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":21}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":22}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":36}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":36}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":33}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":91}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":11}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":57}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":25}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":33}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":47}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":46}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":51}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":156}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":15}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":71}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":122}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":48}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":24}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":59}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":43}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":79}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":22}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":99}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":58}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":29}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":24}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":22}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":0}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":90}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":33}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":21}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":16}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":42}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":92}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":42}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":22}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":18}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":0}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":53}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":40}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":76}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":96}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":108}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":26}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":90}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":26}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":92}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":66}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":24}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":26}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":24}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":18}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":0}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":59}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":69}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":25}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":36}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":126}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":21}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":27}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":27}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":21}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":48}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":131}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":49}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":27}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":20}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":22}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":0}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":113}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":62}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":64}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":22}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":0}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":44}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":172}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":47}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":24}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":27}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":188}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":52}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":27}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":22}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":27}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":15}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":23}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":13}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":21}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":22}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":36}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":36}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":33}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":120}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":11}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":185}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":52}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":52}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":52}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":56}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":56}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":55}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":18}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":12}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":57}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":25}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":33}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":48}},"403":{"start":{"line":404,"column":0},"end":{"line":404,"column":46}},"404":{"start":{"line":405,"column":0},"end":{"line":405,"column":52}},"405":{"start":{"line":406,"column":0},"end":{"line":406,"column":159}},"406":{"start":{"line":407,"column":0},"end":{"line":407,"column":15}},"407":{"start":{"line":408,"column":0},"end":{"line":408,"column":68}},"408":{"start":{"line":409,"column":0},"end":{"line":409,"column":120}},"409":{"start":{"line":410,"column":0},"end":{"line":410,"column":48}},"410":{"start":{"line":411,"column":0},"end":{"line":411,"column":24}},"411":{"start":{"line":412,"column":0},"end":{"line":412,"column":23}},"412":{"start":{"line":413,"column":0},"end":{"line":413,"column":103}},"413":{"start":{"line":414,"column":0},"end":{"line":414,"column":37}},"414":{"start":{"line":415,"column":0},"end":{"line":415,"column":45}},"415":{"start":{"line":416,"column":0},"end":{"line":416,"column":81}},"416":{"start":{"line":417,"column":0},"end":{"line":417,"column":24}},"417":{"start":{"line":418,"column":0},"end":{"line":418,"column":26}},"418":{"start":{"line":419,"column":0},"end":{"line":419,"column":41}},"419":{"start":{"line":420,"column":0},"end":{"line":420,"column":104}},"420":{"start":{"line":421,"column":0},"end":{"line":421,"column":54}},"421":{"start":{"line":422,"column":0},"end":{"line":422,"column":41}},"422":{"start":{"line":423,"column":0},"end":{"line":423,"column":28}},"423":{"start":{"line":424,"column":0},"end":{"line":424,"column":22}},"424":{"start":{"line":425,"column":0},"end":{"line":425,"column":24}},"425":{"start":{"line":426,"column":0},"end":{"line":426,"column":22}},"426":{"start":{"line":427,"column":0},"end":{"line":427,"column":16}},"427":{"start":{"line":428,"column":0},"end":{"line":428,"column":62}},"428":{"start":{"line":429,"column":0},"end":{"line":429,"column":112}},"429":{"start":{"line":430,"column":0},"end":{"line":430,"column":49}},"430":{"start":{"line":431,"column":0},"end":{"line":431,"column":25}},"431":{"start":{"line":432,"column":0},"end":{"line":432,"column":22}},"432":{"start":{"line":433,"column":0},"end":{"line":433,"column":16}},"433":{"start":{"line":434,"column":0},"end":{"line":434,"column":103}},"434":{"start":{"line":435,"column":0},"end":{"line":435,"column":49}},"435":{"start":{"line":436,"column":0},"end":{"line":436,"column":22}},"436":{"start":{"line":437,"column":0},"end":{"line":437,"column":16}},"437":{"start":{"line":438,"column":0},"end":{"line":438,"column":103}},"438":{"start":{"line":439,"column":0},"end":{"line":439,"column":53}},"439":{"start":{"line":440,"column":0},"end":{"line":440,"column":22}},"440":{"start":{"line":441,"column":0},"end":{"line":441,"column":16}},"441":{"start":{"line":442,"column":0},"end":{"line":442,"column":62}},"442":{"start":{"line":443,"column":0},"end":{"line":443,"column":54}},"443":{"start":{"line":444,"column":0},"end":{"line":444,"column":44}},"444":{"start":{"line":445,"column":0},"end":{"line":445,"column":92}},"445":{"start":{"line":446,"column":0},"end":{"line":446,"column":28}},"446":{"start":{"line":447,"column":0},"end":{"line":447,"column":66}},"447":{"start":{"line":448,"column":0},"end":{"line":448,"column":68}},"448":{"start":{"line":449,"column":0},"end":{"line":449,"column":26}},"449":{"start":{"line":450,"column":0},"end":{"line":450,"column":28}},"450":{"start":{"line":451,"column":0},"end":{"line":451,"column":85}},"451":{"start":{"line":452,"column":0},"end":{"line":452,"column":44}},"452":{"start":{"line":453,"column":0},"end":{"line":453,"column":28}},"453":{"start":{"line":454,"column":0},"end":{"line":454,"column":26}},"454":{"start":{"line":455,"column":0},"end":{"line":455,"column":23}},"455":{"start":{"line":456,"column":0},"end":{"line":456,"column":68}},"456":{"start":{"line":457,"column":0},"end":{"line":457,"column":20}},"457":{"start":{"line":458,"column":0},"end":{"line":458,"column":22}},"458":{"start":{"line":459,"column":0},"end":{"line":459,"column":16}},"459":{"start":{"line":460,"column":0},"end":{"line":460,"column":68}},"460":{"start":{"line":461,"column":0},"end":{"line":461,"column":116}},"461":{"start":{"line":462,"column":0},"end":{"line":462,"column":47}},"462":{"start":{"line":463,"column":0},"end":{"line":463,"column":27}},"463":{"start":{"line":464,"column":0},"end":{"line":464,"column":116}},"464":{"start":{"line":465,"column":0},"end":{"line":465,"column":52}},"465":{"start":{"line":466,"column":0},"end":{"line":466,"column":27}},"466":{"start":{"line":467,"column":0},"end":{"line":467,"column":116}},"467":{"start":{"line":468,"column":0},"end":{"line":468,"column":56}},"468":{"start":{"line":469,"column":0},"end":{"line":469,"column":27}},"469":{"start":{"line":470,"column":0},"end":{"line":470,"column":22}},"470":{"start":{"line":471,"column":0},"end":{"line":471,"column":27}},"471":{"start":{"line":472,"column":0},"end":{"line":472,"column":15}},"472":{"start":{"line":473,"column":0},"end":{"line":473,"column":23}},"473":{"start":{"line":474,"column":0},"end":{"line":474,"column":10}},"474":{"start":{"line":475,"column":0},"end":{"line":475,"column":24}},"475":{"start":{"line":476,"column":0},"end":{"line":476,"column":0}},"476":{"start":{"line":477,"column":0},"end":{"line":477,"column":25}},"477":{"start":{"line":478,"column":0},"end":{"line":478,"column":42}},"478":{"start":{"line":479,"column":0},"end":{"line":479,"column":43}},"479":{"start":{"line":480,"column":0},"end":{"line":480,"column":71}},"480":{"start":{"line":481,"column":0},"end":{"line":481,"column":104}},"481":{"start":{"line":482,"column":0},"end":{"line":482,"column":63}},"482":{"start":{"line":483,"column":0},"end":{"line":483,"column":76}},"483":{"start":{"line":484,"column":0},"end":{"line":484,"column":54}},"484":{"start":{"line":485,"column":0},"end":{"line":485,"column":66}},"485":{"start":{"line":486,"column":0},"end":{"line":486,"column":14}},"486":{"start":{"line":487,"column":0},"end":{"line":487,"column":110}},"487":{"start":{"line":488,"column":0},"end":{"line":488,"column":24}},"488":{"start":{"line":489,"column":0},"end":{"line":489,"column":19}},"489":{"start":{"line":490,"column":0},"end":{"line":490,"column":14}},"490":{"start":{"line":491,"column":0},"end":{"line":491,"column":8}},"491":{"start":{"line":492,"column":0},"end":{"line":492,"column":10}},"492":{"start":{"line":493,"column":0},"end":{"line":493,"column":4}},"493":{"start":{"line":494,"column":0},"end":{"line":494,"column":2}},"494":{"start":{"line":495,"column":0},"end":{"line":495,"column":0}},"495":{"start":{"line":496,"column":0},"end":{"line":496,"column":25}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"471":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":496,"column":-10768}},"locations":[{"start":{"line":1,"column":0},"end":{"line":496,"column":-10768}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":496,"column":-10768}},"loc":{"start":{"line":1,"column":0},"end":{"line":496,"column":-10768}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Quiz.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Quiz.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":51}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":56}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":8}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":9}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":5}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":9}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":10}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":9}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":15}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":8}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":6}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":7}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":20}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":13}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":20}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":24}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":22}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":41}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":18}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":1}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":0}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":22}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":21}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":32}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":21}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":20}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":1}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":0}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":30}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":71}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":70}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":76}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":54}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":56}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":60}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":59}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":52}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":73}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":0}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":82}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":0}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":33}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":5}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":14}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":48}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":16}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":53}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":36}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":37}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":38}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":8}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":23}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":159}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":27}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":27}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":6}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":5}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":14}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":71}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":16}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":21}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":19}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":22}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":24}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":8}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":23}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":171}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":25}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":27}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":6}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":5}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":14}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":97}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":16}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":31}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":25}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":23}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":17}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":8}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":23}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":138}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":25}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":24}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":6}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":5}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":14}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":53}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":16}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":29}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":52}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":33}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":34}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":8}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":23}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":171}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":27}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":24}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":6}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":5}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":14}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":65}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":16}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":28}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":22}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":28}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":23}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":8}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":23}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":172}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":27}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":24}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":5}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":4}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":0}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":80}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":65}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":0}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":19}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":33}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":40}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":36}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":41}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":15}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":5}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":41}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":35}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":0}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":27}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":25}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":31}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":28}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":25}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":28}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":19}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":22}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":37}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":4}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":0}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":55}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":27}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":35}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":4}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":0}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":36}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":40}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":0}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":71}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":74}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":0}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":32}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":37}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":21}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":16}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":15}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":6}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":0}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":42}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":24}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":4}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":0}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":36}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":61}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":48}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":30}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":27}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":39}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":12}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":29}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":5}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":4}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":0}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":27}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":26}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":31}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":28}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":25}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":28}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":19}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":22}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":4}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":0}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":43}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":42}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":30}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":57}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":4}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":0}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":32}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":60}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":56}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":4}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":0}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":54}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":25}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":94}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":100}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":86}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":50}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":5}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":4}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":0}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":21}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":12}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":37}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":22}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":59}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":15}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":101}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":65}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":61}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":16}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":16}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":96}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":39}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":35}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":16}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":14}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":0}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":33}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":110}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":102}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":80}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":40}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":21}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":29}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":59}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":82}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":45}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":103}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":142}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":19}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":15}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":60}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":52}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":88}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":22}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":23}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":15}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":16}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":14}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":0}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":28}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":110}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":83}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":42}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":15}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":10}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":70}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":87}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":89}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":106}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":87}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":18}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":89}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":91}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":115}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":92}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":18}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":91}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":94}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":86}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":88}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":18}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":16}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":0}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":17}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":31}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":226}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":11}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":40}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":22}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":19}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":14}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":0}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":26}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":95}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":67}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":65}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":17}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":66}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":99}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":18}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":17}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":69}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":94}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":18}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":17}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":71}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":100}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":18}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":16}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":14}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":12}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":6}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":3}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":0}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":22}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":35}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":102}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":0}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":12}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":37}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":30}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":37}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":21}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":34}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":34}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":136}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":11}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":55}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":23}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":99}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":112}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":14}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":0}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":29}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":63}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":124}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":100}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":79}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":16}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":124}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":88}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":55}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":18}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":83}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":16}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":124}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":90}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":39}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":18}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":78}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":16}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":124}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":90}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":28}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":18}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":84}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":16}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":14}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":0}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":33}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":110}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":60}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":78}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":104}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":100}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":96}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":76}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":16}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":43}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":44}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":123}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":21}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":18}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":16}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":14}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":0}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":31}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":110}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":103}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":37}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":56}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":44}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":22}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":94}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":73}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":102}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":119}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":100}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":26}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":24}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":81}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":95}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":24}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":106}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":81}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":93}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":26}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":20}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":76}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":42}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":24}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":22}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":16}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":15}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":16}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":14}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":0}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":23}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":36}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":17}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":31}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":226}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":11}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":45}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":29}},"403":{"start":{"line":404,"column":0},"end":{"line":404,"column":19}},"404":{"start":{"line":405,"column":0},"end":{"line":405,"column":14}},"405":{"start":{"line":406,"column":0},"end":{"line":406,"column":12}},"406":{"start":{"line":407,"column":0},"end":{"line":407,"column":6}},"407":{"start":{"line":408,"column":0},"end":{"line":408,"column":3}},"408":{"start":{"line":409,"column":0},"end":{"line":409,"column":0}},"409":{"start":{"line":410,"column":0},"end":{"line":410,"column":10}},"410":{"start":{"line":411,"column":0},"end":{"line":411,"column":35}},"411":{"start":{"line":412,"column":0},"end":{"line":412,"column":25}},"412":{"start":{"line":413,"column":0},"end":{"line":413,"column":57}},"413":{"start":{"line":414,"column":0},"end":{"line":414,"column":49}},"414":{"start":{"line":415,"column":0},"end":{"line":415,"column":17}},"415":{"start":{"line":416,"column":0},"end":{"line":416,"column":31}},"416":{"start":{"line":417,"column":0},"end":{"line":417,"column":130}},"417":{"start":{"line":418,"column":0},"end":{"line":418,"column":11}},"418":{"start":{"line":419,"column":0},"end":{"line":419,"column":37}},"419":{"start":{"line":420,"column":0},"end":{"line":420,"column":19}},"420":{"start":{"line":421,"column":0},"end":{"line":421,"column":15}},"421":{"start":{"line":422,"column":0},"end":{"line":422,"column":103}},"422":{"start":{"line":423,"column":0},"end":{"line":423,"column":68}},"423":{"start":{"line":424,"column":0},"end":{"line":424,"column":78}},"424":{"start":{"line":425,"column":0},"end":{"line":425,"column":16}},"425":{"start":{"line":426,"column":0},"end":{"line":426,"column":16}},"426":{"start":{"line":427,"column":0},"end":{"line":427,"column":14}},"427":{"start":{"line":428,"column":0},"end":{"line":428,"column":49}},"428":{"start":{"line":429,"column":0},"end":{"line":429,"column":84}},"429":{"start":{"line":430,"column":0},"end":{"line":430,"column":41}},"430":{"start":{"line":431,"column":0},"end":{"line":431,"column":72}},"431":{"start":{"line":432,"column":0},"end":{"line":432,"column":16}},"432":{"start":{"line":433,"column":0},"end":{"line":433,"column":14}},"433":{"start":{"line":434,"column":0},"end":{"line":434,"column":12}},"434":{"start":{"line":435,"column":0},"end":{"line":435,"column":0}},"435":{"start":{"line":436,"column":0},"end":{"line":436,"column":26}},"436":{"start":{"line":437,"column":0},"end":{"line":437,"column":76}},"437":{"start":{"line":438,"column":0},"end":{"line":438,"column":12}},"438":{"start":{"line":439,"column":0},"end":{"line":439,"column":111}},"439":{"start":{"line":440,"column":0},"end":{"line":440,"column":95}},"440":{"start":{"line":441,"column":0},"end":{"line":441,"column":10}},"441":{"start":{"line":442,"column":0},"end":{"line":442,"column":12}},"442":{"start":{"line":443,"column":0},"end":{"line":443,"column":0}},"443":{"start":{"line":444,"column":0},"end":{"line":444,"column":27}},"444":{"start":{"line":445,"column":0},"end":{"line":445,"column":108}},"445":{"start":{"line":446,"column":0},"end":{"line":446,"column":64}},"446":{"start":{"line":447,"column":0},"end":{"line":447,"column":123}},"447":{"start":{"line":448,"column":0},"end":{"line":448,"column":102}},"448":{"start":{"line":449,"column":0},"end":{"line":449,"column":17}},"449":{"start":{"line":450,"column":0},"end":{"line":450,"column":69}},"450":{"start":{"line":451,"column":0},"end":{"line":451,"column":36}},"451":{"start":{"line":452,"column":0},"end":{"line":452,"column":17}},"452":{"start":{"line":453,"column":0},"end":{"line":453,"column":14}},"453":{"start":{"line":454,"column":0},"end":{"line":454,"column":0}},"454":{"start":{"line":455,"column":0},"end":{"line":455,"column":81}},"455":{"start":{"line":456,"column":0},"end":{"line":456,"column":36}},"456":{"start":{"line":457,"column":0},"end":{"line":457,"column":13}},"457":{"start":{"line":458,"column":0},"end":{"line":458,"column":0}},"458":{"start":{"line":459,"column":0},"end":{"line":459,"column":40}},"459":{"start":{"line":460,"column":0},"end":{"line":460,"column":59}},"460":{"start":{"line":461,"column":0},"end":{"line":461,"column":26}},"461":{"start":{"line":462,"column":0},"end":{"line":462,"column":25}},"462":{"start":{"line":463,"column":0},"end":{"line":463,"column":55}},"463":{"start":{"line":464,"column":0},"end":{"line":464,"column":97}},"464":{"start":{"line":465,"column":0},"end":{"line":465,"column":40}},"465":{"start":{"line":466,"column":0},"end":{"line":466,"column":30}},"466":{"start":{"line":467,"column":0},"end":{"line":467,"column":61}},"467":{"start":{"line":468,"column":0},"end":{"line":468,"column":110}},"468":{"start":{"line":469,"column":0},"end":{"line":469,"column":100}},"469":{"start":{"line":470,"column":0},"end":{"line":470,"column":103}},"470":{"start":{"line":471,"column":0},"end":{"line":471,"column":73}},"471":{"start":{"line":472,"column":0},"end":{"line":472,"column":108}},"472":{"start":{"line":473,"column":0},"end":{"line":473,"column":139}},"473":{"start":{"line":474,"column":0},"end":{"line":474,"column":17}},"474":{"start":{"line":475,"column":0},"end":{"line":475,"column":42}},"475":{"start":{"line":476,"column":0},"end":{"line":476,"column":40}},"476":{"start":{"line":477,"column":0},"end":{"line":477,"column":13}},"477":{"start":{"line":478,"column":0},"end":{"line":478,"column":55}},"478":{"start":{"line":479,"column":0},"end":{"line":479,"column":118}},"479":{"start":{"line":480,"column":0},"end":{"line":480,"column":42}},"480":{"start":{"line":481,"column":0},"end":{"line":481,"column":32}},"481":{"start":{"line":482,"column":0},"end":{"line":482,"column":63}},"482":{"start":{"line":483,"column":0},"end":{"line":483,"column":68}},"483":{"start":{"line":484,"column":0},"end":{"line":484,"column":64}},"484":{"start":{"line":485,"column":0},"end":{"line":485,"column":64}},"485":{"start":{"line":486,"column":0},"end":{"line":486,"column":75}},"486":{"start":{"line":487,"column":0},"end":{"line":487,"column":66}},"487":{"start":{"line":488,"column":0},"end":{"line":488,"column":62}},"488":{"start":{"line":489,"column":0},"end":{"line":489,"column":20}},"489":{"start":{"line":490,"column":0},"end":{"line":490,"column":106}},"490":{"start":{"line":491,"column":0},"end":{"line":491,"column":63}},"491":{"start":{"line":492,"column":0},"end":{"line":492,"column":51}},"492":{"start":{"line":493,"column":0},"end":{"line":493,"column":25}},"493":{"start":{"line":494,"column":0},"end":{"line":494,"column":47}},"494":{"start":{"line":495,"column":0},"end":{"line":495,"column":21}},"495":{"start":{"line":496,"column":0},"end":{"line":496,"column":23}},"496":{"start":{"line":497,"column":0},"end":{"line":497,"column":51}},"497":{"start":{"line":498,"column":0},"end":{"line":498,"column":20}},"498":{"start":{"line":499,"column":0},"end":{"line":499,"column":22}},"499":{"start":{"line":500,"column":0},"end":{"line":500,"column":37}},"500":{"start":{"line":501,"column":0},"end":{"line":501,"column":20}},"501":{"start":{"line":502,"column":0},"end":{"line":502,"column":28}},"502":{"start":{"line":503,"column":0},"end":{"line":503,"column":13}},"503":{"start":{"line":504,"column":0},"end":{"line":504,"column":14}},"504":{"start":{"line":505,"column":0},"end":{"line":505,"column":0}},"505":{"start":{"line":506,"column":0},"end":{"line":506,"column":27}},"506":{"start":{"line":507,"column":0},"end":{"line":507,"column":25}},"507":{"start":{"line":508,"column":0},"end":{"line":508,"column":26}},"508":{"start":{"line":509,"column":0},"end":{"line":509,"column":23}},"509":{"start":{"line":510,"column":0},"end":{"line":510,"column":49}},"510":{"start":{"line":511,"column":0},"end":{"line":511,"column":54}},"511":{"start":{"line":512,"column":0},"end":{"line":512,"column":46}},"512":{"start":{"line":513,"column":0},"end":{"line":513,"column":120}},"513":{"start":{"line":514,"column":0},"end":{"line":514,"column":13}},"514":{"start":{"line":515,"column":0},"end":{"line":515,"column":97}},"515":{"start":{"line":516,"column":0},"end":{"line":516,"column":95}},"516":{"start":{"line":517,"column":0},"end":{"line":517,"column":25}},"517":{"start":{"line":518,"column":0},"end":{"line":518,"column":12}},"518":{"start":{"line":519,"column":0},"end":{"line":519,"column":26}},"519":{"start":{"line":520,"column":0},"end":{"line":520,"column":0}},"520":{"start":{"line":521,"column":0},"end":{"line":521,"column":30}},"521":{"start":{"line":522,"column":0},"end":{"line":522,"column":36}},"522":{"start":{"line":523,"column":0},"end":{"line":523,"column":26}},"523":{"start":{"line":524,"column":0},"end":{"line":524,"column":19}},"524":{"start":{"line":525,"column":0},"end":{"line":525,"column":42}},"525":{"start":{"line":526,"column":0},"end":{"line":526,"column":48}},"526":{"start":{"line":527,"column":0},"end":{"line":527,"column":276}},"527":{"start":{"line":528,"column":0},"end":{"line":528,"column":13}},"528":{"start":{"line":529,"column":0},"end":{"line":529,"column":43}},"529":{"start":{"line":530,"column":0},"end":{"line":530,"column":27}},"530":{"start":{"line":531,"column":0},"end":{"line":531,"column":21}},"531":{"start":{"line":532,"column":0},"end":{"line":532,"column":15}},"532":{"start":{"line":533,"column":0},"end":{"line":533,"column":19}},"533":{"start":{"line":534,"column":0},"end":{"line":534,"column":42}},"534":{"start":{"line":535,"column":0},"end":{"line":535,"column":226}},"535":{"start":{"line":536,"column":0},"end":{"line":536,"column":13}},"536":{"start":{"line":537,"column":0},"end":{"line":537,"column":69}},"537":{"start":{"line":538,"column":0},"end":{"line":538,"column":18}},"538":{"start":{"line":539,"column":0},"end":{"line":539,"column":31}},"539":{"start":{"line":540,"column":0},"end":{"line":540,"column":54}},"540":{"start":{"line":541,"column":0},"end":{"line":541,"column":19}},"541":{"start":{"line":542,"column":0},"end":{"line":542,"column":19}},"542":{"start":{"line":543,"column":0},"end":{"line":543,"column":18}},"543":{"start":{"line":544,"column":0},"end":{"line":544,"column":30}},"544":{"start":{"line":545,"column":0},"end":{"line":545,"column":48}},"545":{"start":{"line":546,"column":0},"end":{"line":546,"column":19}},"546":{"start":{"line":547,"column":0},"end":{"line":547,"column":16}},"547":{"start":{"line":548,"column":0},"end":{"line":548,"column":21}},"548":{"start":{"line":549,"column":0},"end":{"line":549,"column":12}},"549":{"start":{"line":550,"column":0},"end":{"line":550,"column":14}},"550":{"start":{"line":551,"column":0},"end":{"line":551,"column":12}},"551":{"start":{"line":552,"column":0},"end":{"line":552,"column":10}},"552":{"start":{"line":553,"column":0},"end":{"line":553,"column":4}},"553":{"start":{"line":554,"column":0},"end":{"line":554,"column":2}},"554":{"start":{"line":555,"column":0},"end":{"line":555,"column":0}},"555":{"start":{"line":556,"column":0},"end":{"line":556,"column":20}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"471":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"511":0,"512":0,"513":0,"514":0,"515":0,"516":0,"517":0,"518":0,"519":0,"520":0,"521":0,"522":0,"523":0,"524":0,"525":0,"526":0,"527":0,"528":0,"529":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"540":0,"541":0,"542":0,"543":0,"544":0,"545":0,"546":0,"547":0,"548":0,"549":0,"550":0,"551":0,"552":0,"553":0,"554":0,"555":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":556,"column":-11421}},"locations":[{"start":{"line":1,"column":0},"end":{"line":556,"column":-11421}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":556,"column":-11421}},"loc":{"start":{"line":1,"column":0},"end":{"line":556,"column":-11421}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/SearchResults.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/SearchResults.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":10}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":10}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":9}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":12}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":9}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":12}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":9}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":11}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":13}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":11}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":6}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":6}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":24}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":13}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":16}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":63}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":18}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":20}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":23}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":17}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":18}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":21}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":1}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":0}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":39}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":53}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":126}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":91}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":0}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":41}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":5}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":14}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":47}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":24}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":116}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":20}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":33}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":50}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":28}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":20}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":6}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":5}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":14}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":52}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":19}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":124}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":20}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":33}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":48}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":27}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":6}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":5}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":14}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":37}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":22}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":107}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":20}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":33}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":46}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":24}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":6}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":5}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":14}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":49}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":23}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":133}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":20}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":33}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":41}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":24}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":6}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":5}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":14}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":44}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":19}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":102}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":20}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":33}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":44}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":25}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":20}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":6}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":5}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":14}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":48}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":24}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":99}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":20}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":33}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":54}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":27}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":5}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":4}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":0}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":41}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":19}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":61}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":57}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":63}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":59}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":62}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":53}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":5}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":4}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":0}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":42}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":19}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":95}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":94}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":102}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":98}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":93}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":86}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":5}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":4}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":0}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":39}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":81}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":22}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":28}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":71}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":73}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":84}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":5}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":21}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":23}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":59}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":100}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":67}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":26}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":7}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":7}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":0}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":26}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":27}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":28}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":25}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":21}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":28}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":4}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":0}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":27}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":47}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":40}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":45}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":46}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":47}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":4}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":0}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":10}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":35}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":20}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":57}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":13}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":98}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":63}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":63}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":14}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":14}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":90}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":42}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":41}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":14}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":12}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":0}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":24}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":108}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":39}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":105}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":16}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":23}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":99}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":31}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":60}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":244}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":12}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":14}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":0}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":23}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":46}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":51}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":75}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":100}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":16}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":10}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":17}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":34}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":70}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":152}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":11}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":50}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":57}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":49}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":55}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":47}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":53}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":19}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":0}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":17}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":26}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":62}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":152}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":11}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":60}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":59}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":62}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":19}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":14}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":12}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":0}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":28}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":50}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":35}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":61}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":80}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":55}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":17}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":29}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":72}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":51}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":20}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":14}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":16}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":0}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":37}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":53}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":25}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":31}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":47}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":46}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":51}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":171}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":15}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":71}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":59}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":120}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":48}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":26}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":25}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":106}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":38}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":45}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":83}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":26}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":27}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":104}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":73}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":38}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":53}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":38}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":65}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":60}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":64}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":30}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":28}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":26}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":24}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":100}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":49}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":85}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":24}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":22}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":0}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":82}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":34}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":20}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":0}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":67}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":56}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":57}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":27}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":38}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":152}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":23}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":51}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":29}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":29}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":23}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":24}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":136}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":26}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":27}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":22}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":27}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":15}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":16}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":0}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":44}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":47}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":73}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":106}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":62}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":58}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":18}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":18}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":12}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":14}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":11}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":59}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":63}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":33}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":112}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":109}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":43}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":29}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":17}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":39}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":54}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":23}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":29}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":56}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":148}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":17}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":59}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":64}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":83}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":24}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":25}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":17}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":18}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":16}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":0}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":34}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":112}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":109}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":46}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":30}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":17}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":39}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":54}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":23}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":29}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":74}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":148}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":17}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":69}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":87}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":79}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":41}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":27}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":24}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":25}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":17}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":18}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":16}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":14}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":8}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":0}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":25}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":94}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":75}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":42}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":21}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":13}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":63}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":15}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":62}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":49}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":76}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":16}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":16}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":15}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":64}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":49}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":84}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":16}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":16}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":15}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":58}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":49}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":86}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":16}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":16}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":14}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":12}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":10}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":4}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":2}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":0}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":29}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":385,"column":-7660}},"locations":[{"start":{"line":1,"column":0},"end":{"line":385,"column":-7660}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":385,"column":-7660}},"loc":{"start":{"line":1,"column":0},"end":{"line":385,"column":-7660}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Settings.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Settings.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":8}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":8}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":10}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":11}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":9}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":12}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":10}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":6}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":7}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":6}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":10}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":10}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":13}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":7}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":7}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":6}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":9}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":7}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":11}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":22}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":52}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":0}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":34}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":45}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":56}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":58}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":54}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":16}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":15}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":25}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":22}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":23}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":24}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":5}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":42}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":33}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":26}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":26}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":5}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":50}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":19}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":22}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":23}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":19}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":21}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":25}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":16}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":5}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":0}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":16}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":52}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":64}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":65}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":63}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":59}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":4}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":0}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":69}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":58}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":4}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":0}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":63}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":52}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":4}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":0}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":63}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":56}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":29}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":20}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":5}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":4}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":0}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":34}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":24}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":21}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":16}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":37}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":53}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":163}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":18}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":20}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":19}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":101}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":90}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":139}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":30}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":25}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":20}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":18}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":0}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":67}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":19}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":99}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":28}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":24}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":22}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":29}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":37}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":157}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":18}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":20}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":19}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":99}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":27}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":24}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":22}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":29}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":40}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":157}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":18}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":20}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":19}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":99}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":23}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":24}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":22}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":30}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":55}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":157}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":18}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":20}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":19}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":99}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":23}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":24}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":22}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":28}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":49}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":157}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":18}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":20}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":18}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":0}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":17}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":97}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":19}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":22}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":23}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":24}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":55}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":155}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":16}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":18}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":0}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":17}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":105}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":41}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":21}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":101}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":36}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":26}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":44}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":26}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":63}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":167}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":22}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":27}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":68}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":144}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":21}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":99}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":29}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":24}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":22}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":71}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":23}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":103}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":34}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":28}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":26}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":37}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":161}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":22}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":24}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":23}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":103}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":38}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":28}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":26}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":37}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":161}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":22}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":24}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":22}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":20}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":18}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":16}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":10}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":0}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":27}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":16}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":37}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":17}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":114}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":41}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":70}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":79}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":25}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":91}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":63}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":27}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":78}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":78}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":87}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":94}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":98}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":95}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":86}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":26}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":26}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":27}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":75}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":110}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":78}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":25}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":21}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":27}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":112}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":67}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":27}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":24}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":29}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":24}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":19}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":20}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":18}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":0}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":17}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":111}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":69}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":92}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":64}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":81}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":88}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":24}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":79}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":42}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":22}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":136}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":32}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":27}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":22}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":92}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":64}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":89}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":101}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":24}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":79}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":42}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":22}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":140}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":34}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":27}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":22}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":20}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":18}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":16}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":10}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":0}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":21}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":16}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":37}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":17}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":106}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":41}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":64}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":33}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":114}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":61}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":28}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":27}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":35}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":80}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":161}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":21}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":60}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":67}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":62}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":29}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":24}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":19}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":20}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":18}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":0}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":17}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":98}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":41}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":92}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":69}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":25}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":110}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":78}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":70}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":26}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":26}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":120}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":28}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":29}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":24}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":22}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":92}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":69}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":25}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":99}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":78}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":57}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":26}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":26}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":130}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":35}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":29}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":24}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":22}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":20}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":18}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":16}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":10}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":0}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":25}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":16}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":37}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":17}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":109}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":41}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":71}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":23}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":103}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":30}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":28}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":27}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":50}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":90}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":161}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":21}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":57}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":57}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":56}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":56}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":29}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":24}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":23}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":103}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":30}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":28}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":27}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":50}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":90}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":161}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":21}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":73}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":73}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":64}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":82}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":29}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":24}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":22}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":0}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":21}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":101}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":47}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":26}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":24}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":33}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":27}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":28}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":49}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":99}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":159}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":20}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":22}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":20}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":18}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":0}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":17}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":105}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":41}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":67}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":59}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":89}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":25}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":94}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":78}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":64}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":26}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":26}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":24}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":25}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":93}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":108}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":91}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":23}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":19}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":25}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":110}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":80}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":25}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":22}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":27}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":22}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":0}},"403":{"start":{"line":404,"column":0},"end":{"line":404,"column":67}},"404":{"start":{"line":405,"column":0},"end":{"line":405,"column":59}},"405":{"start":{"line":406,"column":0},"end":{"line":406,"column":114}},"406":{"start":{"line":407,"column":0},"end":{"line":407,"column":25}},"407":{"start":{"line":408,"column":0},"end":{"line":408,"column":98}},"408":{"start":{"line":409,"column":0},"end":{"line":409,"column":78}},"409":{"start":{"line":410,"column":0},"end":{"line":410,"column":70}},"410":{"start":{"line":411,"column":0},"end":{"line":411,"column":26}},"411":{"start":{"line":412,"column":0},"end":{"line":412,"column":26}},"412":{"start":{"line":413,"column":0},"end":{"line":413,"column":24}},"413":{"start":{"line":414,"column":0},"end":{"line":414,"column":25}},"414":{"start":{"line":415,"column":0},"end":{"line":415,"column":101}},"415":{"start":{"line":416,"column":0},"end":{"line":416,"column":108}},"416":{"start":{"line":417,"column":0},"end":{"line":417,"column":95}},"417":{"start":{"line":418,"column":0},"end":{"line":418,"column":23}},"418":{"start":{"line":419,"column":0},"end":{"line":419,"column":19}},"419":{"start":{"line":420,"column":0},"end":{"line":420,"column":25}},"420":{"start":{"line":421,"column":0},"end":{"line":421,"column":110}},"421":{"start":{"line":422,"column":0},"end":{"line":422,"column":84}},"422":{"start":{"line":423,"column":0},"end":{"line":423,"column":25}},"423":{"start":{"line":424,"column":0},"end":{"line":424,"column":22}},"424":{"start":{"line":425,"column":0},"end":{"line":425,"column":27}},"425":{"start":{"line":426,"column":0},"end":{"line":426,"column":22}},"426":{"start":{"line":427,"column":0},"end":{"line":427,"column":0}},"427":{"start":{"line":428,"column":0},"end":{"line":428,"column":67}},"428":{"start":{"line":429,"column":0},"end":{"line":429,"column":59}},"429":{"start":{"line":430,"column":0},"end":{"line":430,"column":48}},"430":{"start":{"line":431,"column":0},"end":{"line":431,"column":25}},"431":{"start":{"line":432,"column":0},"end":{"line":432,"column":94}},"432":{"start":{"line":433,"column":0},"end":{"line":433,"column":78}},"433":{"start":{"line":434,"column":0},"end":{"line":434,"column":56}},"434":{"start":{"line":435,"column":0},"end":{"line":435,"column":26}},"435":{"start":{"line":436,"column":0},"end":{"line":436,"column":26}},"436":{"start":{"line":437,"column":0},"end":{"line":437,"column":24}},"437":{"start":{"line":438,"column":0},"end":{"line":438,"column":25}},"438":{"start":{"line":439,"column":0},"end":{"line":439,"column":93}},"439":{"start":{"line":440,"column":0},"end":{"line":440,"column":108}},"440":{"start":{"line":441,"column":0},"end":{"line":441,"column":91}},"441":{"start":{"line":442,"column":0},"end":{"line":442,"column":23}},"442":{"start":{"line":443,"column":0},"end":{"line":443,"column":19}},"443":{"start":{"line":444,"column":0},"end":{"line":444,"column":25}},"444":{"start":{"line":445,"column":0},"end":{"line":445,"column":110}},"445":{"start":{"line":446,"column":0},"end":{"line":446,"column":80}},"446":{"start":{"line":447,"column":0},"end":{"line":447,"column":25}},"447":{"start":{"line":448,"column":0},"end":{"line":448,"column":22}},"448":{"start":{"line":449,"column":0},"end":{"line":449,"column":27}},"449":{"start":{"line":450,"column":0},"end":{"line":450,"column":22}},"450":{"start":{"line":451,"column":0},"end":{"line":451,"column":20}},"451":{"start":{"line":452,"column":0},"end":{"line":452,"column":18}},"452":{"start":{"line":453,"column":0},"end":{"line":453,"column":16}},"453":{"start":{"line":454,"column":0},"end":{"line":454,"column":10}},"454":{"start":{"line":455,"column":0},"end":{"line":455,"column":0}},"455":{"start":{"line":456,"column":0},"end":{"line":456,"column":18}},"456":{"start":{"line":457,"column":0},"end":{"line":457,"column":16}},"457":{"start":{"line":458,"column":0},"end":{"line":458,"column":37}},"458":{"start":{"line":459,"column":0},"end":{"line":459,"column":17}},"459":{"start":{"line":460,"column":0},"end":{"line":460,"column":105}},"460":{"start":{"line":461,"column":0},"end":{"line":461,"column":69}},"461":{"start":{"line":462,"column":0},"end":{"line":462,"column":92}},"462":{"start":{"line":463,"column":0},"end":{"line":463,"column":97}},"463":{"start":{"line":464,"column":0},"end":{"line":464,"column":79}},"464":{"start":{"line":465,"column":0},"end":{"line":465,"column":73}},"465":{"start":{"line":466,"column":0},"end":{"line":466,"column":22}},"466":{"start":{"line":467,"column":0},"end":{"line":467,"column":142}},"467":{"start":{"line":468,"column":0},"end":{"line":468,"column":52}},"468":{"start":{"line":469,"column":0},"end":{"line":469,"column":31}},"469":{"start":{"line":470,"column":0},"end":{"line":470,"column":27}},"470":{"start":{"line":471,"column":0},"end":{"line":471,"column":22}},"471":{"start":{"line":472,"column":0},"end":{"line":472,"column":92}},"472":{"start":{"line":473,"column":0},"end":{"line":473,"column":99}},"473":{"start":{"line":474,"column":0},"end":{"line":474,"column":79}},"474":{"start":{"line":475,"column":0},"end":{"line":475,"column":58}},"475":{"start":{"line":476,"column":0},"end":{"line":476,"column":22}},"476":{"start":{"line":477,"column":0},"end":{"line":477,"column":93}},"477":{"start":{"line":478,"column":0},"end":{"line":478,"column":93}},"478":{"start":{"line":479,"column":0},"end":{"line":479,"column":24}},"479":{"start":{"line":480,"column":0},"end":{"line":480,"column":128}},"480":{"start":{"line":481,"column":0},"end":{"line":481,"column":34}},"481":{"start":{"line":482,"column":0},"end":{"line":482,"column":27}},"482":{"start":{"line":483,"column":0},"end":{"line":483,"column":22}},"483":{"start":{"line":484,"column":0},"end":{"line":484,"column":20}},"484":{"start":{"line":485,"column":0},"end":{"line":485,"column":18}},"485":{"start":{"line":486,"column":0},"end":{"line":486,"column":0}},"486":{"start":{"line":487,"column":0},"end":{"line":487,"column":17}},"487":{"start":{"line":488,"column":0},"end":{"line":488,"column":103}},"488":{"start":{"line":489,"column":0},"end":{"line":489,"column":41}},"489":{"start":{"line":490,"column":0},"end":{"line":490,"column":92}},"490":{"start":{"line":491,"column":0},"end":{"line":491,"column":69}},"491":{"start":{"line":492,"column":0},"end":{"line":492,"column":25}},"492":{"start":{"line":493,"column":0},"end":{"line":493,"column":96}},"493":{"start":{"line":494,"column":0},"end":{"line":494,"column":78}},"494":{"start":{"line":495,"column":0},"end":{"line":495,"column":67}},"495":{"start":{"line":496,"column":0},"end":{"line":496,"column":26}},"496":{"start":{"line":497,"column":0},"end":{"line":497,"column":26}},"497":{"start":{"line":498,"column":0},"end":{"line":498,"column":108}},"498":{"start":{"line":499,"column":0},"end":{"line":499,"column":109}},"499":{"start":{"line":500,"column":0},"end":{"line":500,"column":29}},"500":{"start":{"line":501,"column":0},"end":{"line":501,"column":24}},"501":{"start":{"line":502,"column":0},"end":{"line":502,"column":22}},"502":{"start":{"line":503,"column":0},"end":{"line":503,"column":92}},"503":{"start":{"line":504,"column":0},"end":{"line":504,"column":69}},"504":{"start":{"line":505,"column":0},"end":{"line":505,"column":25}},"505":{"start":{"line":506,"column":0},"end":{"line":506,"column":96}},"506":{"start":{"line":507,"column":0},"end":{"line":507,"column":78}},"507":{"start":{"line":508,"column":0},"end":{"line":508,"column":48}},"508":{"start":{"line":509,"column":0},"end":{"line":509,"column":26}},"509":{"start":{"line":510,"column":0},"end":{"line":510,"column":26}},"510":{"start":{"line":511,"column":0},"end":{"line":511,"column":206}},"511":{"start":{"line":512,"column":0},"end":{"line":512,"column":55}},"512":{"start":{"line":513,"column":0},"end":{"line":513,"column":32}},"513":{"start":{"line":514,"column":0},"end":{"line":514,"column":29}},"514":{"start":{"line":515,"column":0},"end":{"line":515,"column":24}},"515":{"start":{"line":516,"column":0},"end":{"line":516,"column":22}},"516":{"start":{"line":517,"column":0},"end":{"line":517,"column":20}},"517":{"start":{"line":518,"column":0},"end":{"line":518,"column":18}},"518":{"start":{"line":519,"column":0},"end":{"line":519,"column":0}},"519":{"start":{"line":520,"column":0},"end":{"line":520,"column":17}},"520":{"start":{"line":521,"column":0},"end":{"line":521,"column":102}},"521":{"start":{"line":522,"column":0},"end":{"line":522,"column":117}},"522":{"start":{"line":523,"column":0},"end":{"line":523,"column":99}},"523":{"start":{"line":524,"column":0},"end":{"line":524,"column":75}},"524":{"start":{"line":525,"column":0},"end":{"line":525,"column":104}},"525":{"start":{"line":526,"column":0},"end":{"line":526,"column":20}},"526":{"start":{"line":527,"column":0},"end":{"line":527,"column":138}},"527":{"start":{"line":528,"column":0},"end":{"line":528,"column":48}},"528":{"start":{"line":529,"column":0},"end":{"line":529,"column":32}},"529":{"start":{"line":530,"column":0},"end":{"line":530,"column":25}},"530":{"start":{"line":531,"column":0},"end":{"line":531,"column":20}},"531":{"start":{"line":532,"column":0},"end":{"line":532,"column":18}},"532":{"start":{"line":533,"column":0},"end":{"line":533,"column":16}},"533":{"start":{"line":534,"column":0},"end":{"line":534,"column":10}},"534":{"start":{"line":535,"column":0},"end":{"line":535,"column":0}},"535":{"start":{"line":536,"column":0},"end":{"line":536,"column":14}},"536":{"start":{"line":537,"column":0},"end":{"line":537,"column":20}},"537":{"start":{"line":538,"column":0},"end":{"line":538,"column":5}},"538":{"start":{"line":539,"column":0},"end":{"line":539,"column":4}},"539":{"start":{"line":540,"column":0},"end":{"line":540,"column":0}},"540":{"start":{"line":541,"column":0},"end":{"line":541,"column":10}},"541":{"start":{"line":542,"column":0},"end":{"line":542,"column":35}},"542":{"start":{"line":543,"column":0},"end":{"line":543,"column":20}},"543":{"start":{"line":544,"column":0},"end":{"line":544,"column":57}},"544":{"start":{"line":545,"column":0},"end":{"line":545,"column":13}},"545":{"start":{"line":546,"column":0},"end":{"line":546,"column":88}},"546":{"start":{"line":547,"column":0},"end":{"line":547,"column":63}},"547":{"start":{"line":548,"column":0},"end":{"line":548,"column":66}},"548":{"start":{"line":549,"column":0},"end":{"line":549,"column":14}},"549":{"start":{"line":550,"column":0},"end":{"line":550,"column":14}},"550":{"start":{"line":551,"column":0},"end":{"line":551,"column":12}},"551":{"start":{"line":552,"column":0},"end":{"line":552,"column":0}},"552":{"start":{"line":553,"column":0},"end":{"line":553,"column":61}},"553":{"start":{"line":554,"column":0},"end":{"line":554,"column":23}},"554":{"start":{"line":555,"column":0},"end":{"line":555,"column":39}},"555":{"start":{"line":556,"column":0},"end":{"line":556,"column":124}},"556":{"start":{"line":557,"column":0},"end":{"line":557,"column":32}},"557":{"start":{"line":558,"column":0},"end":{"line":558,"column":36}},"558":{"start":{"line":559,"column":0},"end":{"line":559,"column":22}},"559":{"start":{"line":560,"column":0},"end":{"line":560,"column":23}},"560":{"start":{"line":561,"column":0},"end":{"line":561,"column":30}},"561":{"start":{"line":562,"column":0},"end":{"line":562,"column":54}},"562":{"start":{"line":563,"column":0},"end":{"line":563,"column":101}},"563":{"start":{"line":564,"column":0},"end":{"line":564,"column":40}},"564":{"start":{"line":565,"column":0},"end":{"line":565,"column":116}},"565":{"start":{"line":566,"column":0},"end":{"line":566,"column":98}},"566":{"start":{"line":567,"column":0},"end":{"line":567,"column":21}},"567":{"start":{"line":568,"column":0},"end":{"line":568,"column":17}},"568":{"start":{"line":569,"column":0},"end":{"line":569,"column":46}},"569":{"start":{"line":570,"column":0},"end":{"line":570,"column":66}},"570":{"start":{"line":571,"column":0},"end":{"line":571,"column":25}},"571":{"start":{"line":572,"column":0},"end":{"line":572,"column":16}},"572":{"start":{"line":573,"column":0},"end":{"line":573,"column":15}},"573":{"start":{"line":574,"column":0},"end":{"line":574,"column":16}},"574":{"start":{"line":575,"column":0},"end":{"line":575,"column":14}},"575":{"start":{"line":576,"column":0},"end":{"line":576,"column":0}},"576":{"start":{"line":577,"column":0},"end":{"line":577,"column":23}},"577":{"start":{"line":578,"column":0},"end":{"line":578,"column":39}},"578":{"start":{"line":579,"column":0},"end":{"line":579,"column":112}},"579":{"start":{"line":580,"column":0},"end":{"line":580,"column":23}},"580":{"start":{"line":581,"column":0},"end":{"line":581,"column":29}},"581":{"start":{"line":582,"column":0},"end":{"line":582,"column":45}},"582":{"start":{"line":583,"column":0},"end":{"line":583,"column":44}},"583":{"start":{"line":584,"column":0},"end":{"line":584,"column":44}},"584":{"start":{"line":585,"column":0},"end":{"line":585,"column":13}},"585":{"start":{"line":586,"column":0},"end":{"line":586,"column":34}},"586":{"start":{"line":587,"column":0},"end":{"line":587,"column":25}},"587":{"start":{"line":588,"column":0},"end":{"line":588,"column":0}},"588":{"start":{"line":589,"column":0},"end":{"line":589,"column":31}},"589":{"start":{"line":590,"column":0},"end":{"line":590,"column":85}},"590":{"start":{"line":591,"column":0},"end":{"line":591,"column":54}},"591":{"start":{"line":592,"column":0},"end":{"line":592,"column":139}},"592":{"start":{"line":593,"column":0},"end":{"line":593,"column":24}},"593":{"start":{"line":594,"column":0},"end":{"line":594,"column":25}},"594":{"start":{"line":595,"column":0},"end":{"line":595,"column":140}},"595":{"start":{"line":596,"column":0},"end":{"line":596,"column":46}},"596":{"start":{"line":597,"column":0},"end":{"line":597,"column":30}},"597":{"start":{"line":598,"column":0},"end":{"line":598,"column":25}},"598":{"start":{"line":599,"column":0},"end":{"line":599,"column":20}},"599":{"start":{"line":600,"column":0},"end":{"line":600,"column":18}},"600":{"start":{"line":601,"column":0},"end":{"line":601,"column":16}},"601":{"start":{"line":602,"column":0},"end":{"line":602,"column":14}},"602":{"start":{"line":603,"column":0},"end":{"line":603,"column":12}},"603":{"start":{"line":604,"column":0},"end":{"line":604,"column":10}},"604":{"start":{"line":605,"column":0},"end":{"line":605,"column":4}},"605":{"start":{"line":606,"column":0},"end":{"line":606,"column":2}},"606":{"start":{"line":607,"column":0},"end":{"line":607,"column":0}},"607":{"start":{"line":608,"column":0},"end":{"line":608,"column":24}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"471":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"511":0,"512":0,"513":0,"514":0,"515":0,"516":0,"517":0,"518":0,"519":0,"520":0,"521":0,"522":0,"523":0,"524":0,"525":0,"526":0,"527":0,"528":0,"529":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"540":0,"541":0,"542":0,"543":0,"544":0,"545":0,"546":0,"547":0,"548":0,"549":0,"550":0,"551":0,"552":0,"553":0,"554":0,"555":0,"556":0,"557":0,"558":0,"559":0,"560":0,"561":0,"562":0,"563":0,"564":0,"565":0,"566":0,"567":0,"568":0,"569":0,"570":0,"571":0,"572":0,"573":0,"574":0,"575":0,"576":0,"577":0,"578":0,"579":0,"580":0,"581":0,"582":0,"583":0,"584":0,"585":0,"586":0,"587":0,"588":0,"589":0,"590":0,"591":0,"592":0,"593":0,"594":0,"595":0,"596":0,"597":0,"598":0,"599":0,"600":0,"601":0,"602":0,"603":0,"604":0,"605":0,"606":0,"607":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":608,"column":-17140}},"locations":[{"start":{"line":1,"column":0},"end":{"line":608,"column":-17140}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":608,"column":-17140}},"loc":{"start":{"line":1,"column":0},"end":{"line":608,"column":-17140}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/Sidebar.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/Sidebar.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":9}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":8}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":12}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":9}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":10}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":9}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":10}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":11}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":16}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":11}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":9}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":4}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":6}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":24}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":24}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":46}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":19}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":23}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":1}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":0}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":106}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":21}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":56}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":59}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":53}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":52}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":61}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":61}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":64}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":60}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":52}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":58}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":4}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":0}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":47}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":29}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":18}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":16}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":5}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":4}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":0}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":10}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":6}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":28}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":18}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":13}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":73}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":27}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":10}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":8}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":6}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":21}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":23}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":55}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":85}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":90}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":74}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":9}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":20}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":122}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":51}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":127}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":62}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":18}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":96}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":16}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":10}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":41}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":17}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":29}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":122}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":11}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":37}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":19}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":14}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":0}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":26}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":82}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":36}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":35}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":55}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":12}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":20}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":21}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":29}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":56}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":147}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":26}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":131}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":141}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":19}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":15}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":58}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":74}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":23}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":14}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":13}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":14}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":0}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":31}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":82}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":99}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":87}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":118}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":152}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":25}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":21}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":16}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":14}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":12}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":7}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":4}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":2}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":0}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":23}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":119,"column":-2001}},"locations":[{"start":{"line":1,"column":0},"end":{"line":119,"column":-2001}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":119,"column":-2001}},"loc":{"start":{"line":1,"column":0},"end":{"line":119,"column":-2001}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/components/StudyTimer.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/components/StudyTimer.tsx","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":56}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":9}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":8}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":9}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":13}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":10}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":9}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":9}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":11}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":10}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":10}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":7}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":13}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":19}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":40}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":21}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":1}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":0}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":36}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":77}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":52}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":97}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":64}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":58}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":14}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":18}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":17}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":5}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":57}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":58}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":60}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":58}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":56}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":0}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":58}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":57}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":0}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":31}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":78}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":83}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":78}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":83}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":78}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":83}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":78}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":86}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":4}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":0}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":19}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":36}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":47}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":29}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":26}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":36}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":21}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":11}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":26}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":11}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":15}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":37}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":41}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":5}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":0}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":18}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":32}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":43}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":7}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":6}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":28}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":0}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":39}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":24}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":43}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":30}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":5}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":0}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":37}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":45}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":62}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":41}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":5}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":0}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":35}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":65}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":51}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":40}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":38}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":4}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":0}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":29}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":32}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":4}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":0}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":28}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":24}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":55}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":34}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":34}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":41}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":41}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":33}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":4}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":0}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":43}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":42}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":30}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":85}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":4}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":0}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":29}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":53}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":34}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":34}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":41}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":41}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":62}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":4}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":0}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":33}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":29}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":57}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":56}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":60}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":52}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":5}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":4}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":0}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":32}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":29}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":57}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":58}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":62}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":52}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":5}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":4}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":0}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":87}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":61}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":57}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":30}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":69}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":30}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":72}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":30}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":5}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":4}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":0}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":10}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":35}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":20}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":57}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":13}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":91}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":63}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":65}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":14}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":14}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":15}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":56}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":128}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":9}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":42}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":17}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":12}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":0}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":28}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":23}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":26}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":21}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":47}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":52}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":44}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":108}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":11}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":104}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":72}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":19}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":99}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":42}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":24}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":22}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":31}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":25}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":26}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":47}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":97}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":157}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":18}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":20}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":19}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":99}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":39}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":24}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":22}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":31}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":25}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":26}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":52}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":101}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":157}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":18}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":20}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":19}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":99}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":38}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":24}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":22}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":31}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":25}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":26}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":51}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":101}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":157}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":18}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":20}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":18}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":63}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":55}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":23}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":64}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":86}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":17}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":100}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":70}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":25}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":20}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":55}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":95}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":22}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":31}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":25}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":26}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":35}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":79}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":160}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":18}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":90}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":20}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":18}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":23}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":10}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":24}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":0}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":24}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":43}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":34}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":31}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":80}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":19}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":22}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":22}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":21}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":35}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":29}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":32}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":58}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":14}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":19}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":22}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":22}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":21}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":37}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":29}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":32}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":54}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":83}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":66}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":35}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":14}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":18}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":78}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":140}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":142}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":31}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":19}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":16}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":0}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":31}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":86}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":23}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":34}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":50}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":48}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":137}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":13}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":32}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":25}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":12}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":93}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":36}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":18}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":12}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":87}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":59}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":73}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":18}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":0}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":40}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":21}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":37}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":194}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":15}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":95}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":23}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":14}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":21}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":36}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":195}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":15}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":49}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":23}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":18}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":16}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":14}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":12}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":0}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":30}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":108}},"323":{"start":{"line":324,"column":0},"end":{"line":324,"column":102}},"324":{"start":{"line":325,"column":0},"end":{"line":325,"column":8}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":68}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":85}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":106}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":94}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":16}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":87}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":146}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":86}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":16}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":89}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":106}},"336":{"start":{"line":337,"column":0},"end":{"line":337,"column":90}},"337":{"start":{"line":338,"column":0},"end":{"line":338,"column":16}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":89}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":143}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":86}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":16}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":14}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":0}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":32}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":54}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":105}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":14}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":36}},"349":{"start":{"line":350,"column":0},"end":{"line":350,"column":45}},"350":{"start":{"line":351,"column":0},"end":{"line":351,"column":16}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":25}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":52}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":41}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":44}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":35}},"356":{"start":{"line":357,"column":0},"end":{"line":357,"column":36}},"357":{"start":{"line":358,"column":0},"end":{"line":358,"column":47}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":46}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":37}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":38}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":52}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":17}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":14}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":13}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":14}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":92}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":28}},"368":{"start":{"line":369,"column":0},"end":{"line":369,"column":28}},"369":{"start":{"line":370,"column":0},"end":{"line":370,"column":28}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":28}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":28}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":28}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":28}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":33}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":14}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":12}},"377":{"start":{"line":378,"column":0},"end":{"line":378,"column":0}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":18}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":96}},"380":{"start":{"line":381,"column":0},"end":{"line":381,"column":75}},"381":{"start":{"line":382,"column":0},"end":{"line":382,"column":40}},"382":{"start":{"line":383,"column":0},"end":{"line":383,"column":23}},"383":{"start":{"line":384,"column":0},"end":{"line":384,"column":13}},"384":{"start":{"line":385,"column":0},"end":{"line":385,"column":63}},"385":{"start":{"line":386,"column":0},"end":{"line":386,"column":15}},"386":{"start":{"line":387,"column":0},"end":{"line":387,"column":62}},"387":{"start":{"line":388,"column":0},"end":{"line":388,"column":51}},"388":{"start":{"line":389,"column":0},"end":{"line":389,"column":108}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":16}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":16}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":15}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":66}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":51}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":88}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":16}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":16}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":15}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":64}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":51}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":95}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":16}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":16}},"403":{"start":{"line":404,"column":0},"end":{"line":404,"column":14}},"404":{"start":{"line":405,"column":0},"end":{"line":405,"column":12}},"405":{"start":{"line":406,"column":0},"end":{"line":406,"column":0}},"406":{"start":{"line":407,"column":0},"end":{"line":407,"column":52}},"407":{"start":{"line":408,"column":0},"end":{"line":408,"column":12}},"408":{"start":{"line":409,"column":0},"end":{"line":409,"column":22}},"409":{"start":{"line":410,"column":0},"end":{"line":410,"column":22}},"410":{"start":{"line":411,"column":0},"end":{"line":411,"column":7}},"411":{"start":{"line":412,"column":0},"end":{"line":412,"column":256}},"412":{"start":{"line":413,"column":0},"end":{"line":413,"column":14}},"413":{"start":{"line":414,"column":0},"end":{"line":414,"column":10}},"414":{"start":{"line":415,"column":0},"end":{"line":415,"column":4}},"415":{"start":{"line":416,"column":0},"end":{"line":416,"column":2}},"416":{"start":{"line":417,"column":0},"end":{"line":417,"column":0}},"417":{"start":{"line":418,"column":0},"end":{"line":418,"column":26}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":418,"column":-7741}},"locations":[{"start":{"line":1,"column":0},"end":{"line":418,"column":-7741}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":0},"end":{"line":418,"column":-7741}},"loc":{"start":{"line":1,"column":0},"end":{"line":418,"column":-7741}},"line":1}},"f":{"0":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/contexts/ThemeContext.tsx": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/contexts/ThemeContext.tsx","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":78}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":18}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":26}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":1}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":0}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":76}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":31}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":43}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":17}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":68}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":3}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":17}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":2}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":0}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":89}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":46}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":48}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":44}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":5}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":0}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":19}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":61}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":17}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":53}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":12}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":56}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":5}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":15}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":0}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":47}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":0}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":10}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":59}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":16}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":28}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":4}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":2}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":0,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1},"branchMap":{"0":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":70},"end":{"line":40,"column":2}},"locations":[{"start":{"line":18,"column":70},"end":{"line":40,"column":2}}]},"1":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":39},"end":{"line":22,"column":3}},"locations":[{"start":{"line":19,"column":39},"end":{"line":22,"column":3}}]},"2":{"type":"branch","line":21,"loc":{"start":{"line":21,"column":11},"end":{"line":21,"column":38}},"locations":[{"start":{"line":21,"column":11},"end":{"line":21,"column":38}}]},"3":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":12},"end":{"line":31,"column":5}},"locations":[{"start":{"line":24,"column":12},"end":{"line":31,"column":5}}]},"4":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":34},"end":{"line":25,"column":52}},"locations":[{"start":{"line":25,"column":34},"end":{"line":25,"column":52}}]},"5":{"type":"branch","line":26,"loc":{"start":{"line":26,"column":16},"end":{"line":28,"column":11}},"locations":[{"start":{"line":26,"column":16},"end":{"line":28,"column":11}}]}},"b":{"0":[1],"1":[1],"2":[0],"3":[1],"4":[0],"5":[0]},"fnMap":{"0":{"name":"useTheme","decl":{"start":{"line":10,"column":24},"end":{"line":16,"column":2}},"loc":{"start":{"line":10,"column":24},"end":{"line":16,"column":2}},"line":10},"1":{"name":"ThemeProvider","decl":{"start":{"line":18,"column":70},"end":{"line":40,"column":2}},"loc":{"start":{"line":18,"column":70},"end":{"line":40,"column":2}},"line":18},"2":{"name":"toggleTheme","decl":{"start":{"line":33,"column":22},"end":{"line":33,"column":47}},"loc":{"start":{"line":33,"column":22},"end":{"line":33,"column":47}},"line":33}},"f":{"0":0,"1":1,"2":0}}
+,"/home/runner/work/StudyMaster/StudyMaster/src/data/sampleData.ts": {"path":"/home/runner/work/StudyMaster/StudyMaster/src/data/sampleData.ts","all":true,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":31}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":12}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":5}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":30}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":16}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":51}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":62}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":10}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":9}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":49}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":60}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":10}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":9}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":43}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":65}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":10}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":9}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":57}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":64}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":10}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":9}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":51}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":64}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":9}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":7}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":6}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":5}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":27}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":16}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":9}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":38}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":66}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":10}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":9}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":43}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":67}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":10}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":9}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":34}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":70}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":10}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":9}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":59}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":64}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":10}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":9}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":36}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":70}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":9}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":7}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":6}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":5}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":27}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":16}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":9}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":71}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":37}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":10}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":9}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":49}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":65}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":10}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":9}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":55}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":35}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":10}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":9}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":44}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":71}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":10}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":9}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":49}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":88}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":9}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":7}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":5}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":3}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":2}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":0}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":27}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":32}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":116}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":115}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":112}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":117}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":114}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":2}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":0}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":29}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":34}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":11}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":27}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":22}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":26}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":25}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":23}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":25}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":15}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":20}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":4}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":15}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":72}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":69}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":68}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":4}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":19}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":54}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":48}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":51}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":3}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":2}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":0}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":31}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":28}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":120}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":80}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":101}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":72}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":119}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":2}}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0},"branchMap":{"0":{"type":"branch","line":1,"loc":{"start":{"line":1,"column":33},"end":{"line":122,"column":-194}},"locations":[{"start":{"line":1,"column":33},"end":{"line":122,"column":-194}}]}},"b":{"0":[0]},"fnMap":{"0":{"name":"(empty-report)","decl":{"start":{"line":1,"column":33},"end":{"line":122,"column":-194}},"loc":{"start":{"line":1,"column":33},"end":{"line":122,"column":-194}},"line":1}},"f":{"0":0}}
+}
diff --git a/coverage/favicon.png b/coverage/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7
GIT binary patch
literal 445
zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF*
zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43
z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG
zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v(
z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*>
+
+
+
+ Code coverage report for All files
+
+
+
+
+
+
+
+
+
+
+
+
All files
+
+
+
+ 0.71%
+ Statements
+ 33/4639
+
+
+
+
+ 12%
+ Branches
+ 3/25
+
+
+
+
+ 4.54%
+ Functions
+ 1/22
+
+
+
+
+ 0.71%
+ Lines
+ 33/4639
+
+
+
+
+
+ Press n or j to go to the next uncovered block, b, p or k for the previous block.
+
+
+
+ Filter:
+
+
+
+
+
+
+
+
+
+ | File |
+ |
+ Statements |
+ |
+ Branches |
+ |
+ Functions |
+ |
+ Lines |
+ |
+
+
+
+ | StudyMaster |
+
+
+ |
+ 0% |
+ 0/55 |
+ 0% |
+ 0/3 |
+ 0% |
+ 0/3 |
+ 0% |
+ 0/55 |
+
+
+
+ | StudyMaster/src |
+
+
+ |
+ 0% |
+ 0/88 |
+ 0% |
+ 0/2 |
+ 0% |
+ 0/2 |
+ 0% |
+ 0/88 |
+
+
+
+ | StudyMaster/src/components |
+
+
+ |
+ 0% |
+ 0/4334 |
+ 0% |
+ 0/13 |
+ 0% |
+ 0/13 |
+ 0% |
+ 0/4334 |
+
+
+
+ | StudyMaster/src/contexts |
+
+
+ |
+ 82.5% |
+ 33/40 |
+ 50% |
+ 3/6 |
+ 33.33% |
+ 1/3 |
+ 82.5% |
+ 33/40 |
+
+
+
+ | StudyMaster/src/data |
+
+
+ |
+ 0% |
+ 0/122 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/1 |
+ 0% |
+ 0/122 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coverage/prettify.css b/coverage/prettify.css
new file mode 100644
index 0000000..b317a7c
--- /dev/null
+++ b/coverage/prettify.css
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/coverage/prettify.js b/coverage/prettify.js
new file mode 100644
index 0000000..b322523
--- /dev/null
+++ b/coverage/prettify.js
@@ -0,0 +1,2 @@
+/* eslint-disable */
+window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^
-
-
-
-