diff --git a/package.json b/package.json index ea8dc7c3..c4c7757e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "scripts": { - "server": "npx cross-env TIDDLYWIKI_PLUGIN_PATH='./plugins' TIDDLYWIKI_THEME_PATH='./themes' TIDDLYWIKI_LANGUAGE_PATH='./languages' npx tiddlywiki . --listen port=8080", + "start": "tiddlywiki --listen", "buildonline": "node -e \"require('./scripts/build').buildOnlineHTML('public-dist', 'index.html');\"", "buildoffline": "node -e \"require('./scripts/build').buildOfflineHTML('public-dist', 'offline.html');\"", "buildlibrary": "node -e \"require('./scripts/build').buildLibrary('[prefix[$:/]!prefix[$:/plugins/tiddlywiki/]!prefix[$:/themes/tiddlywiki/]!prefix[$:/languages/]!tag[$:/tags/PluginLibrary]!prefix[$:/plugins/kookma]]', 'public-dist/library');\"" @@ -8,8 +8,8 @@ "devDependencies": { "cross-env": "7.0.3", "html-minifier-terser": "7.2.0", - "tiddlywiki": "5.3.0", + "tiddlywiki": "5.3.1", "uglify-js": "3.17.4", "workbox-cli": "7.0.0" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..011f224f --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3923 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + cross-env: + specifier: 7.0.3 + version: 7.0.3 + html-minifier-terser: + specifier: 7.2.0 + version: 7.2.0 + tiddlywiki: + specifier: 5.3.1 + version: 5.3.1 + uglify-js: + specifier: 3.17.4 + version: 3.17.4 + workbox-cli: + specifier: 7.0.0 + version: 7.0.0 + +packages: + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.2): + resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.2): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.2): + resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.2): + resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.2): + resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.2): + resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.23.2(@babel/core@7.23.2): + resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.2) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2) + '@babel/types': 7.23.0 + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.2) + babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.2) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.2) + core-js-compat: 3.33.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.2): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.0 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.2)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace@2.4.2(rollup@2.79.1): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@sindresorhus/is@0.14.0: + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + dev: true + + /@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.10 + dev: true + + /@szmarczak/http-timer@1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 + dev: true + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 20.8.7 + dev: true + + /@types/minimist@1.2.4: + resolution: {integrity: sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==} + dev: true + + /@types/node@20.8.7: + resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==} + dependencies: + undici-types: 5.25.3 + dev: true + + /@types/normalize-package-data@2.4.3: + resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} + dev: true + + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.8.7 + dev: true + + /@types/responselike@1.0.2: + resolution: {integrity: sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==} + dependencies: + '@types/node': 20.8.7 + dev: true + + /@types/trusted-types@2.0.5: + resolution: {integrity: sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA==} + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.2): + resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.2): + resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + core-js-compat: 3.33.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.2): + resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /boxen@4.2.0: + resolution: {integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==} + engines: {node: '>=8'} + dependencies: + ansi-align: 3.0.1 + camelcase: 5.3.1 + chalk: 3.0.0 + cli-boxes: 2.2.1 + string-width: 4.2.3 + term-size: 2.2.1 + type-fest: 0.8.1 + widest-line: 3.1.0 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001551 + electron-to-chromium: 1.4.559 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /cacheable-request@6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.1 + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001551: + resolution: {integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==} + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /clean-css@5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} + engines: {node: '>= 10.0'} + dependencies: + source-map: 0.6.1 + dev: true + + /cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + engines: {node: '>=6'} + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /configstore@5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.11 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /core-js-compat@3.33.0: + resolution: {integrity: sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==} + dependencies: + browserslist: 4.22.1 + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: true + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /defer-to-connect@1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: true + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.7 + dev: true + + /electron-to-chromium@1.4.559: + resolution: {integrity: sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.4 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.0 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.4 + has-tostringtag: 1.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-goat@2.1.1: + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.2 + has: 1.0.4 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs@2.1.0: + resolution: {integrity: sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==} + engines: {node: '>=8'} + dependencies: + ini: 1.3.7 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /got@9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.2 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-yarn@2.1.0: + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} + engines: {node: '>=8'} + dev: true + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.2 + commander: 10.0.1 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.22.0 + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /import-lazy@2.1.0: + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} + engines: {node: '>=4'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.7: + resolution: {integrity: sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.4 + side-channel: 1.0.4 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.4 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-installed-globally@0.3.2: + resolution: {integrity: sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==} + engines: {node: '>=8'} + dependencies: + global-dirs: 2.1.0 + is-path-inside: 3.0.3 + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-npm@4.0.0: + resolution: {integrity: sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==} + engines: {node: '>=8'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-yarn-global@0.3.0: + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.8.7 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /keyv@3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + dependencies: + json-buffer: 3.0.0 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /latest-version@5.1.0: + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + engines: {node: '>=8'} + dependencies: + package-json: 6.5.0 + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /meow@7.1.1: + resolution: {integrity: sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.4 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + dev: true + + /object-inspect@1.13.0: + resolution: {integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.1 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-cancelable@1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /package-json@6.5.0: + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} + dependencies: + got: 9.6.0 + registry-auth-token: 4.2.2 + registry-url: 5.1.0 + semver: 6.3.1 + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + dev: true + + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /pupa@2.1.1: + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} + engines: {node: '>=8'} + dependencies: + escape-goat: 2.1.1 + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.3 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: true + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.2 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /registry-auth-token@4.2.2: + resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} + engines: {node: '>=6.0.0'} + dependencies: + rc: 1.2.8 + dev: true + + /registry-url@5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + dependencies: + rc: 1.2.8 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + dependencies: + lowercase-keys: 1.0.1 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.22.13 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.22.0 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /semver-diff@3.1.1: + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.13.0 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /terser@5.22.0: + resolution: {integrity: sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.10.0 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tiddlywiki@5.3.1: + resolution: {integrity: sha512-17uoTt8w3wvqaF1fqulHeeR86984N0eC8fgd0Ql1LIKgrHRu1+M3fBW8V/ikofU2s74xr6S1efREHaA2zyhe1w==} + engines: {node: '>=0.8.2'} + hasBin: true + dev: true + bundledDependencies: [] + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-readable-stream@1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-notifier@4.1.3: + resolution: {integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==} + engines: {node: '>=8'} + dependencies: + boxen: 4.2.0 + chalk: 3.0.0 + configstore: 5.0.1 + has-yarn: 2.1.0 + import-lazy: 2.1.0 + is-ci: 2.0.0 + is-installed-globally: 0.3.2 + is-npm: 4.0.0 + is-yarn-global: 0.3.0 + latest-version: 5.1.0 + pupa: 2.1.1 + semver-diff: 3.1.1 + xdg-basedir: 4.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.3 + dev: true + + /workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@babel/core': 7.23.2 + '@babel/preset-env': 7.23.2(@babel/core@7.23.2) + '@babel/runtime': 7.23.2 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.2)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2(rollup@2.79.1) + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.0.0 + workbox-broadcast-update: 7.0.0 + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-google-analytics: 7.0.0 + workbox-navigation-preload: 7.0.0 + workbox-precaching: 7.0.0 + workbox-range-requests: 7.0.0 + workbox-recipes: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + workbox-streams: 7.0.0 + workbox-sw: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-cli@7.0.0: + resolution: {integrity: sha512-sPqIMh7h8s4vXR2cXZGLUrRbXTVIeTtL4d/sZqwx8NIpRwlk0gay8Xqa4XtKKesN5PDA7cyLTIFsnopXrH/DbA==} + engines: {node: '>=16.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + chokidar: 3.5.3 + common-tags: 1.8.2 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 7.3.3 + meow: 7.1.1 + ora: 5.4.1 + pretty-bytes: 5.6.0 + stringify-object: 3.3.0 + upath: 1.2.0 + update-notifier: 4.1.3 + workbox-build: 7.0.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + dev: true + + /workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + dependencies: + workbox-background-sync: 7.0.0 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + dependencies: + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-precaching: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + dev: true + + /workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + dev: true + + /workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + dependencies: + '@types/trusted-types': 2.0.5 + workbox-core: 7.0.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true diff --git a/tiddlers/Gallary.tid b/tiddlers/Gallary.tid deleted file mode 100644 index f547193d..00000000 --- a/tiddlers/Gallary.tid +++ /dev/null @@ -1,26 +0,0 @@ -created: 20230107061654711 -creator: 马不前 -modified: 20230904042219703 -modifier: 马不前 -tags: -title: Gallary -type: text/vnd.tiddlywiki - - - -
-
点击图片放大
-<> -
- diff --git a/tiddlers/TCTSystem/config/oeyoews/info.tid b/tiddlers/TCTSystem/config/oeyoews/info.tid deleted file mode 100644 index 4f5f455d..00000000 --- a/tiddlers/TCTSystem/config/oeyoews/info.tid +++ /dev/null @@ -1,15 +0,0 @@ -created: 20230206144231024 -modified: 20230206144821779 -tags: -title: $:/config/oeyoews/info -type: text/vnd.tiddlywiki - -\define fb(label:label filter color:green) -<$image source={{{ [[]addprefix[https://img.shields.io/badge/]] [<__label__>addsuffix[-]] $filter$ [[-]addsuffix<__color__>] +[join[]] }}} /> -\end - - -<> -<> -<> - diff --git a/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json new file mode 100644 index 00000000..02bcbd0c --- /dev/null +++ b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json @@ -0,0 +1 @@ +{"tiddlers":{"$:/config/TiddlyWiki-CPL/GitHub":{"title":"$:/config/TiddlyWiki-CPL/GitHub","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(~GitHub版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(~GitHub Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为 ~GitHub Page 的版本,更新更快,但是可能需要科学上网手段。如果你在国内,而且不清楚什么是“科学上网”,请选用另一个经过 netlify.app 加速的[[版本|$:/config/TiddlyWiki-CPL/Netlify]],虽然更新有一定的延迟,但对国内用户更加友好。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is the ~GitHub Page version, which is faster to update, but may require scientific Internet access. If you are in China and are not sure what GFW is, please use another [[version|$:/config/TiddlyWiki-CPL/Netlify]] that is accelerated by netlify.app, although there is a certain delay in updating, but it is more friendly to domestic users more friendly.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"},"$:/config/TiddlyWiki-CPL/Netlify":{"title":"$:/config/TiddlyWiki-CPL/Netlify","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(大陆加速版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(Netlify Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tw-cpl.netlify.app/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为经过 netlify.app 加速的版本,对国内用户更加友好,但是更新有一定的延迟。还提供另一版本,是直接使用 ~GitHub Page 服务器的版本,更新更快,但是可能需要科学上网手段。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is a version accelerated by netlify.app, which is more friendly to China mainland users, but there is a delay in updating. There is also another version that uses the GitHub Page server directly, which is faster to update, but may require technology to overturn the GFW.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/about-banner":{"title":"$:/plugins/Gk0Wk/CPL-Repo/about-banner","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n
\n
<$text text={{{ [match[yes]then[加入我们, 共建设社区生态!]else[Join us in building a community ecology!]] }}}/>
\n\n
<$text text={{{ [match[yes]then[欢迎任何人在CPL仓库贡献更多插件!]else[Anyone is welcome to contribute more plugins to the CPL repository!]] }}}/>
\n
\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/category-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[分类]else[Categories]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/category-gallery-tab-state\"\n\ttabsList=\"[{$:/temp/CPL-Repo/categories}jsonindexes[]]\"\n\tdefault={{{ [{$:/temp/CPL-Repo/categories}jsonindexes[]first[]] }}}\n\ttemplate=\"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template\"\n\tbuttonTemplate=\"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template\"\n/>"},"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[addprefix[$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/]get[text]else[?]] :else[else[Unknown]else[?]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n<]\" field:\"category-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n"},"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo","text":"https://tw-cpl.netlify.app/repo"},"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold","text":"1"},"$:/plugins/Gk0Wk/CPL-Repo/config/repos":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/repos","text":"https://tw-cpl.netlify.app/repo https://tiddly-gittly.github.io/TiddlyWiki-CPL/repo"},"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter","text":"[has[plugin-type]] -[prefix[$:/plugins/tiddlywiki/]] -[prefix[$:/themes/tiddlywiki/]] -[prefix[$:/languages/]] -[prefix[$:/temp/]] -[[$:/core]]"},"$:/plugins/Gk0Wk/CPL-Repo/core.js":{"title":"$:/plugins/Gk0Wk/CPL-Repo/core.js","text":"(function () {\n\"use strict\";\n\nexports.name = \"cpl-repo-init\";\nexports.platforms = [\"browser\"];\nexports.after = [\"render\"];\nexports.synchronous = true;\n\n/**\n * CPL通信接口,往返,异步\n * const result = await globalThis.__tiddlywiki_cpl__('类型', { ... });\n */\nvar messagerPromise;\nvar previousEntry;\nvar cpl = function (type, payload) {\n\tvar entry = $tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/current-repo', 'https://tiddly-gittly.github.io/TiddlyWiki-CPL/repo');\n\tif (previousEntry !== entry && globalThis.__tiddlywiki_cpl__reset__ !== undefined) globalThis.__tiddlywiki_cpl__reset__();\n\tpreviousEntry = entry;\n if (messagerPromise === undefined) messagerPromise = new Promise(function (rrr) {\n var counter = 0;\n var callbackMap = new Map();\n var iframe = $tw.utils.domMaker(\"iframe\", {\n document,\n attributes: { src: entry },\n style: { display: \"none\" },\n });\n function ccc(e) {\n //console.log('<=', e.data);\n if (iframe.contentWindow === null || e.source !== iframe.contentWindow)\n return;\n if (e.data.target !== \"tiddlywiki-cpl\" || e.data.token === undefined)\n return;\n switch (e.data.type) {\n case \"Ready\": {\n if (counter === 0) {\n counter++;\n rrr(function (type, payload) {\n return new Promise(function (resolve, reject) {\n var token = counter++;\n callbackMap.set(token, [resolve, reject]);\n //console.log('=>', { type, token, target: \"tiddlywiki-cpl\", ...payload });\n iframe.contentWindow.postMessage(\n Object.assign({}, payload, {\n type: type,\n token: token,\n target: \"tiddlywiki-cpl\",\n }),\n \"*\"\n );\n });\n });\n }\n break;\n }\n default: {\n var r = callbackMap.get(e.data.token);\n if (r !== undefined) {\n callbackMap.delete(e.data.token);\n r[e.data.success ? 0 : 1](e.data.payload);\n }\n break;\n }\n }\n }\n window.addEventListener(\"message\", ccc);\n document.body.appendChild(iframe);\n globalThis.__tiddlywiki_cpl__reset__ = function () {\n delete globalThis.__tiddlywiki_cpl__reset__;\n messagerPromise = undefined;\n window.removeEventListener(\"message\", ccc);\n iframe.parentNode.removeChild(iframe);\n callbackMap.forEach((r) => {\n r[1]();\n });\n };\n });\n return messagerPromise.then(function (r) { return r(type, payload) });\n};\n\nfunction getAutoUpdateTime() {\n\treturn parseInt($tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes', '-1')) || -1;\n}\n\n// 自动更新服务、各种消息通信\nexports.startup = function () {\n globalThis.__tiddlywiki_cpl__ = cpl;\n\t// 检测更新\n\tvar lastUpdateTime = -1;\n var updateLock = false;\n\tfunction update(notify) {\n try {\n if (updateLock) return;\n updateLock = true;\n lastUpdateTime = Date.now();\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: 'yes' });\n // filter 和 网络请求并发一下\n var updateP = cpl('Update');\n // 根据条件筛选插件\n var plugins = $tw.wiki.filterTiddlers($tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/update-filter'));\n var t = [];\n updateP.then(function (text) {\n // 统计需要更新的插件\n var updatePlugins = JSON.parse(text);\n for (var title of plugins) {\n var lastestVersion = updatePlugins[title]; // [version, coreVersion]\n if (lastestVersion === undefined) continue; // 不存在该插件\n if (lastestVersion[1] && $tw.utils.compareVersions($tw.version, lastestVersion[1].trim()) < 0) continue; // 插件兼容性检查\n var version = $tw.wiki.getTiddler(title).fields.version;\n if (version && lastestVersion[0] && $tw.utils.compareVersions(version.trim(), lastestVersion[0].trim()) >= 0) continue; // 插件是否更新\n t.push(title);\n }\n if (t.length > 0) {\n // 写入临时信息\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/update-plugins', type: 'application/json', text: JSON.stringify(t) });\n if (notify !== false) {\n // 暂时修改通知停留时间为 10s\n var tt = $tw.config.preferences.notificationDuration;\n $tw.config.preferences.notificationDuration = 10_000;\n // 弹出通知框\n $tw.notifier.display(\"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template\", {\n variables: { updateCount: t.length },\n });\n $tw.config.preferences.notificationDuration = tt;\n }\n }\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/updaing');\n updateLock = false;\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: String(err) });\n updateLock = false;\n });\n } catch (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: String(err) });\n updateLock = false;\n }\n\t}\n\n\t// 监听自动更新策略的更改,调整更新间隔或者开关自动更新\n\tvar autoUpdateInterval;\n\tvar autoTimeout;\n\t$tw.wiki.addEventListener(\"change\", function (changes) {\n\t\tif($tw.utils.hop(changes, '$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes')) {\n var time = getAutoUpdateTime();\n\t\t\tif (autoUpdateInterval !== undefined) clearInterval(autoUpdateInterval);\n\t\t\tif (autoTimeout !== undefined) clearTimeout(autoTimeout);\n\t\t\tautoUpdateInterval = undefined;\n\t\t\tautoTimeout = undefined;\n\t\t\tif (time > 0) {\n\t\t\t\tautoTimeout = setTimeout(function () {\n\t\t\t\t\tupdate();\n\t\t\t\t\tautoUpdateInterval = setInterval(function () {\n\t\t\t\t\t\tupdate();\n\t\t\t\t\t}, time * 60_000);\n\t\t\t\t}, lastUpdateTime === -1 ? 0 : time * 60_000 + lastUpdateTime - Date.now());\n\t\t\t}\n\t\t}\n if($tw.titleWidgetNode.refresh(changes, $tw.titleContainer, null)) {\n document.title = $tw.titleContainer.textContent;\n }\n\t});\n\t// 最初启用\n\tautoTimeout = setTimeout(function () {\n var time = getAutoUpdateTime();\n\t\tif (time > 0) {\n update();\n autoUpdateInterval = setInterval(function () {\n update();\n }, time * 60_000);\n }\n\t}, 3_000);\n\n // 消息监听\n $tw.rootWidget.addEventListener(\"cpl-update-check\", function () {\n update();\n });\n var installRequestLock = false;\n $tw.rootWidget.addEventListener(\"cpl-install-plugin-request\", function (event) {\n try {\n if (installRequestLock) return;\n var paramObject = event.paramObject || {};\n var title = paramObject.title;\n var version = paramObject.version || \"latest\";\n if (!title) return;\n installRequestLock = true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/instal-plugin-requesting', text: 'yes', 'plugin-title': title });\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify', { variables: {} });\n var existingTitle = new Set(); // 避免环\n var versionsMap = {};\n var versionsMapLatest = {};\n var sizesMap = {};\n // 递归检查依赖\n var title_ = title;\n function recursiveInstallCheck(title) {\n return new Promise(function (resolve, reject) {\n cpl('Query', { plugin: title }).then(function (text) {\n var data = JSON.parse(text);\n existingTitle.add(title);\n if (title === title_ && data.versions.indexOf(version) < 0) version = data.latest;\n versionsMap[title] = data.versions;\n versionsMapLatest[title] = data.latest;\n sizesMap[title] = data['versions-size'] || {};\n var t = new Set();\n var promisese = [];\n var subtree = {};\n\n // for没有局部作用域,var不是迭代局部的\n function fuckUpVar(ti) {\n t.add(ti);\n if (existingTitle.has(ti)) {\n subtree[ti] = {};\n } else {\n promisese.push(recursiveInstallCheck(ti).then(\n function (tt) { subtree[ti] = tt; },\n function (tt) { reject(tt); },\n ));\n }\n }\n if (data['parent-plugin']) {\n fuckUpVar(data['parent-plugin']);\n }\n for (var ti of $tw.utils.parseStringArray(data.dependents || '')) {\n if (t.has(ti)) continue;\n fuckUpVar(ti);\n }\n Promise.all(promisese).then(function () {\n resolve(subtree);\n });\n }).catch(function (err) {\n if (err.startsWith('404')) err = '[404] Cannot find plugin '+ title;\n reject(err);\n });\n });\n }\n\n recursiveInstallCheck(title).then(function (tree) {\n var f = {};\n for (var ti of existingTitle) {\n if (ti === title) continue;\n f['cpl-plugin#version#' + ti] = versionsMapLatest[ti];\n f['cpl-plugin#install#' + ti] = $tw.wiki.tiddlerExists(ti) ? \"no\" : \"yes\";\n }\n f['cpl-plugin#version#' + title] = version;\n $tw.wiki.addTiddler({\n title: '$:/temp/CPL-Repo/instal-plugin-request-tree/' + title,\n type: 'application/json',\n text: JSON.stringify({ title: title, versions: versionsMap, sizes: sizesMap, tree: tree }),\n ...f,\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/instal-plugin-requesting');\n $tw.modal.display('$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template', {\n variables: {\n requestTiddler: '$:/temp/CPL-Repo/instal-plugin-request-tree/' + title,\n },\n event: event,\n });\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/instal-plugin-requesting', text: err, 'plugin-title': title });\n }).finally(function () {\n installRequestLock = false;\n });\n } catch (err) {\n console.error(err);\n installRequestLock = false;\n }\n });\n var installLock = false;\n $tw.rootWidget.addEventListener(\"cpl-install-plugin\", function (event) {\n try {\n if (installLock) return;\n var paramObject = event.paramObject || {};\n var response = paramObject.response;\n if (!$tw.wiki.tiddlerExists(response)) return;\n var responseTiddler = $tw.wiki.getTiddler(response).fields;\n $tw.wiki.deleteTiddler(response);\n var data = JSON.parse(responseTiddler.text);\n var rootPlugin = data.title;\n var plugins = [[rootPlugin, responseTiddler['cpl-plugin#version#'+rootPlugin]]];\n for (var plugin in data.versions) {\n if (responseTiddler['cpl-plugin#install#'+plugin] === 'yes' && responseTiddler['cpl-plugin#version#'+plugin]) {\n plugins.push([plugin, responseTiddler['cpl-plugin#version#'+plugin]]);\n }\n }\n var total = plugins.length;\n var count = 0;\n installLock=true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/installing-plugin', text: 'yes', 'plugin-title': rootPlugin });\n Promise.all(plugins.map(function (t) {\n return cpl('Install', { plugin: t[0], version: t[1] }).then(function (text) {\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-notify', {\n variables: { plugin: t[0], count: ++count, total: total },\n });\n return new $tw.Tiddler($tw.utils.parseJSONSafe(text));\n });\n })).then(function (tiddlers) {\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/installing-plugin');\n for (var tiddler of tiddlers) {\n $tw.wiki.addTiddler(tiddler);\n }\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify', { variables: {} });\n }).catch(function (err) {\n console.error(err);\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify', {\n variables: { message: err },\n });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/installing-plugin', text: err, 'plugin-title': rootPlugin });\n }).finally(function () {\n installLock = false;\n });\n } catch (e) {\n console.error(e);\n installLock = false;\n }\n });\n var tmpIndex;\n var tmpAllPlugins;\n var tmpCategories;\n var getPluginsIndexLock = false;\n $tw.rootWidget.addEventListener(\"cpl-get-plugins-index\", function () {\n try {\n if (getPluginsIndexLock) return;\n getPluginsIndexLock = true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/getting-plugins-index', text: 'yes' });\n cpl('Index').then(function (text) {\n var data = JSON.parse(text);\n var pluginMap = {};\n var categories = {};\n var authors = {};\n var allPlugins = [];\n var allTags = new Set();\n for (var p of data) {\n pluginMap[p.title] = p;\n allPlugins.push(p.title);\n if (p.category && p.category !== 'Unknown') {\n if (categories[p.category] === undefined) categories[p.category] = [];\n categories[p.category].push(p.title);\n }\n if (p.author) {\n if (authors[p.author] === undefined) authors[p.author] = [];\n authors[p.author].push(p.title);\n }\n if (!p.title.startsWith('$:/languages') && p.title.split('/').length === 4) {\n var a = p.title.split('/')[2];\n if (a !== p.author) {\n if (authors[a] === undefined) authors[a] = [];\n authors[a].push(p.title);\n }\n }\n if (p.tags) {\n for (var tag of $tw.utils.parseStringArray(p.tags)) {\n allTags.add(tag);\n }\n }\n }\n tmpIndex = data;\n tmpAllPlugins = allPlugins;\n tmpCategories = categories;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/plugins-index', text: JSON.stringify(pluginMap), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/categories', text: JSON.stringify(categories), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/authors', text: JSON.stringify(authors), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/tags', text: JSON.stringify(Array.from(allTags)), type: 'application/json' });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/getting-plugins-index');\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/getting-plugins-index', text: err });\n }).finally(function () {\n getPluginsIndexLock = false;\n });\n } catch (err) {\n console.error(err);\n getPluginsIndexLock = false;\n }\n });\n var queryPluginLocks = new Set();\n $tw.rootWidget.addEventListener(\"cpl-query-plugin\", function (event) {\n try {\n var paramObject = event.paramObject || {};\n var title = paramObject.title;\n if (queryPluginLocks.has(title)) return;\n if (!title) return;\n queryPluginLocks.add(title);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/querying-plugin/' + title, text: 'yes' });\n cpl('Query', { plugin: title }).then(function (text) {\n var data = JSON.parse(text);\n // 计算作者\n if (!data.author) {\n if (!data.title.startsWith('$:/languages') && data.title.split('/').length === 4) {\n data.author = data.title.split('/')[2];\n }\n }\n // 相似推荐\n var suggestions = [];\n if (tmpIndex && data.category !== 'Language') {\n // 基于标签距离进行推荐\n if (data.tags) {\n var tags = new Set($tw.utils.parseStringArray(data.tags).map(function (t) { return t.toLowerCase(); }));\n for (var plugin of tmpIndex) {\n if (!plugin.tags || plugin.title === title) continue;\n var weight = 0;\n for (var t of $tw.utils.parseStringArray(data.tags)) {\n if (tags.has(t.toLowerCase())) weight++;\n }\n if (weight === 0) continue;\n suggestions.push([plugin.title, weight]);\n }\n }\n // 按照权重排序\n suggestions.sort(function (a, b) { return b[1] - a[1]; });\n suggestions = suggestions.slice(0, 20).map(function (t) { return t[0] });\n // 如果数量不够,用同category\n if (suggestions.length < 20 && data.category !== '' && data.category !== 'Unknown') {\n var tset = new Set(suggestions);\n for (var p of (tmpCategories[data.category] ?? [])) {\n if (tset.has(p) || p === title) continue;\n suggestions.push(p);\n if (suggestions.length >= 20) break;\n }\n }\n }\n data.suggestions = $tw.utils.stringifyList(suggestions);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/plugin-info/' + title, text: JSON.stringify(data), type: 'application/json' });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/querying-plugin/' + title);\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/querying-plugin/' + title, text: err });\n }).finally(function () {\n queryPluginLocks.delete(title);\n });\n } catch (err) {\n console.error(err);\n if (event.paramObject && event.paramObject.title) queryPluginLocks.delete(event.paramObject.title);\n }\n });\n // 插件查询\n var searchPluginsLock = false;\n $tw.rootWidget.addEventListener(\"cpl-search-plugins\", function (event) {\n try {\n if (searchPluginsLock) return;\n if (tmpAllPlugins === undefined) return;\n var paramObject = event.paramObject || {};\n var mode = paramObject.mode ?? '';\n var text = paramObject.text ?? '';\n var saveTo = paramObject.saveTo ?? '';\n if (!saveTo) return;\n searchPluginsLock = true;\n switch (mode) {\n case \"mix\": {\n if (text.length < 3) {\n // 字太少,匹配量爆炸,直接返回所有\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(tmpAllPlugins),\n type: 'application/json'\n });\n } else {\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: 'yes' });\n var patterns = new Set(text.split(/\\s+/).map(function (t) { return t.toLowerCase(); }));\n patterns = new Set(Array.from(patterns).slice(0, 10)); // 再多性能撑不住了\n var suggestions = [];\n for (var plugin of tmpIndex) {\n var weight = 0;\n // 标题、作者、名称的搜索 10 权重\n for (var f of ['title', 'author', 'name']) {\n if (plugin[f]) {\n var t = plugin[f].toLowerCase();\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 10;\n }\n }\n }\n // tag 的搜索 5 权重\n if (plugin.tags) {\n for (var t of $tw.utils.parseStringArray(plugin.tags)) {\n if (patterns.has(t.toLowerCase())) weight += 5;\n }\n }\n // description 搜索 2 权重\n if (plugin.description) {\n var t = plugin.description.toLowerCase();\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 2;\n }\n }\n // readme 搜索 1 权重\n if (plugin.description) {\n var t = plugin.description;\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 1;\n }\n }\n if (weight === 0) continue;\n suggestions.push([plugin.title, weight]);\n }\n // 按照权重排序\n suggestions.sort(function (a, b) { return b[1] - a[1]; });\n suggestions = suggestions.map(function (t) { return t[0] });\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(suggestions),\n type: 'application/json'\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/searching-plugin');\n }\n break;\n }\n case \"tags\": {\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: 'yes' });\n var tags = new Set($tw.utils.parseStringArray(text).map(function (t) { return t.toLowerCase(); }));\n var result = [];\n for (var plugin of tmpIndex) {\n if (!plugin.tags) continue;\n var matched = true;\n for (var t of $tw.utils.parseStringArray(plugin.tags)) {\n if (tags.has(t.toLowerCase())) continue;\n matched = false;\n break;\n }\n if (matched) result.push(plugin.title);\n }\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(result),\n type: 'application/json'\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/searching-plugin');\n break;\n }\n default: {\n return;\n }\n }\n searchPluginsLock = false;\n } catch (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: String(err) });\n searchPluginsLock = false;\n }\n });\n};\n\n/*\n安装插件\n<$action-sendmessage $message=\"cpl-install-plugin\" title=\"xxx\" version=\"latest\"/>\n$:/temp/CPL-Repo/installing-plugin 如果为 yes 说明正在安装,请勿进行其他操作 如果不是yes,如果非空说明是错误信息 plugin-title字段是正在安装的插件\n\n获取所有插件的索引\n<$action-sendmessage $message=\"cpl-get-plugins-index\"/>\n$:/temp/CPL-Repo/plugins-index 所有信息\n$:/temp/CPL-Repo/getting-plugins-index 同上\n\n查询某个插件的信息\n<$action-sendmessage $message=\"cpl-query-plugin\" title=\"xxx\"/>\n$:/temp/CPL-Repo/plugin-info/<插件title> 插件的相关信息\n$:/temp/CPL-Repo/querying-plugin/<插件title> 同上\n*/\n})();\n","module-type":"startup","tags":[],"type":"application/javascript"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"!! <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[安装完成]else[Installation completed]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"!! <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[安装失败]else[Installation failed]] }}} />\n\n<>"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[match[yes]]\" variable=\"t\">\n\n!! 请稍候...\n\n正在下载第 <> 个插件(共 <> 个): <>\n\n\n\n<$list filter=\"[!match[yes]]\" variable=\"t\">\n\n!! Please wait...\n\nDownloading the <> of plugins (total <>): <>\n\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/home-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/home-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[首页]else[Home]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\\define go-search()\n<$action-sendmessage\n $message=\"cpl-search-plugins\"\n mode=\"mix\"\n text={{$:/temp/CPL-Repo/searchplugin-home/input}}\n saveTo=\"$:/temp/CPL-Repo/searchplugin-home/result\"\n/>\n\\end\n\n
\n
\n<$macrocall\n $name=\"keyboard-driven-input\"\n tiddler=\"$:/temp/CPL-Repo/searchplugin-home/input\"\n tag=\"input\"\n class=\"tc-edit-texteditor tc-popup-handle\"\n focus=\"true\"\n filterMinLength=\"2\"\n placeholder={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[搜索插件...]else[Search for plugin...]] }}}\n inputAcceptActions=<>\n class=\"tc-titlebar tc-edit-texteditor\"\n/>\n
\n<$button class=\"tc-primary-btn tc-btn-big-green cpl-plugin-search-go\" disabled={{$:/temp/CPL-Repo/searching-plugin}}>\n <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[搜索中...]else[搜索]] :else[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[Searching...]else[Search]] }}} />\n <>\n\n
\n<$list filter=\"[[$:/temp/CPL-Repo/searching-plugin]is[tiddler]!field:text[yes]]\">\n
\n\t<$text text={{{ [match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n
\n\n<$list filter=\"[[$:/temp/CPL-Repo/searchplugin-home/result]is[tiddler]then[yes]else[no]]\" variable=\"go\">\n\n<$list filter=\"[match[yes]]\" variable=\"t\">\n<>\n\n\n<$list filter=\"[match[no]]\" variable=\"t\">\n<>\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[获取安装信息中,请稍候]else[Getting installation information, please wait]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template","code-body":"yes","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[请确认安装]else[Please Confirm to Install]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\n\\define dependents-tree(json,checked-title,versions,sizes)\n<$list filter=\"[<__json__>jsonindexes[]]\" variable=\"plugin\">\n
\n <$let install-field={{{ [[cpl-plugin#install#]addsuffix] }}} version-field={{{ [[cpl-plugin#version#]addsuffix] }}}>\n
\n \n ''<$text text=<>/>'' \n <$let v={{{ [<__checked-title__>get] }}}>\n <$macrocall $name=\"plugin-size\" size={{{ [<__sizes__>jsonget,else[0]] }}} />\n \n \n \n <$checkbox tiddler=<<__checked-title__>> field=<> checked=\"yes\" unchecked=\"no\" default=\"no\">\n <$text text={{{ [<__checked-title__>getmatch[yes]] :then[match[yes]then[即将安装:]else[Will be installed:]] :else[match[yes]then[不会安装]else[Will not be installed]] }}} />\n \n <$list filter=\"[<__checked-title__>getmatch[yes]]\" variable=\"t\">\n  \n <$select tiddler=<<__checked-title__>> field=<>>\n <$list filter=\"[<__versions__>jsonget]\" variable=\"version\">\n \n \n \n \n \n
\n <$macrocall $name=\"dependents-tree\" json={{{ [<__json__>jsonextract] }}} checked-title=<<__checked-title__>> versions=<<__versions__>> sizes=<<__sizes__>> />\n \n
\n\n\\end\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$let json={{{ [get[text]] }}}>\n\n<<<\n<$let title={{{ [jsonget[title]] }}}>\n''<$text text={{{ [match[yes]then[即将安装:]else[To be installed:]] }}}/>''\n<$text text=<>/>   \n''<$text text={{{ [<chinese>match[yes]then[选择版本:]else[Select version:]] }}}/>''\n<$select tiddler=<<requestTiddler>> field={{{ [[cpl-plugin#version#]addsuffix<title>] }}}>\n<$list filter=\"[<json>jsonget[versions],<title>]\" variable=\"version\">\n<option value=<<version>>><$text text=<<version>>/></option>\n</$list>\n</$select>\n</$let>\n<<<\n\n<!-- 依赖树 -->\n<$list filter=\"[<json>jsonextract[tree]jsonindexes[]count[]compare:integer:gt[0]]\" variable=\"t\">\n<$list filter=\"[<chinese>match[yes]]\" variable=\"t\">\n\n这个插件有一些依赖项,在安装插件之前,将会递归地安装这些插件,如果这些插件没有被成功安装,将会回滚所有安装动作。\n\n你可以自行选择安装哪些插件并选择其版本。插件依赖树如下:\n\n</$list>\n<$list filter=\"[<chinese>!match[yes]]\" variable=\"t\">\n\nThis plugin has some dependencies that will be installed recursively before installing the plugin, and if these plugins are not installed successfully, all installation actions will be rolled back.\n\nIt is up to you to choose which plugins to install and select their versions. The plugin dependency tree is as follows:\n\n</$list>\n</$list>\n<div style=\"margin-left:-1em;margin-right:6px;\">\n <$macrocall\n $name=\"dependents-tree\"\n json={{{ [<json>jsonextract[tree]] }}}\n checked-title=<<requestTiddler>>\n versions={{{ [<json>jsonextract[versions]] }}}\n sizes={{{ [<json>jsonextract[sizes]] }}}\n />\n</div>\n<hr/>\n\n<$list filter=\"[<chinese>match[yes]]\" variable=\"t\">\n\n注意:虽然 CPL 对安装失败有一定的回滚措施,但是无法避免因插件自身以及插件间相互作用所产生的潜在风险,包括但不限于\n\n* 浏览器崩溃;\n* Wiki 系统受损或数据丢失;\n* 插件内含恶意脚本的执行造成隐私泄露或系统损坏;\n\nCPL [[接受恶意插件举报|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]并将下架这类插件,但 CPL 不能保证其中收录的所有插件均安全可用。如您在安装后出现任何问题造成损失,CPL 无法负责。\n\n@@background:#e91e3db0;color:white;padding:4px;''因此,在安装任何插件前,请备份您的Wiki!''@@\n\n即便如此,您依然要安装吗?\n\n</$list>\n\n<$list filter=\"[<chinese>!match[yes]]\" variable=\"t\">\n\nNote: Although the CPL has some rollback measures for failed installations, it is not immune to the potential risks arising from the plugins themselves and from interactions between plugins, including but not limited to\n\n* Browser crashes;\n* Damage to the Wiki system or loss of data;\n* Privacy leakage or system damage caused by the execution of malicious scripts contained in the plugin;\n\nCPL [[accepts reports of malicious plugins|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]] and will take down such plugins, but CPL cannot guarantee that all plugins included are safe and available. However, CPL cannot guarantee that all plugins are safe and available. CPL cannot be held responsible for any damage caused by any problem that occurs after you have installed the plugin.\n\n@@background:#e91e3db0;color:white;width:100%;padding:4px;''Therefore, please back up your wiki before installing any plugins!''@@\n\nEven so, do you still want to install it?\n\n</$list>\n\n<$button class=\"tc-btn-big-green tc-primary-btn\" message=\"tm-close-tiddler\">\n<$action-sendmessage $message=\"cpl-install-plugin\" response=<<requestTiddler>> />\n{{$:/core/images/done-button}}\n \n<$text text={{{ [<chinese>match[yes]then[确认安装]else[Confirm to Install]] }}} />\n</$button>\n\n</$let>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list":{"title":"$:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define paged-plugin-list-control(class2:\"\")\n\\whitespace trim\n<$list filter=\"[<pageMin>!match<pageMax>]\">\n<div class=\"$class2$\">\n <div>\n <$list filter=\"[<page>!match<lastPage>]\">\n <$button setTitle=<<pageState>> setTo=<<lastPage>>>{{$:/core/images/left-arrow}}</$button>\n </$list>\n </div>\n <span><$text text={{{ [<page>add[1]] }}}/> / <$text text={{{ [<pageMax>add[1]] }}}/></span>\n <div>\n <$list filter=\"[<page>!match<nextPage>]\">\n <$button setTitle=<<pageState>> setTo=<<nextPage>>>{{$:/core/images/right-arrow}}</$button>\n </$list>\n </div>\n</div>\n</$list>\n\\end\n\\define paged-plugin-list(filter,field,pageSize:\"10\",indexTitle:\"$:/temp/CPL-Repo/plugins-index\",class1:\"\",class2:\"\")\n\\whitespace trim\n<$let pageSize={{{ [<__pageSize__>min[1]] }}} indexTitle=<<__indexTitle__>> pageState=<<qualify \"$:/temp/CPL-Repo/paged-plugin-list-page\">> pluginCount={{{ $filter$ +[count[]] }}}>\n<$let pageMin=\"0\" pageMax={{{ [<pluginCount>divide<__pageSize__>ceil[]subtract[1]max[0]] }}}>\n<$let page={{{ [<pageState>get[text]else<pageMin>] +[max<pageMin>min<pageMax>] }}}>\n<$let firstIndex={{{ [<page>multiply<__pageSize__>] }}} nextPage={{{ [<page>add[1]min<pageMax>] }}} lastPage={{{ [<page>subtract[1]max<pageMin>] }}}>\n<<paged-plugin-list-control \"$class2$\">>\n<div class=\"$class1$\">\n <$list filter=\"$filter$ +[rest<firstIndex>first<__pageSize__>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n</div>\n<<paged-plugin-list-control \"$class2$\">>\n</$let>\n</$let>\n</$let>\n</$let>\n\\end\n"},"$:/plugins/Gk0Wk/CPL-Repo/panel":{"title":"$:/plugins/Gk0Wk/CPL-Repo/panel","caption":"CPL","list-after":"$:/core/ui/ControlPanel/Plugins","tags":["$:/tags/MoreSideBar","$:/tags/ControlPanel"],"type":"text/vnd.tiddlywiki","text":"<!-- 在侧栏不显示 -->\n<$list filter=\"[<listItem>!match[$:/core/ui/SideBarSegments/tabs]]\">\n{{$:/plugins/Gk0Wk/CPL-Repo/about-banner}}\n</$list>\n\n<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/panel-tab-state\"\n\ttabsList=\"plugin-database uninstall-manager settings +[addprefix[$:/plugins/Gk0Wk/CPL-Repo/]]\"\n\tdefault=\"$:/plugins/Gk0Wk/CPL-Repo/plugin-database\"\n/>\n"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-database":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-database","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[插件数据库]else[Plugin Database]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$button disabled={{{ [{$:/temp/CPL-Repo/getting-plugins-index}match[yes]else[no]] }}} class=\"tc-btn-big-green tc-primary-btn\">\n<$action-sendmessage $message=\"cpl-get-plugins-index\" />\n{{$:/core/images/download-button}}\n \n<$text text={{{ [[$:/temp/CPL-Repo/plugins-index]is[tiddler]] :then[<chinese>match[yes]then[刷新数据库]else[Refresh Database]] :else[<chinese>match[yes]then[加载数据库]else[Load Database]] }}} />\n</$button>\n\n<span style=\"opacity:0.5;\"><$text text={{{ [<chinese>match[yes]then[当前镜像]else[Current mirror]] }}}/>: <$text text={{{ [{$:/plugins/Gk0Wk/CPL-Repo/config/current-repo}!is[blank]else[https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/all]] }}} /></span>\n\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n\n<!-- 加载中提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n\n<$list filter=\"[[$:/temp/CPL-Repo/plugins-index]is[tiddler]]\" variable=\"ready\">\n<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/plugin-database-tab-state\"\n\ttabsList=\"home-gallery category-gallery tags-gallery update-manager +[addprefix[$:/plugins/Gk0Wk/CPL-Repo/]]\"\n\tdefault=\"$:/plugins/Gk0Wk/CPL-Repo/home-gallery\"\n/>\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-list-item":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-list-item","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define tag-plain(text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin-right:6px;\">\n\t{{$icon$}}$text$\n</span>\n\\end\n\n<!-- 安装插件的按钮 -->\n\\define install-plugin-button(plugin,libraryVersion,installedVersion)\n\\whitespace trim\n<div>\n <$let libraryVersion=<<__libraryVersion__>> installedVersion=<<__installedVersion__>> plugin=<<__plugin__>>>\n <$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n <$button class={{{ [<installedVersion>!is[blank]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}} disabled={{{ [[$:/temp/CPL-Repo/instal-plugin-requesting]field:text[yes]else[]] [[$:/temp/CPL-Repo/installing-plugin]field:text[yes]else[]] +[unique[]match[yes]limit[1]else[no]] }}}>\n <$action-sendmessage $message=\"cpl-install-plugin-request\" title=<<plugin>> version=<<libraryVersion>>/>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]field:plugin-title<plugin>]\">{{$:/core/images/timestamp-on}}</$list>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]!field:plugin-title<plugin>]\">\n {{$:/core/images/download-button}}\n \n <!-- 根据版本判断安装/升级/降级/重装 -->\n <$list filter=\"[<installedVersion>is[blank]]\">{{$:/language/ControlPanel/Plugins/Install/Caption}}</$list>\n <$list filter=\"[<installedVersion>!is[blank]]\">\n <$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Update/Caption}}</$list>\n <$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}</$list>\n <$list filter=\"[<libraryVersion>compare:version:eq<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}</$list>\n </$list>\n </$list>\n </$button>\n </$set>\n </$let>\n</div>\n\\end\n\n\\define plugin-list-item(json,field,show-suggestion:\"yes\",class:\"\")\n\\whitespace trim\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<div class=\"$class$\">\n<$let json=<<__json__>>>\n<$let\n title={{{ [<json>jsonget[title]] }}}\n tags={{{ [<json>jsonget[tags]] }}}\n icon={{{ [<json>jsonget[icon]trim[]] }}}\n type={{{ [<json>jsonget[type]else[plugin]] }}}\n name={{{ [<json>jsonget[name]] ~[<json>jsonget[title]split[/]last[1]] }}}\n description={{{ [<json>jsonget[description]] }}}\n version={{{ [<json>jsonget[version]] }}}\n category={{{ [<json>jsonget[category]!is[blank]else[Unknown]] }}}\n installedVersion={{{ [<json>jsonget[title]get[version]] }}}\n detailJsonTitle={{{ $:/temp/CPL-Repo/plugin-info [<json>jsonget[title]] +[join[/]] }}}\n detailJsonStateTitle={{{ $:/temp/CPL-Repo/querying-plugin [<json>jsonget[title]] +[join[/]] }}}\n>\n<$let popup-state={{{ $:/temp/CPL-Repo/popup-state [<__field__>] [<title>] +[join[/]] }}}>\n<!-- 插件简介 -->\n<div class=\"tc-plugin-info\">\n <!-- 展开/收起按钮 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n <$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n <$action-sendmessage $message=\"cpl-query-plugin\" title=<<title>>/>\n {{$:/core/images/chevron-right}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n {{$:/core/images/chevron-down}}\n </$button>\n </$reveal>\n </div>\n <!-- 插件图标 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n <$list filter=\"[<icon>!is[blank]]\">\n <img src=<<icon>>/>\n </$list>\n <$list filter=\"[<icon>is[blank]]\">\n <$transclude tiddler={{{ [[$:/core/images/plugin-generic-]addsuffix<type>] }}}/>\n </$list>\n </div>\n <!-- 标题,简介,版本,是否安装,标签分类 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n <h1><strong><$text text=<<name>>/></strong>: <$text text=<<description>>/></h1>\n <h2><$text text=<<title>>/></h2>\n <div><em><$text text=<<version>>/></em></div>\n <div style=\"padding-top:4px;\">\n <$macrocall $name=\"tag-plain\" text={{{ [<chinese>match[yes]] :then[<category>addprefix[$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/]get[text]else[未分类]] :else[<category>] }}} icon=\"$:/core/images/folder\" bg=\"#3f51b5\" color=\"#fff\" />\n <$let bg={{{ [{$:/palette}getindex[tag-background]] }}} color={{{ [{$:/palette}getindex[foreground]] }}}>\n <$list filter=\"[enlist<tags>]\" variable=\"tag\">\n <$macrocall $name=\"tag-plain\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> />\n </$list>\n </$let>\n </div>\n <$list filter=\"[<installedVersion>!is[blank]]\" variable=\"t\">\n <div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div>\n </$list>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]is[tiddler]field:plugin-title<plugin>]\">\n <$list filter=\"[{$:/temp/CPL-Repo/instal-plugin-requesting}match[yes]]\">\n <span style=\"color:#3ed044;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[安装准备中...]else[Preparing installation...]] }}}/></span>\n </$list>\n <$list filter=\"[{$:/temp/CPL-Repo/instal-plugin-requesting}!match[yes]]\">\n <span style=\"color:#fd160e;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[出错: ]else[Error: ]addsuffix{$:/temp/CPL-Repo/instal-plugin-requesting}] }}}/></span>\n </$list>\n </$list>\n <$list filter=\"[[$:/temp/CPL-Repo/installing-plugin]is[tiddler]field:plugin-title<plugin>]\">\n <$list filter=\"[{$:/temp/CPL-Repo/installing-plugin}match[yes]]\">\n <span style=\"color:#3ed044;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[安装中...]else[Installing...]] }}}/></span>\n </$list>\n <$list filter=\"[{$:/temp/CPL-Repo/installing-plugin}!match[yes]]\">\n <span style=\"color:#fd160e;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[出错: ]else[Error: ]addsuffix{$:/temp/CPL-Repo/installing-plugin}] }}}/></span>\n </$list>\n </$list>\n </div>\n <!-- 安装按钮 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n <$macrocall $name=\"install-plugin-button\" plugin=<<title>> libraryVersion=<<version>> installedVersion=<<installedVersion>> />\n </div>\n</div>\n<!-- 详情 -->\n<$list filter=\"[<popup-state>field:text[yes]]\">\n<div class=\"tc-plugin-info-dropdown\">\n <!-- 错误提示 -->\n <$list filter=\"[<detailJsonStateTitle>is[tiddler]!field:text[yes]]\">\n <div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n <$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n <$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n </div>\n </$list>\n <!-- 加载中提示 -->\n <$list filter=\"[<detailJsonStateTitle>is[tiddler]field:text[yes]]\">\n <div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n <$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n </div>\n </$list>\n <!-- 插件详情 -->\n <$list filter=\"[<detailJsonStateTitle>!is[tiddler]]\" veriable=\"t\">\n <$let json={{{ [<detailJsonTitle>get[text]] }}}>\n <$let\n title={{{ [<json>jsonget[title]] }}}\n readme={{{ [<json>jsonget[readme]] }}}\n parent-plugin={{{ [<json>jsonget[parent-plugin]] }}}\n dependents={{{ [<json>jsonget[dependents]] }}}\n latest={{{ [<json>jsonget[latest]] }}}\n author={{{ [<json>jsonget[author]] }}}\n suggestions={{{ [<json>jsonget[suggestions]] }}}\n >\n <!-- 依赖 -->\n <$list filter=\"[enlist<dependents>!is[blank]] [<parent-plugin>!is[blank]] +[limit[1]] ~[<title>!is[tiddler]]\" variable=\"ignore\">\n <div style=\"background:#e91e3db0;color:white;padding:6px;\" class=\"cpl-plugin-dependencies\">\n <$list filter=\"[<title>!is[tiddler]]\">{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}</$list>\n <$list filter=\"[enlist<dependents>!is[blank]] [<parent-plugin>!is[blank]] +[limit[1]]\" variable=\"ignore\">\n <div>\n {{$:/language/ControlPanel/Plugins/AlsoRequires}} \n <$list filter=\"[enlist<dependents>] [<parent-plugin>] +[unique[]sort[name]!is[blank]]\" variable=\"dependency\">\n <span style=\"border-radius:12px;padding:3px 8px;background:#1c3b40c2;font-size:12px;line-height:24px\"><$text text=<<dependency>>/></span> \n </$list>\n </div>\n </$list>\n </div>\n </$list>\n <!-- 历史版本 -->\n <$list filter=\"[<json>jsonget[versions]count[]compare:integer:gt[1]]\" variable=\"t\">\n <details class=\"more-versions-details\">\n <summary style=\"background:#246b84;padding:4px 10px;cursor:pointer;user-select:none;\">\n <$text text={{{ [<chinese>match[yes]then[浏览其他历史版本]else[Browse older versions]] }}}/>\n </summary>\n <$list filter=\"[<json>jsonget[versions]reverse[]]\" variable=\"version\">\n <div style=\"background:#1a4655;padding:4px 12px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid #15333c;\">\n <span>\n <<version>>\n <span style=\"opacity: 0.8;\"> (<$macrocall $name=\"plugin-size\" size={{{ [<json>jsonget[versions-size],<version>else[0]] }}} />)</span>\n <$list filter=\"[<latest>compare:version:eq<version>]\"> <span class=\"cpl-latest-version-icon\">{{$:/core/images/star-filled}}</span></$list>\n <$list filter=\"[<installedVersion>compare:version:eq<version>]\"> <span class=\"cpl-installed-version-icon\">{{$:/core/images/done-button}}</span></$list>\n </span>\n <div style=\"font-size:0.8em;line-height:1.2;\"><$macrocall $name=\"install-plugin-button\" plugin=<<title>> libraryVersion=<<version>> installedVersion=<<installedVersion>> /></div>\n </div>\n </$list>\n </details>\n </$list>\n <!-- 正文 -->\n <div class=\"tc-plugin-info-dropdown-body\">\n <$wikify name=\"rendered\" text=<<readme>> output=\"html\"><<rendered>></$wikify>\n </div>\n <!-- 推荐 -->\n <$list filter=\"[<__show-suggestion__>match[yes]]\" variable=\"t\">\n <div style=\"padding:10px 20px;backdrop-filter:contrast(1.1);\">\n <!-- 作者的其他插件 -->\n <$list filter=\"[{$:/temp/CPL-Repo/authors}jsonget<author>count[]compare:integer:gt[1]]\" variable=\"t\">\n <details>\n <summary style=\"padding:10px 0;\">\n <$text text={{{ [<chinese>match[yes]then[作者的其他插件]else[Other plugins of Author]] }}} />\n </summary>\n <div style=\"padding:6px;display:flex;flex-direction:column;\">\n <$list filter=\"[{$:/temp/CPL-Repo/authors}jsonget<author>] -[<title>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$-author-suggestion\"\n show-suggestion=\"no\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n </div>\n </details>\n </$list>\n <!-- 插件推荐 -->\n <$list filter=\"[enlist<suggestions>count[]compare:integer:gt[1]]\" variable=\"t\">\n <details>\n <summary style=\"padding:10px 0;\">\n <$text text={{{ [<chinese>match[yes]then[你可能感兴趣的插件]else[Plugins you may be interested in]] }}} />\n </summary>\n <div style=\"padding:6px;display:flex;flex-direction:column;\">\n <$list filter=\"[enlist<suggestions>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$-author-suggestion\"\n show-suggestion=\"no\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n </div>\n </details>\n </$list>\n </div>\n </$list>\n </$let>\n </$let>\n </$list>\n</div>\n</$list>\n</$let>\n</$let>\n</$let>\n</div>\n</$list>\n\\end"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-size":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-size","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define plugin-size(size:\"0\")\n<$list filter=\"[<__size__>compare:integer:gt[0]]\" variable=\"size\" emptyMessage=\"?\">\n<$let unit-step={{{ [<size>compare:integer:gteq[1048576]] :then[<size>compare:integer:gteq[1073741824]then[GiB#1073741824]else[MiB#1048576]] :else[<size>compare:integer:gteq[1024]then[KiB#1024]else[B#1]] }}}>\n<$let unit={{{ [<unit-step>split[#]first[]] }}} step={{{ [<unit-step>split[#]last[]] }}}>\n<$text text={{{ [<size>divide<step>fixed[2]] [<unit>] +[join[ ]] }}}/>\n</$let>\n</$let>\n</$list>\n\\end"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n<$list filter=\"[!has[draft.of]plugin-type<currentTab>sort[name]]\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>\n<div style=\"display:flex;margin:-0.5em 0;\">\n\t<div style=\"flex-grow:1;\">{{||$:/core/ui/PluginListItemTemplate}}</div>\n\t<$button style=\"backdrop-filter:contrast(0.65);margin:0.5em 0;padding:4px 16px !important;cursor:pointer;background-color:#d7074ebd !important;border:none !important;\">\n\t\t{{$:/core/images/delete-button}}\n\t\t<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template\" plugin=<<currentTiddler>>/>\n\t</$button>\n</div>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Beautify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Beautify","text":"美化"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Developing":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Developing","text":"开发工具"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Fun":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Fun","text":"趣味"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Functional":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Functional","text":"功能性"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Language":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Language","text":"多语言"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Showcase":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Showcase","text":"演示"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Unknown":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Unknown","text":"未分类"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Visualization":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Visualization","text":"可视化"},"$:/plugins/Gk0Wk/CPL-Repo/popup-readme":{"title":"$:/plugins/Gk0Wk/CPL-Repo/popup-readme","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[CPL 使用须知]else[Note to use CPL]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"{{$:/plugins/Gk0Wk/CPL-Repo/readme}}\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$checkbox\n tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup\"\n field=\"text\"\n checked={{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold}}\n unchecked=\"0\"\n default=\"0\">\n <$text text={{{ [<chinese>match[yes]then[不再弹出该消息]else[No longer pops up this message]] }}}/>\n</$checkbox>\n\n<$list filter=\"[<chinese>match[yes]]\">\n\nCPL 的各项功能需要连接互联网、从插件数据库的静态资源网站下载 JSON 文件来实现。CPL 只会从网站上下载数据,不会将你的数据上传。\n\n未来 CPL 可能添加插件投票和下载量统计功能,如添加这些功能,会先征得你的同意。你将来可以随时关闭这类功能。\n\n你可以在这里查看 CPL 插件的逻辑代码: [[$:/plugins/Gk0Wk/CPL-Repo/core.js]]\n\nCPL 当前尚未开启自动更新检测功能,如需开启,请手动前往设置页面启动:<$button>设置<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" /></$button>\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\nThe functions of the CPL require an Internet connection to download JSON files from the plug-in database's static resource site for implementation. The CPL will only download data from the site, it will not upload your data.\n\nIn the future, CPL may add plugin polling and download statistics, and will ask for your permission to add these features. You can disable these features at any time in the future.\n\nYou can view the logic code of the CPL plugin here: [[$:/plugins/Gk0Wk/CPL-Repo/core.js]]\n\nCPL has not yet enabled the automatic update detection function, if you want to enable it, please go to the settings page manually to start it: <$button>Settings<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" /></$button>\n\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/popup-readme-at-startup":{"title":"$:/plugins/Gk0Wk/CPL-Repo/popup-readme-at-startup","code-body":"yes","tags":["$:/tags/StartupAction/PostRender"],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup}!is[blank]else[0]compare:integer:lt{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold}]\">\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/popup-readme\" />\n</$list>"},"$:/plugins/Gk0Wk/CPL-Repo/readme":{"title":"$:/plugins/Gk0Wk/CPL-Repo/readme","tags":[],"type":"text/vnd.tiddlywiki","text":"<div style=\"display:flex;justify-content:center;\">\n{{$:/plugins/Gk0Wk/CPL-Repo/about-banner}}\n</div>\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n> 好用到哭,装就完了!\n\n!! 欢迎使用 CPL!\n\n使用 TW 这么久,你还在为四处寻觅好用的插件而发愁吗?还在为管理一大堆插件的更新、处理插件的依赖而苦恼吗?你还在为查找插件的用法而翻遍全网吗?你是否希望安装一个插件的某个历史版本,而非最新版本?\n\n如果你是插件的作者,你是否还在苦恼如何推广自己的插件,如何让用户及时获得最新的版本呢?\n\n你是否希望 TW 能像其他现代笔记软件一样,能够一键管理所有插件,能够更傻瓜化地查找和安装插件,甚至主动为你推广插件。是否希望 TW 能够帮助你自动保持插件的最新?\n\n这一切,在 CPL 得以实现!\n\n---\n\nCPL 是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 <$text text={{{ TiddlyWiki5 }}}/> 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的插件聚合中心。\n\n本插件有如下特点:\n\n* 聚合各种 TW 插件并保持最新当前 500+;\n* 在你的 Wiki 中搜索各种插件,提供关键词、分类和标签搜索;\n* 自动检查插件更新;\n* 安装插件时可自动递归安装依赖,并可以指定所有插件的安装版本;\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\n> Just install it! I think you need it.\n\n!! Welcome to CPL!\n\nAfter using TW for so long, are you still worried about looking around for good plugins? Are you still struggling to manage a bunch of plugin updates and deal with plugin dependencies? Are you still searching the web to find out how to use a plugin? Do you want to install some historical version of a plugin instead of the latest version?\n\nIf you are a plugin author, do you still struggle with how to promote your plugin and how to keep users up to date with the latest version?\n\nDo you wish TW could manage all your plugins with one click like other modern note-taking software, make it more foolproof to find and install plugins, and even proactively promote plugins for you? Do you want TW to help you keep your plugins up-to-date automatically?\n\nIt's all here at CPL!\n\n---\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community|https://github.com/tiddly-gittly]] and is dedicated to collecting all <$text text={{{ TiddlyWiki5 }}}/> related plugins on the web, hoping to provide a one-click installation and update plugin experience for TW users all around the world.\n\nThis plugin has the following features:\n\n* Aggregate various TW plugins and keep them up-to-date with the current 500+;.\n* Search for various plugins in your Wiki, providing keyword, category and tag search;.\n* Check for plugin updates automatically;\n* Install plugins with automatic recursive installation of dependencies, and you can specify the installed version of all plugins;\n\n</$list>\n\n</$list>"},"$:/plugins/Gk0Wk/CPL-Repo/settings":{"title":"$:/plugins/Gk0Wk/CPL-Repo/settings","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[设置]else[Settings]] }}}/>","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[CPL 设置]else[CPL Settings]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n在该页面内您可以对 CPL 插件的行为进行设定。\n\n; CPL 数据库镜像入口 <$select tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo\" field=\"text\">\n<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/repos}enlist-input[]]\" variable=\"repo\">\n<option value=<<repo>>><$text text=<<repo>>/></option>\n</$list>\n</$select>\n\n<<<\n当 CPL 获取数据经常失败时,你可以尝试切换到其他镜像,目前国内推荐使用 netlify 镜像,\n\n欢迎各位大佬部署国内镜像,详情请咨询QQ交流群或在[[GitHub Issue|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]提问\n\n你可以手动更改数据库镜像入口:[[$:/plugins/Gk0Wk/CPL-Repo/config/current-repo]]\n<<<\n\n; 自动更新检查间隔 <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes\" tag=\"input\" default=\"-1\" /> (分钟/次)\n\n<<<\n自动更新检查会在 Wiki 刚打开时进行,并每隔指定间隔进行一次检查\n\n显然自动检查需要联网,每次所消耗的流量很小,大概10KB。如果发现有插件可以更新会在右上角弹窗提醒。\n\n当值小于等于0,则关闭自动更新,也包括刚打开 Wiki 的那一次。\n\n关闭后可以手动在 [[$:/ControlPanel]] 的 [CPL] 中进行检查。\n<<<\n\n; 插件更新筛选器 <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter\" tag=\"input\" default=\"\" />\n\n<<<\n插件更新是有选择的,你可以通过修改筛选器来排除一些插件。\n<<<\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\nIn this page you can set the behavior of the CPL plugin.\n\n; CPL Database Mirror Entry <$select tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo\" field=\"text\">\n<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/repos}enlist-input[]]\" variable=\"repo\">\n<option value=<<repo>>><$text text=<<repo>>/></option>\n</$list>\n</$select>\n\n<<<\nWhen the CPL fails to fetch the data often, you can try to switch to another mirror.\n\nIf you'd like to deploy your own mirrors, feel free to ask questions in the [[GitHub Issue|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]!\n\nYou can manually change the database mirror entry: [[$:/plugins/Gk0Wk/CPL-Repo/config/current-repo]]\n<<<\n\n; Automatic update of check intervals <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes\" tag=\"input\" default=\"-1\" /> (minute(s) per time)\n\n<<<\nThe automatic update check is performed when the Wiki is first opened, and at specified intervals\n\nObviously auto-checking requires an internet connection and consumes very little traffic each time, about 10KB. If a plugin is found to be updatable, a pop-up window will alert you in the upper right corner.\n\nWhen the value is less than or equal to 0, auto-update is turned off, also when the Wiki is just opened.\n\nAfter closing it can be checked manually in [CPL] of [[$:/ControlPanel]].\n<<<\n\n; Plugin Update Filter <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter\" tag=\"input\" default=\"\" />\n\n<<<\nPlugin updates are selective and you can exclude some plugins by modifying the filter.\n<<<\n\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/style.css":{"title":"$:/plugins/Gk0Wk/CPL-Repo/style.css","tags":["$:/tags/Stylesheet"],"type":"text/vnd.tiddlywiki","text":".cpl-plugin-info-box {\n overflow: hidden;\n border: 1px solid <<colour tiddler-info-border>>;\n background-color: <<colour tiddler-info-background>>;\n}\n.cpl-plugin-dependencies {\n border-left: 0.8px solid <<colour tiddler-info-border>>;\n border-right: 0.8px solid <<colour tiddler-info-border>>;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info {\n margin: 0 !important;\n border: none !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown {\n margin-top: 0 !important;\n border: none !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown,\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-message,\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-body {\n background: transparent !important;\n background-color: transparent !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-body {\n box-shadow: inset 0 12px 12px -12px rgba(0, 0, 0, 0.3);\n}\n\n.cpl-latest-version-icon > svg, .cpl-installed-version-icon > svg {\n height: 1em;\n width: 1em;\n}\n\n.cpl-latest-version-icon > svg {\n color: #FFC107;\n fill: #FFC107;\n}\n\n.cpl-installed-version-icon > svg {\n color: #3ccb0f;\n fill: #3ccb0f;\n}\n\n.cpl-plugin-install-request-dependents-tree {\n border-left:2px dotted <<colour very-muted-foreground>>;\n background: #0002;\n}\n\n.cpl-plugin-search {\n flex-grow: 1;\n width: 0;\n}\n\n.cpl-plugin-search span {\n display: inline-block;\n width: 100%;\n}\n\n.cpl-plugin-search span input {\n margin: 0 !important;\n width: 100%;\n}\n\n.cpl-plugin-search-go {\n border-radius: 0 !important;\n margin: 0 !important;\n padding: 10px 20px !important;\n word-break: keep-all;\n}\n\n.cpl-paged-plugin-list-control {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 40px;\n border: 2px solid <<colour tiddler-info-border>>;\n background-color: <<colour tiddler-info-background>>;\n}\n\n.cpl-paged-plugin-list-control > div {\n flex-grow: 1;\n width: 0;\n height: 100%;\n}\n\n.cpl-paged-plugin-list-control > div > button {\n width: 100%;\n height: 100%;\n border: none !important;\n background: transparent !important;\n cursor: pointer !important;\n}\n\n.cpl-paged-plugin-list-control > div > button:hover {\n backdrop-filter: contrast(0.75);\n}\n\n.cpl-paged-plugin-list-control > span {\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n user-select: none;\n}\n\n.cpl-banner-button-group svg {\n height: 1em;\n width: 1em;\n}\n"},"$:/plugins/Gk0Wk/CPL-Repo/tags-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/tags-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[标签]else[Tags]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n\\define tag-plain(text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin-right:6px;\">\n\t{{$icon$}}$text$\n</span>\n\\end\n\n\\define tag-plain-removable(saveTiddler,saveField:\"tags\",text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin:4px 6px 2px 0;padding:4px 10px;\">\n\t{{$icon$}}$text$\n\t<$button class=\"tc-btn-invisible tc-remove-tag-button\" style=\"background-color:$bg$;color:$color$;fill:$color$;\">\n\t\t<$action-listops $tiddler=<<__saveTiddler__>> $field=<<__saveField__>> $subfilter=\"-[<__text__>]\"/>{{$:/core/images/close-button}}\n\t</$button>\n</span>\n\\end\n\n<$let bg={{{ [{$:/palette}getindex[tag-background]] }}} color={{{ [{$:/palette}getindex[foreground]] }}} saveTiddler=\"$:/temp/CPL-Repo/search-tag-input\">\n<!-- 展示待检索的标签,以及搜索按钮 -->\n<div style=\"width:100%;display:flex;backdrop-filter:contrast(1.3);\">\n <div class=\"cpl-search-tags\" style=\"flex-grow:1;width:0;display:flex;align-items:center;padding:4px 8px;flex-wrap:wrap;\">\n <!-- 已有的标签,可删除 -->\n <$list filter=\"[<saveTiddler>get[text]enlist-input[]]\" variable=\"tag\">\n <$macrocall $name=\"tag-plain-removable\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> saveTiddler=<<saveTiddler>> saveField=\"text\" />\n </$list>\n <div class=\"cpl-search-tags-input\">\n <!-- 输入 -->\n <$macrocall\n $name=\"keyboard-driven-input\"\n tiddler=\"$:/temp/CPL-Repo/add-search-tag-input\"\n tag=\"input\"\n placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n focusPopup=\"$:/temp/CPL-Repo/add-search-tag-popup\"\n class=\"tc-edit-texteditor tc-popup-handle\"\n tabindex=<<tabIndex>>\n focus=\"yes\"\n filterMinLength=\"2\"\n configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"\n />\n <!-- 弹出 -->\n <$reveal state=\"$:/temp/CPL-Repo/add-search-tag-popup\" type=\"nomatch\" text=\"\" default=\"\">\n <div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n <$list filter=\"[{$:/temp/CPL-Repo/tags}jsonget[]search{$:/temp/CPL-Repo/add-search-tag-input}]\" variable=\"tag\">\n <$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n <$macrocall $name=\"tag-plain\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> />\n <$action-listops $tiddler=<<saveTiddler>> $field=\"text\" $subfilter=\"[<tag>]\"/>\n </$button>\n </$list>\n </div>\n </$reveal>\n </div>\n </div>\n <!-- 搜索按钮 -->\n <$button class=\"tc-primary-btn tc-btn-big-green cpl-plugin-search-go\" disabled={{$:/temp/CPL-Repo/searching-plugin}}>\n <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[搜索中...]else[搜索]] :else[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[Searching...]else[Search]] }}} />\n <$action-sendmessage\n $message=\"cpl-search-plugins\"\n mode=\"tags\"\n text={{{ [<saveTiddler>get[text]] }}}\n saveTo=\"$:/temp/CPL-Repo/searchplugin-tags/result\"\n />\n </$button>\n</div>\n<$list filter=\"[[$:/temp/CPL-Repo/searching-plugin]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n</div>\n</$list>\n<$list filter=\"[[$:/temp/CPL-Repo/searchplugin-tags/result]is[tiddler]then[yes]else[no]]\" variable=\"go\">\n<!-- 有搜索结果 -->\n<$list filter=\"[<go>match[yes]]\" variable=\"t\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/searchplugin-tags/result}jsonget[]]\" field:\"tag-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n<!-- 没有搜索结果,展示全部 -->\n<$list filter=\"[<go>match[no]]\" variable=\"t\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/plugins-index}jsonindexes[]!prefix[$:/language]]\" field:\"tag-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n</$list>\n</$let>\n"},"$:/plugins/Gk0Wk/CPL-Repo/uninstall-manager":{"title":"$:/plugins/Gk0Wk/CPL-Repo/uninstall-manager","code-body":"yes","tags":[],"caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[卸载]else[Uninstall]] }}} />","type":"text/vnd.tiddlywiki","text":"<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/plugin-uninstall-manager-tab-state\"\n\ttabsList=\"plugin theme language\"\n\tdefault=\"plugin\"\n\ttemplate=\"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item\"\n/>\n"},"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template","code-body":"yes","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[请确认卸载]else[Please Confirm to Uninstall]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define checkShadow() <$action-listops $tiddler=<<tiddler>> $field=<<field>> $subfilter=\"[<shadow>]\"/>\n\\define uncheckShadow() <$action-listops $tiddler=<<tiddler>> $field=<<field>> $subfilter=\"-[<shadow>]\"/>\n\n<$let chinese={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]] }}}>\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n> 即将卸载 <<plugin>>\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[limit[1]]\" variable=\"t\">\n\n---\n\n!! 注意:插件被依赖\n\n该插件仍然被如下插件依赖,是否继续卸载?\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[unique[]sort[title]]\" variable=\"other-plugin\">\n\n: <<other-plugin>>\n\n</$list>\n</$list>\n\n---\n\n!! 注意:残留条目\n\n该插件中,有一些条目已不是默认值(有一个同名的非影子条目),因此这些条目在删除插件后仍将保留。这可能会为你的 Wiki 增添一些额外的垃圾条目,或者为下一次安装插件或升级插件带来困扰。所以在删除插件时,是否该同时清理这些条目?请选择要删除或者保留的条目,或者点击其标题来产看它的内容来决定。\n\n在决定之后,点击下方的按钮,卸载插件并同时删除勾选的条目。\n\n</$list>\n<$list filter=\"[<chinese>match[no]]\">\n\n> To uninstall <<plugin>>\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[limit[1]]\" variable=\"t\">\n\n---\n\n!! Note: Plugin is Dependent\n\nThe plugin is still dependent on the following plugins, do you continue to uninstall?\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[unique[]sort[title]]\" variable=\"other-plugin\">\n\n: <<other-plugin>>\n\n</$list>\n</$list>\n\n---\n\n!! Note: Left tiddlers\n\nThe plugin has some entries that are no longer default (there is a non-shadow entry with the same name), so these entries will remain after removing the plugin. This may add some extra junk entries to your Wiki, or cause problems for the next time you install the plugin or upgrade it. So when deleting a plugin, should you clean up these entries at the same time? Please select the entry you want to delete or keep, or click on its title to see what it says to decide.\n\nAfter deciding, click the button below to uninstall the plugin and remove the checked entries at the same time.\n</$list>\n\n<$button class=\"tc-btn-big-green tc-primary-btn\" message=\"tm-close-tiddler\">\n{{$:/core/images/delete-button}}\n \n<$text text={{{ [<chinese>match[yes]then[确认卸载]else[Confirm to Uninstall]] }}} />\n<$action-deletetiddler $filter=\"[<tiddler>get[text]enlist-input[]] [<plugin>]\" />\n</$button>\n\n<$let keep={{{ [<chinese>match[yes]then[保留]else[Keep]] }}} nokeep={{{ [<chinese>match[yes]then[删除]else[Delete]] }}}>\n<$let tiddler=<<qualify \"$:/temp/CPL-Repo/deleting-plugin-shadows\">> field=\"text\">\n\n<div style=\"display:flex;flex-direction:column;\">\n<$list filter=\"[<plugin>get[text]jsonindexes[tiddlers]is[tiddler]]\" variable=\"shadow\" emptyMessage=\"<$text text={{{ [<chinese>match[yes]then[无]else[]] }}} />\">\n<$let is-keep={{{ [<tiddler>get[text]enlist-input[]match<shadow>limit[1]then[no]else[yes]] }}}>\n<div style={{{ [[background:]] [<is-keep>match[yes]then[#00ff2d1d]else[#fd004748]] [[;display:flex;justify-content:space-between;padding:4px 6px;border:1px solid #7774]] +[join[]] }}}>\n<span><<shadow>></span>\n<span>\n<$checkbox filter=\"[<tiddler>get[text]enlist-input[]]\" checked=<<shadow>> checkactions=<<checkShadow>> uncheckactions=<<uncheckShadow>>> ''<$text text={{{ [<is-keep>match[yes]then<keep>else<nokeep>] }}}/>''</$checkbox>\n</span>\n</div>\n</$let>\n</$list>\n</div>\n\n</$let>\n</$let>\n"},"$:/plugins/Gk0Wk/CPL-Repo/update-body":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-body","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[更新列表]else[Update List]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$list filter=\"[[$:/temp/CPL-Repo/update-plugins]is[tiddler]] [[$:/temp/CPL-Repo/plugins-index]is[tiddler]] +[count[]compare:integer:eq[2]then[yes]else[no]]\" variable=\"ready\">\n\n<$list filter=\"[<ready>match[yes]]\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/update-plugins}jsonget[]]\" field:\"update-list\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n\n<$list filter=\"[<ready>match[no]]\">\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/updaing]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n<!-- 加载中提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]] [[$:/temp/CPL-Repo/updaing]is[tiddler]field:text[yes]] +[limit[1]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]] [[$:/temp/CPL-Repo/updaing]is[tiddler]field:text[yes]] +[limit[1]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n</$list>\n\n</$list>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/update-manager":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-manager","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[更新]else[Updates]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$button disabled={{{ [{$:/temp/CPL-Repo/getting-plugins-index}match[yes]else[no]] }}} class=\"tc-btn-big-green tc-primary-btn\">\n<$action-sendmessage $message=\"cpl-update-check\" />\n{{$:/core/images/refresh-button}}\n \n<$text text={{{ [[$:/temp/CPL-Repo/update-plugins]is[tiddler]] :then[<chinese>match[yes]then[重新获取更新]else[Refetch CPL]] :else[<chinese>match[yes]then[获取更新]else[Fetch update]] }}} />\n</$button>\n</$list>\n\n{{$:/plugins/Gk0Wk/CPL-Repo/update-body}}"},"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n!! CPL 更新提醒\n\n您的 Wiki 中有 <<updateCount>> 款插件在 CPL 中有更新版本, 快来更新吧!\n\n<$button>\n 更新\n <$action-sendmessage $message=\"cpl-get-plugins-index\" />\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/update-body\" />\n</$button>\n<$button>\n 设置\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" />\n</$button>\n\n</$list>\n\n<$list filter=\"[<chinese>!match[yes]]\">\n\n!! CPL Update Alert\n\nThere are <<updateCount>> plugins in your Wiki that have newer versions in CPL, so update them now!\n\n<$button>\n Update\n <$action-sendmessage $message=\"cpl-get-plugins-index\" />\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/update-body\" />\n</$button>\n<$button>\n Settings\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" />\n</$button>\n\n</$list>\n\n</$list>\n"}}} \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json.meta b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json.meta new file mode 100644 index 00000000..e1154ba2 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo.json.meta @@ -0,0 +1,8 @@ +author: Gk0Wk +description: Essential and powerful plugin manager and library +list: readme +name: CPL Repo +plugin-type: plugin +title: $:/plugins/Gk0Wk/CPL-Repo +type: application/json +version: 2023.10.15 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup.tid b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup.tid new file mode 100644 index 00000000..594e8df6 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup.tid @@ -0,0 +1,6 @@ +created: 20231019093852891 +modified: 20231019093852891 +title: $:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup +type: text/vnd.tiddlywiki + +1 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json b/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json new file mode 100644 index 00000000..20c01ed6 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json @@ -0,0 +1 @@ +{"tiddlers":{"$:/plugins/cdaven/markdown-export/details":{"title":"$:/plugins/cdaven/markdown-export/details","created":"20221113100340267","text":"!! Markdown Flavour\n\nThere are quite a few different Markdown specifications, and I have settled on [[Pandoc Markdown|https://pandoc.org/MANUAL.html#pandocs-markdown]], for two reasons:\n\n# Pandoc Markdown is quite capable, with a lot of extensions. All of these extensions will not work in every Markdown renderer, but most will.\n# [[Pandoc|https://pandoc.org]] itself is a great way to convert from (Pandoc) Markdown to other document formats, such as Word or PDF.\n\n!!! Further conversion with Pandoc\n\nYou can convert a Markdown file to Word with this simple Pandoc command:\n\n```\npandoc -o output.docx input.md\n```\n\nSimply change \".docx\" to \".html\" or \".pdf\" to convert to other formats, or use [[the --to switch|https://pandoc.org/MANUAL.html#option--to]].\n\nYou can also convert this Pandoc Markdown file to ~CommonMark or ~GitHub-Flavored Markdown like this:\n\n```\npandoc -o common.md --to commonmark input.md\npandoc -o github.md --to gfm input.md\n```\n\n!! Some caveats\n\nSince ~TiddlyWiki is very expressive -- and has a multitude of plugins -- export plugins such as this probably cannot support all possible variations.\n\nConverting to Markdown requires a bunch of compromises, and will therefore be \"opinionated\". This is how //I// want my Markdown to look.\n\n!! Encoding\n\nThe Markdown file will be encoded with UTF-8 and Linux/Mac newlines (still works on Windows!). This should work on most platforms and with most third party applications.\n\n!! System Requirements\n\nThe plugin uses relatively modern Javascript (\"ES2015\") that doesn't work in Internet Explorer. Most modern browsers //should// work."},"$:/plugins/cdaven/markdown-export/exportNote":{"title":"$:/plugins/cdaven/markdown-export/exportNote","created":"20220602113244086","description":"A note that will be added as a comment to exported Markdown files","modified":"20220602113609303","tags":"","text":"Exported from TiddlyWiki at <<now>>"},"$:/plugins/cdaven/markdown-export/license":{"title":"$:/plugins/cdaven/markdown-export/license","created":"20220513163358248","modified":"20220513163418690","tags":"","text":"Copyright 2022 Christian Davén\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."},"$:/plugins/cdaven/markdown-export/markdown-export.js":{"title":"$:/plugins/cdaven/markdown-export/markdown-export.js","text":"/*\\\r\ntitle: $:/plugins/cdaven/markdown-export/markdown-export.js\r\ntype: application/javascript\r\nmodule-type: macro\r\n\\*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.exportedForTesting = exports.run = exports.params = exports.name = void 0;\r\nconst render_js_1 = require(\"./render.js\");\r\nexports.name = \"markdown-export\";\r\nexports.params = [\r\n {\r\n name: \"filter\",\r\n default: \"\"\r\n },\r\n {\r\n name: \"note\",\r\n default: \"\"\r\n },\r\n {\r\n name: \"version\",\r\n default: \"\"\r\n },\r\n];\r\n/** Insert note as comment right after front matter */\r\nfunction insertNote(markdownTiddler, note) {\r\n return markdownTiddler.replace(/(---\\n+)(#)/, `$1<!-- ${note.replace(/\\$/g, \"$$$$\")} -->\\n\\n$2`);\r\n}\r\n/** The macro entrypoint */\r\nfunction run(filter = \"\", note = \"\", version = \"\") {\r\n console.log(`Running Markdown Export ${version} with filter ${filter}`);\r\n if (!filter) {\r\n console.warn(\"No filter specified, exiting\");\r\n return \"\";\r\n }\r\n const twRenderer = new render_js_1.TiddlyWikiRenderer($tw);\r\n const renderer = new render_js_1.MarkdownRenderer(twRenderer);\r\n // Expand macros in note\r\n note = twRenderer.wikifyText(note);\r\n let markdownTiddlers = [];\r\n for (const title of $tw.wiki.filterTiddlers(filter)) {\r\n console.log(`Rendering [[${title}]] to Markdown`);\r\n let markdownTiddler = null;\r\n try {\r\n markdownTiddler = renderer.renderTiddler(title);\r\n }\r\n catch (err) {\r\n console.error(err);\r\n }\r\n if (markdownTiddler) {\r\n if (note) {\r\n markdownTiddler = insertNote(markdownTiddler, note);\r\n }\r\n markdownTiddlers.push(markdownTiddler.trim());\r\n }\r\n }\r\n // LaTeX page break, recognized by Pandoc\r\n const pageBreak = \"\\n\\n\\\\newpage\\n\\n\";\r\n return markdownTiddlers.join(pageBreak);\r\n}\r\nexports.run = run;\r\n;\r\n/** Make stuff available for unit testing */\r\nexports.exportedForTesting = {\r\n insertNote\r\n};\r\n// export {};\r\n","type":"application/javascript","module-type":"macro"},"$:/plugins/cdaven/markdown-export/md-tiddler.js":{"title":"$:/plugins/cdaven/markdown-export/md-tiddler.js","text":"/*\\\r\ntitle: $:/plugins/cdaven/markdown-export/md-tiddler.js\r\ntype: application/javascript\r\nmodule-type: macro\r\n\r\nMacro to output a single tiddler to Markdown, e.g. for use with a template, possibly from the command line.\r\n\\*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.run = exports.params = exports.name = void 0;\r\nconst render_js_1 = require(\"./render.js\");\r\nexports.name = \"mdtiddler\";\r\nexports.params = [\r\n {\r\n name: \"title\",\r\n default: \"\"\r\n },\r\n];\r\n/** The macro entrypoint */\r\nfunction run(title = \"\") {\r\n title = title || this.getVariable(\"currentTiddler\");\r\n if (!title) {\r\n console.warn(\"No title specified, exiting\");\r\n return \"\";\r\n }\r\n if (title === \"$:/plugins/cdaven/markdown-export/md-tiddler\") {\r\n // TODO: This avoids a Javascript error, but there should be a better solution\r\n console.warn(\"Shouldn't render itself...?\");\r\n return \"\";\r\n }\r\n const twRenderer = new render_js_1.TiddlyWikiRenderer($tw);\r\n const renderer = new render_js_1.MarkdownRenderer(twRenderer);\r\n return renderer.renderTiddler(title) || \"\";\r\n}\r\nexports.run = run;\r\n;\r\n","type":"application/javascript","module-type":"macro"},"$:/plugins/cdaven/markdown-export/md-tiddler":{"title":"$:/plugins/cdaven/markdown-export/md-tiddler","created":"20220606063844580","text":"<!--\n\nThis template is used for saving tiddlers as Markdown\n\n--><$text text=<<mdtiddler>>/>"},"$:/plugins/cdaven/markdown-export/MenuItem":{"title":"$:/plugins/cdaven/markdown-export/MenuItem","created":"20220421104331124","description":"Markdown","extension":".md","tags":"$:/tags/Exporter","text":"<$macrocall $name=\"markdown-export\" filter=<<exportFilter>> note={{$:/plugins/cdaven/markdown-export/exportNote}} version={{$:/plugins/cdaven/markdown-export!!version}} $output=\"text/raw\"/>\n"},"$:/plugins/cdaven/markdown-export/readme":{"title":"$:/plugins/cdaven/markdown-export/readme","created":"20220513163340267","text":"This is a plugin for ~TiddlyWiki that lets you export tiddlers to Markdown, either in the web browser or on the command line.\n\n!! In the browser (or similar graphical user interfaces)\n\nClick the \"Export tiddler\" button or menu item on the tiddler to export, and select \"Markdown\". A Markdown file will be generated and downloaded.\n\nYou can also use the \"Export tiddlers\" button from [[$:/AdvancedSearch]] in the \"Filter\" tab, to export many tiddlers to one big Markdown file.\n\n!! On the command line\n\nUse the [[TiddlyWiki command installable via npm|https://www.npmjs.com/package/tiddlywiki]] and type something like this:\n\n```sh\ntiddlywiki <folder> --render <tiddler> '[encodeuricomponent[]addsuffix[.md]]' 'text/plain' '$:/plugins/cdaven/markdown-export/md-tiddler'\n```\n\n!! Homepage\n\nThis plugin's homepage is at https://cdaven.github.io/tiddlywiki/\n\n!! Source Code\n\nThe source code is available at https://github.com/cdaven/tiddlywiki-stuff/tree/main/markdown-export -- this is where you can report issues or request features."},"$:/plugins/cdaven/markdown-export/render-helpers.js":{"title":"$:/plugins/cdaven/markdown-export/render-helpers.js","text":"/*\\\r\ntitle: $:/plugins/cdaven/markdown-export/render-helpers.js\r\ntype: application/javascript\r\nmodule-type: library\r\n\\*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isDomNode = exports.isTextNode = exports.trimEnd = exports.btoa = exports.Node = void 0;\r\n/* Polyfill browser stuff when run from Node.js */\r\nexports.Node = globalThis.Node || {\r\n ELEMENT_NODE: 1,\r\n TEXT_NODE: 3,\r\n};\r\n/* Polyfill browser stuff when run from Node.js */\r\nexports.btoa = globalThis.btoa || function (data) {\r\n const ascii = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n let len = data.length - 1, i = -1, b64 = '';\r\n while (i < len) {\r\n const code = data.charCodeAt(++i) << 16 | data.charCodeAt(++i) << 8 | data.charCodeAt(++i);\r\n b64 += ascii[(code >>> 18) & 63] + ascii[(code >>> 12) & 63] + ascii[(code >>> 6) & 63] + ascii[code & 63];\r\n }\r\n const pads = data.length % 3;\r\n if (pads > 0) {\r\n b64 = b64.slice(0, pads - 3);\r\n while (b64.length % 4 !== 0) {\r\n b64 += '=';\r\n }\r\n }\r\n return b64;\r\n};\r\nfunction trimEnd(s) {\r\n return s.replace(/\\s+$/, \"\");\r\n}\r\nexports.trimEnd = trimEnd;\r\nfunction isTextNode(node) {\r\n if (node.nodeType === exports.Node.TEXT_NODE)\r\n return true;\r\n else if (typeof node.nodeType === \"undefined\")\r\n return node.hasOwnProperty(\"textContent\");\r\n else\r\n return false;\r\n}\r\nexports.isTextNode = isTextNode;\r\nfunction isDomNode(node) {\r\n if (node.nodeType === exports.Node.ELEMENT_NODE)\r\n return true;\r\n else if (typeof node.nodeType === \"undefined\")\r\n return node.hasOwnProperty(\"children\");\r\n else\r\n return false;\r\n}\r\nexports.isDomNode = isDomNode;\r\n","type":"application/javascript","module-type":"library"},"$:/plugins/cdaven/markdown-export/render-rules.js":{"title":"$:/plugins/cdaven/markdown-export/render-rules.js","text":"/*\\\r\ntitle: $:/plugins/cdaven/markdown-export/render-rules.js\r\ntype: application/javascript\r\nmodule-type: library\r\n\\*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getRules = void 0;\r\nconst render_helpers_1 = require(\"./render-helpers\");\r\n/** Get rules for rendering a TiddlyWiki widget tree consisting of HTML-ish elements/nodes */\r\nfunction getRules(renderer) {\r\n let rules = {\r\n // The <meta> tag contains the document's title and other attributes\r\n \"meta\": (node) => {\r\n const fields = node.attributes;\r\n let frontMatter = [];\r\n if (fields.title) {\r\n frontMatter.push(`title: '${fields.title}'`);\r\n }\r\n if (fields.author) {\r\n frontMatter.push(`author: '${fields.author}'`);\r\n }\r\n if (fields.modified instanceof Date) {\r\n frontMatter.push(`date: '${fields.modified.toISOString()}'`);\r\n }\r\n if (fields.description) {\r\n frontMatter.push(`abstract: '${fields.description}'`);\r\n }\r\n if (fields.tags && fields.tags.length > 0) {\r\n // Enclose tags with single quotes and escape single quotes inside the tags\r\n const tags = fields.tags.map((t) => `'${t.replace(\"'\", \"\\\\'\")}'`);\r\n frontMatter.push(`tags: [${tags.join(', ')}]`);\r\n }\r\n for (const field in fields) {\r\n if ([\"text\", \"title\", \"author\", \"modified\", \"description\", \"tags\"].indexOf(field) !== -1)\r\n // Ignore full text and the fields already taken care of\r\n continue;\r\n // Clean up field name\r\n const fieldName = field.replace(/\\s+/g, \"-\").replace(\":\", \"\");\r\n // Clean up field value\r\n let fieldValue = fields[field];\r\n if (fieldValue instanceof Date) {\r\n fieldValue = \"'\" + fieldValue.toISOString() + \"'\";\r\n }\r\n else if (typeof fieldValue !== \"number\") {\r\n // Remove newlines and escape single quotes\r\n fieldValue = \"'\" + fieldValue.toString().replace(/[\\r\\n]+/g, \"\").replace(\"'\", \"\\\\'\") + \"'\";\r\n }\r\n frontMatter.push(`${fieldName}: ${fieldValue}`);\r\n }\r\n return `---\\n${frontMatter.join(\"\\n\")}\\n---\\n\\n# ${fields.title}\\n\\n`;\r\n },\r\n \"p\": (node, im) => {\r\n var _a;\r\n if (((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.tag) === \"li\") {\r\n const newlines = renderer.isLastChild(node)\r\n ? \"\\n\" // End with one newline for the last child\r\n : \"\\n\\n\"; // End with two newlines between paragraphs\r\n if (node.parentNode.children[0] == node) {\r\n // The first <p> inside a <li> is rendered as inline text\r\n return `${im.trim()}${newlines}`;\r\n }\r\n else {\r\n // Subsequent <p> inside a <li> is rendered with indentation\r\n return ` ${im.trim()}${newlines}`;\r\n }\r\n }\r\n else {\r\n // Add newlines after paragraphs\r\n return `${im.trim()}\\n\\n`;\r\n }\r\n },\r\n \"em\": (_, im) => `*${im}*`,\r\n \"strong\": (_, im) => `**${im}**`,\r\n \"u\": (_, im) => `<u>${im}</u>`,\r\n \"strike\": (_, im) => `~~${im}~~`,\r\n // Force line-break\r\n \"br\": (node) => {\r\n const nextNode = renderer.getNextNode(node);\r\n if (nextNode == null || ((0, render_helpers_1.isTextNode)(nextNode) && nextNode.textContent === \"\\n\")) {\r\n // If the next line is blank, shouldn't end with a \\\r\n return \"\\n\";\r\n }\r\n else {\r\n return \"\\\\\\n\";\r\n }\r\n },\r\n \"hr\": () => `---\\n\\n`,\r\n \"label\": (_, im) => im,\r\n // Pandoc 3.0 supports highlighted text using ==, if you specify --from markdown+mark\r\n \"mark\": (_, im) => `==${im}==`,\r\n \"span\": (node, im) => {\r\n const katexStart = '<annotation encoding=\"application/x-tex\">';\r\n if (node.rawHTML && node.rawHTML.indexOf(katexStart) !== -1) {\r\n let mathEq = node.rawHTML.substring(node.rawHTML.indexOf(katexStart) + katexStart.length);\r\n mathEq = mathEq.substring(0, mathEq.indexOf('</annotation>'));\r\n if (mathEq.startsWith(\"\\n\") && mathEq.endsWith(\"\\n\")) {\r\n // As a block equation\r\n return `$$${mathEq}$$\\n\\n`;\r\n }\r\n else {\r\n // As an inline equation\r\n return `$${mathEq}$`;\r\n }\r\n }\r\n else {\r\n return im;\r\n }\r\n },\r\n \"sub\": (_, im) => `~${im.replace(/ /g, \"\\\\ \")}~`,\r\n \"sup\": (_, im) => `^${im.replace(/ /g, \"\\\\ \")}^`,\r\n \"h1\": (_, im) => `# ${im}\\n\\n`,\r\n \"h2\": (_, im) => `## ${im}\\n\\n`,\r\n \"h3\": (_, im) => `### ${im}\\n\\n`,\r\n \"h4\": (_, im) => `#### ${im}\\n\\n`,\r\n // Definition lists\r\n \"dl\": (_, im) => `${im.trim()}\\n\\n`,\r\n \"dt\": (_, im) => `${im}\\n`,\r\n \"dd\": (_, im) => ` ~ ${im}\\n\\n`,\r\n // Code blocks\r\n \"pre\": (node, im) => {\r\n if (node.children.every(child => (0, render_helpers_1.isDomNode)(child) && child.tag === \"code\")) {\r\n // <pre> with nested <code> elements, just pass through\r\n return im;\r\n }\r\n else {\r\n // <pre> without nested <code>\r\n return `\\`\\`\\`\\n${im.trim()}\\n\\`\\`\\`\\n\\n`;\r\n }\r\n },\r\n \"code\": (node, im) => {\r\n var _a, _b, _c;\r\n if (((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.tag) === \"pre\") {\r\n // <code> nested inside <pre>\r\n // The Highlight plugin puts the language in the \"class\" attribute\r\n let classRx = (_c = (_b = node.attributes) === null || _b === void 0 ? void 0 : _b.class) === null || _c === void 0 ? void 0 : _c.match(/^(.+) hljs$/);\r\n if (classRx) {\r\n const lang = classRx[1];\r\n return `\\`\\`\\`${lang}\\n${im.trim()}\\n\\`\\`\\`\\n\\n`;\r\n }\r\n else {\r\n return `\\`\\`\\`\\n${im.trim()}\\n\\`\\`\\`\\n\\n`;\r\n }\r\n }\r\n else {\r\n // As inline code\r\n return `\\`${im}\\``;\r\n }\r\n },\r\n \"blockquote\": (node, im) => {\r\n var _a;\r\n let indentation = \"\";\r\n if (((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.tag) === \"li\") {\r\n indentation = \" \";\r\n }\r\n // Insert \"> \" at the beginning of each line\r\n const prefix = `${indentation}> `;\r\n return `${prefix}${im.trim().replace(/\\n/g, `\\n${prefix}`)}\\n\\n`;\r\n },\r\n \"cite\": (_, im) => {\r\n return `<cite>${im}</cite>`;\r\n },\r\n // Lists\r\n \"ul\": (node, im) => {\r\n var _a;\r\n if (((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.tag) === \"li\") {\r\n // Nested list, should not end with double newlines\r\n return `\\n${im}`;\r\n }\r\n else {\r\n return `${im.trim()}\\n\\n`;\r\n }\r\n },\r\n \"li\": (node, im) => {\r\n let curNode = node.parentNode;\r\n if (curNode == null) {\r\n console.error(\"Found <li> without parent\");\r\n return null;\r\n }\r\n const listType = curNode.tag === \"ul\" ? \"*\" : \"1.\";\r\n const listTags = [\"ul\", \"ol\", \"li\"];\r\n let depth = -1;\r\n // Traverse up the path to count nesting levels\r\n while (curNode && listTags.indexOf(curNode.tag) !== -1) {\r\n if (curNode.tag !== \"li\") {\r\n depth++;\r\n }\r\n curNode = curNode.parentNode;\r\n }\r\n const indent = \" \".repeat(depth);\r\n return `${indent}${listType} ${im.trim()}\\n`;\r\n },\r\n \"input\": (node) => {\r\n var _a, _b;\r\n if (((_a = node.attributes) === null || _a === void 0 ? void 0 : _a.type) === \"checkbox\") {\r\n if ((_b = node.attributes) === null || _b === void 0 ? void 0 : _b.checked) {\r\n return \"[x]\";\r\n }\r\n else {\r\n return \"[ ]\";\r\n }\r\n }\r\n else {\r\n console.warn(\"Unsupported input node type\", node);\r\n return null;\r\n }\r\n },\r\n \"a\": (node, im) => {\r\n var _a;\r\n const href = (_a = node.attributes) === null || _a === void 0 ? void 0 : _a.href;\r\n if (href == null || (href === null || href === void 0 ? void 0 : href.startsWith(\"#\"))) {\r\n // Render internal links as plain text, since the links probably lose all meaning outside the TiddlyWiki.\r\n return im;\r\n }\r\n else if (im && im != href) {\r\n return `[${im}](${href})`;\r\n }\r\n else {\r\n return `<${href}>`;\r\n }\r\n },\r\n \"img\": (node) => {\r\n var _a, _b;\r\n let caption = ((_a = node.attributes) === null || _a === void 0 ? void 0 : _a.title) || \"\";\r\n let src = ((_b = node.attributes) === null || _b === void 0 ? void 0 : _b.src) || \"\";\r\n const svgPrefix = \"data:image/svg+xml,\";\r\n if (src.startsWith(svgPrefix)) {\r\n // SVGs should also be Base64-encoded for compatibility\r\n src = svgPrefix.replace(\"svg+xml,\", \"svg+xml;base64,\") +\r\n (0, render_helpers_1.btoa)(decodeURIComponent(src.substring(svgPrefix.length)));\r\n }\r\n return `![${caption}](${src})`;\r\n },\r\n \"i\": (node, im) => {\r\n var _a;\r\n if ((_a = node.attributes) === null || _a === void 0 ? void 0 : _a.class) {\r\n const classes = node.attributes.class.split(\" \");\r\n if (im.trim().length === 0 && classes.some(c => c.startsWith(\"fa-\"))) {\r\n // Lazily render all FontAwesome icons as a replacement character\r\n return \"�\";\r\n }\r\n }\r\n return null;\r\n },\r\n // Tables\r\n \"table\": (node) => {\r\n let tbody = null;\r\n for (const child of node.children) {\r\n if ((0, render_helpers_1.isDomNode)(child) && child.tag === \"tbody\") {\r\n tbody = child;\r\n break;\r\n }\r\n }\r\n if (tbody == null) {\r\n return null;\r\n }\r\n const justifyLeft = (s, w) => {\r\n const sLen = (s === null || s === void 0 ? void 0 : s.length) || 0;\r\n return s + ' '.repeat(w - sLen);\r\n };\r\n const justifyRight = (s, w) => {\r\n const sLen = (s === null || s === void 0 ? void 0 : s.length) || 0;\r\n return ' '.repeat(w - sLen) + s;\r\n };\r\n const center = (s, w) => {\r\n const sLen = (s === null || s === void 0 ? void 0 : s.length) || 0;\r\n const spacesLeft = Math.ceil((w - sLen) / 2);\r\n const spacesRight = w - sLen - spacesLeft;\r\n return ' '.repeat(spacesLeft) + s + ' '.repeat(spacesRight);\r\n };\r\n let grid = [];\r\n for (const row of tbody.children) {\r\n if ((0, render_helpers_1.isDomNode)(row) && row.tag === \"tr\") {\r\n let cellsInCurrentRow = [];\r\n for (const cell of row.children) {\r\n if ((0, render_helpers_1.isDomNode)(cell)) {\r\n cellsInCurrentRow.push({\r\n innerMarkup: renderer.renderNode(cell),\r\n header: cell.tag === \"th\",\r\n align: cell.attributes.align,\r\n });\r\n }\r\n }\r\n grid.push(cellsInCurrentRow);\r\n }\r\n }\r\n let columnWidths = [];\r\n for (let i = 0; i < grid[0].length; i++) {\r\n // Check max length of each column's inner markup\r\n columnWidths.push(Math.max(...grid.map(row => { var _a; return ((_a = row[i].innerMarkup) === null || _a === void 0 ? void 0 : _a.length) || 0; })));\r\n }\r\n let tableMarkup = [];\r\n let isFirstRow = true;\r\n for (const row of grid) {\r\n let rowMarkup = [];\r\n for (const column in row) {\r\n const cell = row[column];\r\n const innerMarkup = cell.innerMarkup;\r\n const columnWidth = columnWidths[column];\r\n if (cell.align === \"center\") {\r\n rowMarkup.push(center(innerMarkup, columnWidth));\r\n }\r\n else if (cell.align === \"right\") {\r\n rowMarkup.push(justifyRight(innerMarkup, columnWidth));\r\n }\r\n else {\r\n rowMarkup.push(justifyLeft(innerMarkup, columnWidth));\r\n }\r\n }\r\n tableMarkup.push(\"| \" + rowMarkup.join(\" | \") + \" |\");\r\n if (isFirstRow) {\r\n // Markdown requires the first row to be a header row\r\n let rowMarkup = [];\r\n for (const column in row) {\r\n const columnWidth = columnWidths[column];\r\n rowMarkup.push(\"-\".repeat(columnWidth));\r\n }\r\n tableMarkup.push(\"|-\" + rowMarkup.join(\"-|-\") + \"-|\");\r\n isFirstRow = false;\r\n }\r\n }\r\n return tableMarkup.join(\"\\n\") + \"\\n\\n\";\r\n },\r\n // The <tr> tag is handled by the <table> rule\r\n \"tr\": () => null,\r\n \"td\": (_, im) => im,\r\n \"th\": (_, im) => im,\r\n // Generic block element rule\r\n \"block\": (node, im) => {\r\n if (im.trim().length > 0) {\r\n return `<${node.tag}>${im.trim()}</${node.tag}>\\n`;\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n // Wildcard rule, catching all other inline elements\r\n \"*\": (node, im) => {\r\n if (im.trim().length > 0) {\r\n return `<${node.tag}>${im.trim()}</${node.tag}>`;\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n };\r\n // Inherit identical rules\r\n rules[\"div\"] = rules[\"p\"];\r\n rules[\"ol\"] = rules[\"ul\"];\r\n // Generic block elements\r\n rules[\"address\"] = rules[\"block\"];\r\n rules[\"article\"] = rules[\"block\"];\r\n rules[\"aside\"] = rules[\"block\"];\r\n rules[\"details\"] = rules[\"block\"];\r\n rules[\"dialog\"] = rules[\"block\"];\r\n rules[\"fieldset\"] = rules[\"block\"];\r\n rules[\"figcaption\"] = rules[\"block\"];\r\n rules[\"figure\"] = rules[\"block\"];\r\n rules[\"footer\"] = rules[\"block\"];\r\n rules[\"form\"] = rules[\"block\"];\r\n rules[\"header\"] = rules[\"block\"];\r\n rules[\"hgroup\"] = rules[\"block\"];\r\n rules[\"main\"] = rules[\"block\"];\r\n rules[\"nav\"] = rules[\"block\"];\r\n rules[\"section\"] = rules[\"block\"];\r\n return rules;\r\n}\r\nexports.getRules = getRules;\r\n","type":"application/javascript","module-type":"library"},"$:/plugins/cdaven/markdown-export/render.js":{"title":"$:/plugins/cdaven/markdown-export/render.js","text":"/*\\\r\ntitle: $:/plugins/cdaven/markdown-export/render.js\r\ntype: application/javascript\r\nmodule-type: library\r\n\\*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MarkdownRenderer = exports.TiddlyWikiRenderer = void 0;\r\nconst render_helpers_js_1 = require(\"./render-helpers.js\");\r\nconst render_rules_js_1 = require(\"./render-rules.js\");\r\n// type NodeRenderer = (node: TW_Element, innerMarkup: string) => string | null;\r\n// type RulesRecord = Record<string, NodeRenderer>;\r\n// TODO: Look at/think about https://tiddlywiki.com/static/Creating%2520a%2520custom%2520export%2520format.html\r\nclass TiddlyWikiRenderer {\r\n constructor(tw) {\r\n this.tw = tw;\r\n // Imports built-in macros and custom macros in the tiddler, including the $:/tags/Macro/View tag\r\n const macroImport = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\";\r\n this.widgetOptions = {\r\n document: $tw.fakeDocument,\r\n mode: \"block\",\r\n importVariables: macroImport,\r\n recursionMarker: \"yes\",\r\n variables: {\r\n currentTiddler: null\r\n }\r\n };\r\n }\r\n /** Let TiddlyWiki parse the tiddler text and build a widget tree */\r\n renderWidgetTree(title) {\r\n this.widgetOptions.variables.currentTiddler = title;\r\n const widgetNode = this.tw.wiki.makeTranscludeWidget(title, this.widgetOptions);\r\n const container = this.tw.fakeDocument.createElement(\"div\");\r\n widgetNode.render(container, null);\r\n // Get the first-level nodes in the tree\r\n return container.children[0].children;\r\n }\r\n /** \"Wikify\" a WikiText string */\r\n wikifyText(text) {\r\n return this.tw.wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", text);\r\n }\r\n /** Get tiddler fields */\r\n getFields(title) {\r\n const tiddler = this.tw.wiki.getTiddler(title);\r\n if (tiddler == null) {\r\n console.warn(\"Found no such tiddler\", title);\r\n return null;\r\n }\r\n // Clone tiddler fields\r\n return Object.assign({}, tiddler.fields);\r\n }\r\n}\r\nexports.TiddlyWikiRenderer = TiddlyWikiRenderer;\r\nclass MarkdownRenderer {\r\n constructor(tw) {\r\n this.tw = tw;\r\n this.rules = (0, render_rules_js_1.getRules)(this);\r\n }\r\n renderTiddler(title) {\r\n if (this.rules == null) {\r\n console.warn(\"Cannot render tiddler without rules\");\r\n return null;\r\n }\r\n const nodes = this.tw.renderWidgetTree(title);\r\n this.tiddlerFields = this.tw.getFields(title);\r\n if (this.tiddlerFields == null) {\r\n console.warn(`Tiddler [[${title}]] doesn't seem to exist`);\r\n return null;\r\n }\r\n let renderedNodes = \"\";\r\n for (const node of nodes) {\r\n const nodeMarkup = this.renderNode(node);\r\n if (nodeMarkup != null) {\r\n renderedNodes += nodeMarkup;\r\n }\r\n }\r\n // Prepend meta node last, in case attributes have changed during rendering\r\n const metaNode = {\r\n tag: \"meta\",\r\n nodeType: render_helpers_js_1.Node.ELEMENT_NODE,\r\n attributes: this.tiddlerFields,\r\n children: []\r\n };\r\n let markup = this.renderNode(metaNode) + renderedNodes;\r\n return markup.replace(/\\n\\n\\n+/g, \"\\n\\n\").trim() + \"\\n\";\r\n }\r\n /** Get raw text from node */\r\n getNodeText(node) {\r\n if ((0, render_helpers_js_1.isTextNode)(node)) {\r\n return node.textContent || \"\";\r\n }\r\n else if ((0, render_helpers_js_1.isDomNode)(node)) {\r\n return node.children.map(child => this.getNodeText(child)).join(\" \");\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n /** Render specified node to Markdown */\r\n renderNode(node) {\r\n if ((0, render_helpers_js_1.isTextNode)(node)) {\r\n return node.textContent || \"\";\r\n }\r\n else if ((0, render_helpers_js_1.isDomNode)(node)) {\r\n // Render markup from children depth-first\r\n const innerMarkup = node.children.map(child => this.renderNode(child)).join(\"\");\r\n return this.executeRule(node, innerMarkup);\r\n }\r\n else {\r\n console.error(\"Unknown type of node\", node);\r\n throw new Error(\"Unknown type of node\");\r\n }\r\n }\r\n /** Get next sibling of specified node */\r\n getNextNode(node) {\r\n if (node.parentNode == null) {\r\n return null;\r\n }\r\n let isNext = false;\r\n for (const n of node.parentNode.children) {\r\n if (isNext) {\r\n return n;\r\n }\r\n else if (n === node) {\r\n isNext = true;\r\n }\r\n }\r\n return null;\r\n }\r\n isFirstChild(node) {\r\n if (node.parentNode == null) {\r\n // Define all root elements as the first and last children\r\n return true;\r\n }\r\n return node == node.parentNode.children[0];\r\n }\r\n isLastChild(node) {\r\n if (node.parentNode == null) {\r\n // Define all root elements as the first and last children\r\n return true;\r\n }\r\n return node == node.parentNode.children[node.parentNode.children.length - 1];\r\n }\r\n executeRule(node, innerMarkup) {\r\n if (node.tag in this.rules) {\r\n return this.rules[node.tag](node, innerMarkup);\r\n }\r\n else {\r\n // Use wildcard rule when tag doesn't have its own rule\r\n return this.rules[\"*\"](node, innerMarkup);\r\n }\r\n }\r\n}\r\nexports.MarkdownRenderer = MarkdownRenderer;\r\n","type":"application/javascript","module-type":"library"}}} \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json.meta b/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json.meta new file mode 100644 index 00000000..fdd80461 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/cdaven/markdown-export.json.meta @@ -0,0 +1,11 @@ +author: cdaven +core-version: >=5.0.8 +dependents: +description: Markdown export of tiddlers +list: readme details license +name: markdown-export 导出Markdown +plugin-type: plugin +source: https://github.com/cdaven/tiddlywiki-stuff/tree/main/markdown-export +title: $:/plugins/cdaven/markdown-export +type: application/json +version: 0.5.0 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/cdr/markdown-more.json b/tiddlers/TCTSystem/plugins/cdr/markdown-more.json new file mode 100644 index 00000000..1ecc2bee --- /dev/null +++ b/tiddlers/TCTSystem/plugins/cdr/markdown-more.json @@ -0,0 +1 @@ +{"tiddlers":{"$:/config/markdown/admonition/style":{"title":"$:/config/markdown/admonition/style","text":"classic"},"$:/config/markdown/toc/portrait":{"title":"$:/config/markdown/toc/portrait","text":"hide"},"$:/config/markdown/toc/depth":{"title":"$:/config/markdown/toc/depth","text":"2"},"$:/config/markdown/toc/enable":{"title":"$:/config/markdown/toc/enable","text":"yes"},"$:/plugins/cdr/markdown-more/markdown-it-admonition.js":{"title":"$:/plugins/cdr/markdown-more/markdown-it-admonition.js","text":"/*\\\ntitle: $:/plugins/cdr/markdown-more/markdown-it-admonition.js\ntype: application/javascript\nmodule-type: library\n\nAdds admonition container:\n\n:::category optional title string\nadmonition body\n:::\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar categories = {\n\tnote: null,\n\tinfo: null,\n\ttodo: null,\n\timportant: null,\n\ttip: null,\n\tsuccess: null,\n\tquestion: null,\n\twarning: null,\n\tcaution: null,\n\tfail: null,\n\tdanger: null,\n\terror: null,\n\tbug: null,\n\texample: null,\n\tsnippet: null,\n\tabstract: null,\n\tsummary: null,\n\tquote: null,\n\tcite: null,\n\t\"see-also\": \"SEE ALSO\"\n};\n\n// initialize default title string\nfor(var c in categories) {\n\tif(!categories[c]) {\n\t\tcategories[c] = c.toUpperCase();\n\t}\n};\n\nvar AdmMarkerCode;\n\nvar AdmHeadingRegEx = /^\\s*([a-zA-Z-]+[a-zA-Z])([-+]?)(?:\\s*$|\\s+(.*?)\\s*$)/;\nfunction parseHeading(text) {\n\tvar m = text.match(AdmHeadingRegEx);\n\tif(m) {\n\t\tvar cat = m[1].toLowerCase();\n\t\tif(categories.hasOwnProperty(cat)) {\n\t\t\treturn {\n\t\t\t\tcategory: cat,\n\t\t\t\tstate: (m[2] || null),\n\t\t\t\ttitle: (m[3] || categories[cat])\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n}\n\n// parse through source from startLine until endLine or markup string\nfunction reachBlockEnd(state,startLine,endLine,markup) {\n\tvar nextLine=startLine;\n\tvar pos, mem, max, haveEndMarker=false;\n\n\tfor(nextLine = startLine; nextLine < endLine; nextLine++) {\n\t\tpos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n\t\tmax = state.eMarks[nextLine];\n\n\t\tif(pos < max && state.sCount[nextLine] < state.blkIndent) {\n\t\t\t// non-empty line with negative indent should stop the list:\n\t\t\t// - ```\n\t\t\t// test\n\t\t\tbreak;\n\t\t}\n\n\t\tif(state.src.charCodeAt(pos) !== AdmMarkerCode) { continue; }\n\n\t\tif(state.sCount[nextLine] - state.blkIndent >= 4) {\n\t\t\t// closing fence should be indented less than 4 spaces\n\t\t\tcontinue;\n\t\t}\n\n\t\tpos = state.skipChars(pos,AdmMarkerCode);\n\n\t\t// closing code fence must be at least as long as the opening one\n\t\tif(pos - mem < markup.length) { continue; }\n\n\t\t// make sure tail has spaces only\n\t\tif(state.skipSpaces(pos) < max) { continue; }\n\n\t\t// found!\n\t\thaveEndMarker = true;\n\t\tbreak;\n\t}\n\n\tif(haveEndMarker) {\n\t\tnextLine++;\n\t}\n\n\treturn { endLine: nextLine, endMarker: (haveEndMarker ? state.src.slice(mem,pos) : \"\") };\n}\n\nmodule.exports = function admonitionPlugin(md,options) {\n\tfunction admonitionRule(state,startLine,endLine,silent) {\n\t\tvar pos, params, token, markup,\n\t\tstart = state.bMarks[startLine] + state.tShift[startLine],\n\t\tmax = state.eMarks[startLine];\n\n\t\tif(start + 3 > max) { return false; }\n\n\t\tif(state.src.charCodeAt(start) !== AdmMarkerCode) {\n\t\t return false;\n\t\t}\n\n\t\t// scan marker length, must be >= 3\n\t\tpos = state.skipChars(start,AdmMarkerCode);\n\n\t\tif(pos - start < 3) { return false; }\n\n\t\tmarkup = state.src.slice(start,pos);\n\t\tparams = state.src.slice(pos,max);\n\n\t\t// parse heading\n\t\tvar heading = parseHeading(params);\n\t\tif(!heading) { return false; }\n\n\t\t// Since start is found, we can report success here in validation mode\n\t\tif(silent) { return true; }\n\n\t\tvar loop = reachBlockEnd(state,startLine + 1,endLine,markup);\n\t\tvar oldParent = state.parentType;\n\t\tvar oldLineMax = state.lineMax;\n\t\tstate.parentType = 'admonition';\n\n\t\tvar blockTag = heading.state ? 'details' : 'div';\n\t\tvar titleTag = heading.state ? 'summary' : 'div';\n\n\t\ttoken = state.push('admonition_open',blockTag,1);\n\t\ttoken.markup = markup;\n\t\ttoken.block = true;\n\t\ttoken.info = heading.category;\n\t\ttoken.map = [ startLine, loop.endLine ];\n\t\ttoken.attrJoin('class','admonition');\n\t\ttoken.attrJoin('class',heading.category);\n\t\tif(heading.state === '+') {\n\t\t\ttoken.attrSet('open','open');\n\t\t}\n\n\t\t// admonition title\n\t\ttoken = state.push('admonition_title_open',titleTag,1);\n\t\ttoken.markup = markup;\n\t\ttoken.info = heading.category;\n\t\ttoken.map = [ startLine, startLine + 1 ];\n\t\ttoken.attrSet('class','admonition-title');\n\n\t\ttoken = state.push('inline','',0);\n\t\ttoken.content = heading.title;\n\t\ttoken.map = [ startLine, startLine + 1 ];\n\t\ttoken.children = [];\n\n\t\ttoken = state.push('admonition_title_close',titleTag,-1);\n\t\ttoken.markup = markup;\n\t\ttoken.info = heading.category;\n\n\t\ttoken = state.push('admonition_body_open','div',1);\n\t\ttoken.attrSet('class','admonition-body');\n\t\ttoken.map = [ startLine + 1, loop.endLine - (loop.endMarker ? 1 : 0) ];\n\n\t\t// this will prevent lazy continuations from ever going past our end marker\n\t\tstate.lineMax = token.map[1];\n\t\tstate.md.block.tokenize(state,token.map[0],token.map[1]);\n\n\t\ttoken = state.push('admonition_body_close','div',-1);\n\t\ttoken = state.push('admonition_close',blockTag,-1);\n\t\ttoken.markup = loop.endMarker;\n\t\ttoken.block = true;\n\n\t\tstate.parentType = oldParent;\n\t\tstate.lineMax = oldLineMax;\n\t\tstate.line = loop.endLine;\n\n\t\treturn true;\n\t}\n\n\t//var defaults = { marker: \":\" };\n\n\toptions = options || {};\n\n\tAdmMarkerCode = (options.maker || \":\").charCodeAt(0);\n\n\t//options = md.utils.assign({},defaults,options);\n\t//options.markerCode = options.marker.charCodeAt(0);\n\n\tmd.block.ruler.before('fence','admonition',admonitionRule,{\n\t\talt: [ 'paragraph', 'reference', 'blockquote', 'list' ]\n\t});\n};\n})();","type":"application/javascript","module-type":"library"},"$:/plugins/cdr/markdown-more/markdown-it-checklist.js":{"title":"$:/plugins/cdr/markdown-more/markdown-it-checklist.js","text":"/*\\\ntitle: $:/plugins/cdr/markdown-more/markdown-it-checklist.js\ntype: application/javascript\nmodule-type: library\n\nAdds checklist syntax:\n\n```\n- [ ] task 1\n- [x] task 2\n```\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CheckBoxRegEx = /^\\[([xX ])\\]\\s+/g;\n\n// token[idx] is the first inline token of a list item\nfunction processListItemStart(state,tokens,idx) {\n\tvar tok = tokens[idx]; // inline token\n\tvar blockState = state.md.blockState;\n\n\tif(tok.children.length <= 0) { return; }\n\n\tvar text = tok.children[0].content;\n\n\tCheckBoxRegEx.lastIndex = 0;\n\tvar match = CheckBoxRegEx.exec(text);\n\n\tif(match) {\n\t\tvar checked = false;\n\t\tif(match[1] === \" \") {\n\t\t\ttokens[idx - 2].attrSet(\"class\",\"checklist-item unchecked\");\n\t\t} else {\n\t\t\ttokens[idx - 2].attrSet(\"class\",\"checklist-item checked\");\n\t\t\tchecked = true;\n\t\t}\n\t\ttok.children[0].content = text.substring(CheckBoxRegEx.lastIndex);\n\t\tvar inputToken = new state.Token('checkbox','$md-checkbox',0);\n\t\tinputToken.attrSet(\"class\",\"checklist-item-checkbox\");\n\t\tinputToken.attrSet(\"type\",\"checkbox\");\n\t\tinputToken.attrSet(\"pos\",blockState.bMarks[tokens[idx].map[0]]);\n\t\tif(checked) {\n\t\t\tinputToken.attrSet(\"checked\",\"\");\n\t\t}\n\t\ttok.children.unshift(inputToken);\n\t}\n}\n\nfunction isListItemStart(tokens,idx) {\n\treturn tokens[idx].type === \"inline\" &&\n\t\ttokens[idx - 1].type == \"paragraph_open\" &&\n\t\ttokens[idx - 2].type === \"list_item_open\";\n}\n\nfunction processLists(state) {\n\tvar tokens = state.tokens;\n\n\tfor(var idx = 2; idx < tokens.length; idx++) {\n\t\tif(isListItemStart(tokens,idx)) {\n\t\t\tprocessListItemStart(state,tokens,idx);\n\t\t}\n\t}\n\tdelete state.md.blockState;\n}\n\nfunction checklistPlugin(md,options) {\n\tmd.core.ruler.after('inline','checklist',processLists,options);\n\n\t// insert a dummy rule in order to preserve block processing's state object\n\tmd.block.ruler.before('table','_dummy_',function(state,startLine,endLine,silent) {\n\t\tstate.md.blockState = state;\n\t\treturn false;\n\t});\n}\n\nmodule.exports = checklistPlugin;\n})();","type":"application/javascript","module-type":"library"},"$:/plugins/cdr/markdown-more/markdown-it-toc.js":{"title":"$:/plugins/cdr/markdown-more/markdown-it-toc.js","text":"/*\\\ntitle: $:/plugins/cdr/markdown-more/markdown-it-toc.js\ntype: application/javascript\nmodule-type: library\n\nAdds a table of content section\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar escapeHtml;\n\n// TOC tree node: { level: n, text: s, id: n, children:[] }\nfunction tocScan(state,maxDepth) {\n\tvar root = { level: 0, text: '', id: null, children: [] };\n\tvar stack = [ root ];\n\n\tvar id = 0, i, level, token, curDepth = 0, curLevel = 0;\n\tfor(i=0; i < state.tokens.length; i++) {\n\t\tif(state.tokens[i].level > 0) { continue; }\n\t\tif(state.tokens[i].type !== 'heading_open') { continue; }\n\n\t\ttoken = state.tokens[i];\n\t\tlevel = parseInt(token.tag.substring(1));\n\n\t\tif(level > 3) { continue; }\n\n\t\tif(level > curLevel) {\n\t\t\tif(curDepth >= maxDepth) { continue; }\n\t\t\tif(curLevel > 0 && level > curLevel + 1) { continue;}\n\t\t}\n\n\t\tif(state.tokens[i + 1].type !== 'inline') { continue; }\n\n\t\tvar inlineTokens = state.tokens[i+1].children.filter(function(token) {\n\t\t\treturn !['link_open','link_close','html_inline'].includes(token.type);\n\t\t});\n\t\tvar headingText = state.md.renderer.renderInline(inlineTokens,state.md.options);\n\t\tvar node = { level: level, text: headingText, id: id++, children: [] };\n\n\t\t// search level's parent\n\t\twhile(curDepth > 0 && level <= stack[stack.length - 1].level) {\n\t\t\tstack.pop();\n\t\t\tcurDepth--;\n\t\t}\n\t\tstack[stack.length - 1].children.push(node);\n\t\tstack.push(node);\n\t\tcurDepth++;\n\t\ttoken.anchor = '#topic' + node.id;\n\t\ttoken.attrJoin('class','anchor-item');\n\t\tcurLevel = level;\n\t}\n\tif(root.children.length > 0) {\n\t\tstate.env.toc = root;\n\t}\n}\n\nfunction tocRenderTree(nodes, depth) {\n\tif(!nodes || nodes.length <= 0) {\n\t\treturn '';\n\t}\n\tvar s = (depth > 1 ? '\\n' : '') + '<ol class=\"tc-toc toc-level' + depth + '\">\\n';\n\tvar i;\n\tfor(i=0; i < nodes.length; i++) {\n\t\ts += '<li class=\"toc-item\"><a class=\"tc-tiddlylink\" href=<<qualify \"##topic' + nodes[i].id\n\t\t\t+ '\">>><span>' + nodes[i].text + '</span></a>'\n\t\t\t+ tocRenderTree(nodes[i].children, depth + 1)\n\t\t\t+ '</li>\\n';\n\t}\n\treturn s + '</ol>\\n';\n}\n\nfunction tocRender(tokens,idx,options,env) {\n\tif(!env.toc || env.toc.children.length === 0) {\n\t\treturn '';\n\t}\n\n\treturn '<div class=\"md-aside\">\\n<nav class=\"table-of-contents\">\\n'\n\t\t+ tocRenderTree(env.toc.children, 1)\n\t\t+ '</nav>\\n</div>\\n';\n}\n\nmodule.exports = function tocPlugin(md,options) {\n\toptions = md.utils.assign(Object.create(null),{\n\t\tdepth: 3\n\t}, options);\n\n\tescapeHtml = md.utils.escapeHtml;\n\n\t// insert 'toc' token automatically and enclose markdown\n\t// text into a <div> container\n\tmd.core.ruler.before('block','prologue',function(state) {\n\t\tvar token;\n\t\ttoken = new state.Token('html_block','',0);\n\t\ttoken.content = '<div class=\"md-container\">\\n';\n\t\tstate.tokens.push(token);\n\n\t\ttoken = new state.Token('toc','nav',0);\n\t\ttoken.block = true;\n\t\tstate.tokens.push(token);\n\n\t\ttoken = new state.Token('html_block','',0);\n\t\ttoken.content = '<div class=\"md-main\">\\n';\n\t\tstate.tokens.push(token);\n\t});\n\n\t// close off main <div> container and starts scanning\n\t// for toc content\n\tmd.core.ruler.push('epilogue', function(state) {\n\t\tvar token = new state.Token('html_block','',0);\n\t\ttoken.content = '</div>\\n</div>\\n';\n\t\tstate.tokens.push(token);\n\n\t\ttocScan(state,options.depth);\n\t});\n\n\tmd.renderer.rules.toc = tocRender;\n\n\t// adds anchor id to heading elements if available\n\tmd.renderer.rules.heading_open = function(tokens,idx,options,env,slf) {\n\t\tvar s = '<' + tokens[idx].tag + slf.renderAttrs(tokens[idx]);\n\n\t\tif(tokens[idx].anchor) {\n\t\t\ts += ' id=<<qualify \"' + tokens[idx].anchor + '\">>';\n\t\t}\n\t\treturn s + '>';\n\t}\n}\n})();","type":"application/javascript","module-type":"library"},"$:/plugins/cdr/markdown-more/md-checkbox.js":{"title":"$:/plugins/cdr/markdown-more/md-checkbox.js","text":"/*\\\ntitle: $:/plugins/cdr/markdown-more/md-checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nInteractive checkbox for markdown checklists. Internal use only.\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MarkdownCheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMarkdownCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMarkdownCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\n\t// create our element\n\tthis.inputNode = this.document.createElement(\"input\");\n\tthis.inputNode.setAttribute(\"type\",\"checkbox\");\n\n\tif(this.isChecked) {\n\t\tthis.inputNode.setAttribute(\"class\",\"checklist-item-checkbox checked\");\n\t\tthis.inputNode.setAttribute(\"checked\",\"\");\n\t} else {\n\t\tthis.inputNode.setAttribute(\"class\",\"checklist-item-checkbox unchecked\");\n\t}\n\tif(this.isDisabled) {\n\t\tthis.inputNode.setAttribute(\"disabled\",\"\");\n\t} else {\n\t\t// add event handler\n\t\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t\t{\n\t\t\t\tname: \"change\",\n\t\t\t\thandlerObject: this,\n\t\t\t\thandlerMethod: \"handleChangeEvent\"\n\t\t\t}\n\t\t]);\n\t}\n\n\t// insert into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nMake a best effort to determine if the title of the storyTiddler matches that of\nthe transcluded tiddler. This function may provide inaccurate result if\nthe relevant titles contain the \"|\" character. But TW has a\nTitle/BadCharacterWarning that reduces the scenario.\n*/\nfunction matchTranscludeTitle(storyTiddlerTitle) {\n\tvar curTiddlerTitle = this.getVariable(\"currentTiddler\"),\n\t\ttransclusion = this.getVariable(\"transclusion\");\n\n\tif(transclusion === undefined) {return true;}\n\n\tif(transclusion.indexOf(curTiddlerTitle + \"|\") === 1) {\n\t\tvar pos = 2 + curTiddlerTitle.length;\n\t\treturn (transclusion.indexOf(storyTiddlerTitle + \"|\",pos) === pos);\n\t}\n\treturn false;\n}\n\n/*\nCompute the internal state of the widget\n*/\nMarkdownCheckboxWidget.prototype.execute = function() {\n\tthis.tiddlerTitle = this.getVariable(\"storyTiddler\");\n\n\t// Get the parameters from the attributes\n\tthis.pos = parseInt(this.getAttribute(\"pos\"));\n\tif(! isNaN(this.pos) && this.pos < 0) {\n\t\tthis.pos = NaN;\n\t}\n\n\tthis.isChecked = this.getAttribute(\"checked\") !== undefined;\n\tthis.isDisabled = (this.getAttribute(\"disabled\") !== undefined)\n\t\t|| isNaN(this.pos)\n\t\t|| ! $tw.wiki.getTiddler(this.tiddlerTitle);\n\n\tif(!matchTranscludeTitle.call(this,this.tiddlerTitle)) {\n\t\tthis.isDisabled = true;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMarkdownCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.pos || changedAttributes.checked || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nMarkdownCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar newText, text = $tw.wiki.getTiddlerText(this.tiddlerTitle);\n\n\tif(text.length <= this.pos) {\n\t\treturn;\n\t}\n\tif(this.inputNode.checked) {\n\t\tnewText = text.substring(0,this.pos) + text.substring(this.pos).replace(/\\[ \\]/,\"[x]\");\n\t\t$tw.utils.addClass(this.inputNode,\"checked\");\n\t\t$tw.utils.removeClass(this.inputNode,\"unchecked\");\n\t} else {\n\t\tnewText = text.substring(0,this.pos) + text.substring(this.pos).replace(/\\[[xX]\\]/,\"[ ]\");\n\t\t$tw.utils.addClass(this.inputNode,\"unchecked\");\n\t\t$tw.utils.removeClass(this.inputNode,\"checked\");\n\t}\n\t$tw.wiki.setText(this.tiddlerTitle,\"text\",null,newText);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n}\n\nexports[\"md-checkbox\"] = MarkdownCheckboxWidget;\n\n})();\n","type":"application/javascript","module-type":"widget"},"$:/plugins/cdr/markdown-more/readme":{"title":"$:/plugins/cdr/markdown-more/readme","text":"This is an extension to the official Markdown plugin (≥ 5.2.6), featuring:\n\n* checklist\n* admonition\n* tiddler-level table of contents based on Markdown headings\n\n!! Settings\n\n!!! Admonition Style\n\n<$select tiddler=\"$:/config/markdown/admonition/style\" default='classic'><$list filter='[[classic]] [[pastel]]'><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select>\n\n<div class=\"markdown\">\n<div class=\"admonition note\" style=\"margin-top: 1.2em\">\n<div class=\"admonition-title\">NOTE</div>\n<div class=\"admonition-body\">This is an example of an admonition box.</div>\n</div>\n</div>\n\n!!! Table of Contents\n\n<$checkbox tiddler=\"$:/config/markdown/toc/enable\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\">\n generate table of contents — //page reload required for changes to take effect//\n</$checkbox>\n\n<$reveal stateTitle=\"$:/config/markdown/toc/enable\" type=\"match\" text=\"yes\" default=\"yes\">\n\n<$checkbox tiddler=\"$:/config/markdown/toc/portrait\" field=\"text\" checked=\"hide\" unchecked=\"show\" default=\"hide\">\n hide table of contents in portrait/mobile view\n</$checkbox>\n\nnumber of levels:  <$select tiddler=\"$:/config/markdown/toc/depth\" default='2'><$list filter='1 2 3'><option value=<<currentTiddler>>><$view field='title'/></option></$list></$select>\n</$reveal>"},"$:/plugins/cdr/markdown-more/startup.js":{"title":"$:/plugins/cdr/markdown-more/startup.js","text":"/*\\\ntitle: $:/plugins/cdr/markdown-more/startup.js\ntype: application/javascript\nmodule-type: startup\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"markdown-more\";\nexports.after = [\"startup\"];\nexports.before = [\"render\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\tvar MarkdownParser = $tw.Wiki.parsers[\"text/markdown\"];\n\n\tif(!MarkdownParser) { return; }\n\n\tvar md = MarkdownParser.prototype.md;\n\tmd.use(require(\"$:/plugins/cdr/markdown-more/markdown-it-checklist.js\"))\n\t .use(require(\"$:/plugins/cdr/markdown-more/markdown-it-admonition\"))\n\t //.use(require(\"$:/plugins/cdr/markdown-more/markdown-it-toc-done-right\"), {placeholder: \"\\\\${toc}\"})\n\t //.use(require(\"$:/plugins/cdr/markdown-more/markdown-it-table-of-contents\"))\n\t ;\n\n\tif($tw.wiki.getTiddlerText(\"$:/config/markdown/toc/enable\",\"no\").trim().toLowerCase() === \"yes\") {\n\t md.use(require(\"$:/plugins/cdr/markdown-more/markdown-it-toc\"));\n\t}\n}\n})();\n","type":"application/javascript","module-type":"startup"},"$:/plugins/cdr/markdown-more/styles":{"title":"$:/plugins/cdr/markdown-more/styles","tags":"[[$:/tags/Stylesheet]]","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n\\define styleAdmonition(category: \"note\", color: \"note\", symbol: \"e85d\")\n\\rules except dash\n.admonition.$category$ {\n border-left: 3px solid hsl(var(--color-admonition-$color$));\n}\n.admonition.$category$ > .admonition-title {\n background-color: hsl(var(--color-admonition-$color$-bg));\n color: hsl(var(--color-admonition-$color$-tx));\n}\n.admonition.$category$ > .admonition-title:before {\n color: hsl(var(--color-admonition-$color$));\n content: \"\\$symbol$\";\n}\ndetails.admonition.$category$ > .admonition-title:after {\n background-color: hsl(var(--color-admonition-$color$));\n}\n\\end\n\n\\define styleAdmonitionCompact(category: \"note\", color: \"note\")\n\\rules except dash\n.admonition.$category$ {\n background-color: hsl(var(--color-admonition-$color$-bg));\n border: 1px solid hsl(var(--color-admonition-$color$));\n color: hsl(var(--color-admonition-$color$-tx));\n}\n.admonition.$category$ a.tc-tiddlylink-external, .admonition.$category$ a.tc-tiddlylink-external:visited,\n.admonition.$category$ a.tc-tiddlylink, .admonition.$category$ a.tc-tiddlylink:visited {\n color: hsl(var(--color-admonition-$color$-tx));\n text-decoration-line: underline;\n text-underline-offset: 2px;\n}\n.admonition.$category$ :not(pre) > code {\n background-color: hsla(var(--color-admonition-$color$-bg));\n background-color: rgba(0,0,0,.03);\n color: hsl(var(--color-admonition-$color$-tx));\n border: .5px solid hsla(var(--color-admonition-$color$), .5);\n border-radius: 3px;\n margin: 0 2px;\n}\n\\end\n\n@font-face {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n src: local(\"Material Icons\"), local(\"MaterialIcons-Regular\"), url(data:font/woff2;base64,d09GMgABAAAAAAWgAA8AAAAAC3wAAAVKAAEEWgAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbEBwaBmAAgUwIBBEICo0MiW4BNgIkAy4LLgAEIAWCegcgG6cIo6KEUQIA/plgE5n6ghXD6FIH3i2DlCyKBSxseTL87nyxmQANgU8vBB9w795da03NsrjwUwRTMcIosbgj3PTqdA41S5nmviYCqbiPTD3MxGDqwJRO1Hiedr5+OUbYjXgAGPh49w/X9K5Vu/t3Q+EKar7gpiYDI35jE5vYloV5ELYgDOE21/85lnqdlEUHfnaisQ3w3/W/TFpRZOHhEc46vUGaZ8O9CYz2HLWDM7C2Fb+XeC0E0gDARIp2GZI5cjZObM8qUxrnvbkWeMTp4aCXDrSxFICTrf4xM7bHIhNwlGf9upofTwTYxpd2+kgSQ4hligqE2t7/kSWKtuTVfPDh4X4U/CjsUdLj509Mnp57Fv5sxwv3Fzkvyl+0vpjwYvqL6x/7fzzRgno7bmEb+WdUtN5ndcLqmNVeS8rio3mQ2SmzYpObJttN1posMJlkMsYkaKBu9gwaxtTCCANAbcPCKhi7BhyAPko8Jxuwx4aYRJmjivhlPBIDUIdJGIY6VEz2CxPivWKxfHhQzIY7HB+paJ68qXBVp/ZRA3muNxadZJ4jHI1q+EQCiQTi8f7fb8HcgmkQuRbiDO098udykZAFJUpalaV+DCEADOFNTz36xMQutf82dTvpUxMyCBp9Ir80C/o1+7EdYVjwtnA0Q2Ygt7JrKD2ykHeH9O+HZuBGduvXduUWZu+3crNxO7X/VLokVEGKopZ/GTRjgn3kHBmb/XFUl4Q//RSEe1HgUsxna3EU63oPcmHUt1dv7N81TNO3ra4tcT+LJq5OqLcGagK2hGBON4snblYi5BbiJUR7ccV+uVautv1ZvVhJrrQuClWOMuwjC7zL5tNCDG53WSBBD4HdhGLB430ZCAFKIIyQfRvRtohcA4ZpMoOJY0JgKBJkRJemUeBiiEk49BnmbXoX5ENByFoTETAM9KZQEf80Op0PMFQwyNAigkQZ+IqTh8AxRTfDBMT+c9Y/dGJw7PXvhJrI34g18sMKKsC1znXUhg1wHEHCIhMlrW1u5sLZRyAwt7W01XlBjdMbkKPFQayAb/Y1IsD1obLSrje9146hGYtSj1ILhq6Q4EbUcPSTTP5Y4BQq8QZG+l8eBE8D3cRSZjA2/Z25xYWlkjSLSLgDTjNU7owT66iNrtWB27u7aSwoZAwwZUMmjJ+cOAQUnEzWu2JFbKyalgkmCpCbBk7GX8DHNI3zklAZSFREKUIVSsVkLmlCwSHBYawl6bvkzjIKv+P3QsD/RBGxCBlUbkB7K54RIcRIz8qe+PVbebOyX4XEyXoE3p2h34t6ofrtI+tHb9VC9hbI1jx8pP7f1tZLEDTQ1XIwP4I/GPkLhPjdiwsn2/ZF28mmMxExpKLJrxgGEiT0RhbZkN43EXEMMpsIQ1h9C+VGVCGIAquMeRf0IXGBt7N/y3mVwFLOByKRhomkLAG+3BI4GR7PJfkiBKQrVUQllrDIgqJSTuQsbp8riYlVX8zIeNsuzIqJcaIgnl9AK3gK3XvMG+j34+kbgM/qFZ4A8B1mCf//9Q94AnFeGUB0BQPUQcRYBQqMVEl05zIhjXQQSghCjVg0ArawStBUDVAdFKaProKm9MhhbExAi1bCl16BQdryDZZ1M4RcTF4drjNENN37LFFL34SqU69DowplyjWjuHDizAslUp06ZaqVsEOJVquIA0qwatUoKWujTREssUGXG7UyFld3xCvQHK1WKFjVN1qROrXkpXKZloyuQKOIaLMNWC1Tsht0YCHFZ7FPC1QNdWfPlX0PVW/MCmxibyVA1PmJdZ150mxaz35nWS3C2X8MFwAA);\n}\n\n/*** Admonition ***/\n\n:root {\n /* HSL color tuples */\n --color-admonition-note: 202, 100%, 49%;\n --color-admonition-important: 330, 75%, 61%;\n --color-admonition-success: 95, 70%, 47%;\n --color-admonition-warning: 34, 100%, 50%;\n --color-admonition-danger: 6, 86%, 57%;\n --color-admonition-example: 265, 100%, 67%;\n --color-admonition-quote: 0, 0%, 56%;\n --color-admonition-see-also: 134, 55%, 47%;\n}\n\n<$reveal stateTitle={{$:/palette}} stateField=\"color-scheme\" type=\"nomatch\" text=\"dark\">\n:root {\n --color-admonition-note-bg: 202, 100%, 93%;\n --color-admonition-important-bg: 330, 75%, 95%;\n --color-admonition-success-bg: 95, 71%, 90%;\n --color-admonition-warning-bg: 34, 100%, 92%;\n --color-admonition-danger-bg: 6, 86%, 95%;\n --color-admonition-example-bg: 265, 100%, 96%;\n --color-admonition-quote-bg: 0, 0%, 93%;\n --color-admonition-see-also-bg: 134, 55%, 93%;\n\n --color-admonition-note-tx: 202, 100%, 20%;\n --color-admonition-important-tx: 330, 75%, 31%;\n --color-admonition-success-tx: 95, 70%, 19%;\n --color-admonition-warning-tx: 34, 100%, 21%;\n --color-admonition-danger-tx: 6, 86%, 30%;\n --color-admonition-example-tx: 265, 100%, 40.5%;\n --color-admonition-quote-tx: 0, 0%, 25.5%;\n --color-admonition-see-also-tx: 134, 55%, 21%;\n}\n.admonition {\n background-color: rgba(255,255,255,0.05);\n}\n</$reveal>\n\n<$reveal stateTitle={{$:/palette}} stateField=\"color-scheme\" type=\"match\" text=\"dark\">\n:root {\n --color-admonition-note-bg: 202, 100%, 15%;\n --color-admonition-important-bg: 330, 75%, 17%;\n --color-admonition-success-bg: 95, 70%, 14%;\n --color-admonition-warning-bg: 34, 100%, 16%;\n --color-admonition-danger-bg: 6, 86%, 16%;\n --color-admonition-example-bg: 265, 100%, 17%;\n --color-admonition-quote-bg: 0, 0%, 19.5%;\n --color-admonition-see-also-bg: 134, 55%, 14%;\n\n --color-admonition-note-tx: 202, 100%, 61%;\n --color-admonition-important-tx: 330, 75%, 68%;\n --color-admonition-success-tx: 95, 70%, 44%;\n --color-admonition-warning-tx: 34, 100%, 52%;\n --color-admonition-danger-tx: 6, 86%, 68%;\n --color-admonition-example-tx: 265, 100%, 76%;\n --color-admonition-quote-tx: 0, 0%, 67%;\n --color-admonition-see-also-tx: 134, 55%, 46%;\n}\n.admonition {\n background-color: rgba(255,255,255,0.06);\n border: 1px solid rgba(255,255,255,0.07);\n}\n@media print {\n .admonition {\n border: 1px solid <<colour pre-border>>;\n }\n}\n</$reveal>\n\n<$reveal stateTitle={{$:/palette}} stateField=\"color-scheme\" type=\"nomatch\" text=\"dark\">\n@media print {\n .admonition {\n border: 1px solid <<colour pre-border>>;\n print-color-adjust: exact;\n -webkit-print-color-adjust: exact;\n }\n .admonition > .admonition-title {\n print-color-adjust: exact;\n -webkit-print-color-adjust: exact;\n }\n}\n@media screen {\n .admonition {\n box-shadow: 0 3px 8px rgba(0,0,0,.05), 0 0 1px rgba(0,0,0,.1);\n }\n}\n</$reveal>\n\n.admonition {\n margin: 1.5em 0;\n padding: 0px;\n overflow:auto;\n page-break-inside:avoid;\n border-radius: 3px;\n border-left: 3px solid hsl(var(--color-admonition-note));\n}\n.admonition >.admonition-title {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 7px 8px;\n background-color: hsl(var(--color-admonition-note));\n font-weight: 600;\n font-size: .92em;\n line-height: 1;\n}\n.admonition >.admonition-title:before {\n margin-right: .4em;\n font-size: 1.25em;\n color: rgba(68, 138, 255, .8);\n content: \"\\e88e\";\n}\n.admonition >.admonition-title:before {\n font-family: Material Icons;\n font-style: normal;\n font-variant: normal;\n font-weight: 400;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n}\ndetails.admonition > .admonition-title:after {\n content: \"\";\n background-color: hsl(var(--color-admonition-note));\n margin-left: auto;\n mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='m18.75 36-2.15-2.15 9.9-9.9-9.9-9.9 2.15-2.15L30.8 23.95Z'/%3E%3C/svg%3E\");\n mask-position: center;\n mask-repeat: no-repeat;\n mask-size: contain;\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='m18.75 36-2.15-2.15 9.9-9.9-9.9-9.9 2.15-2.15L30.8 23.95Z'/%3E%3C/svg%3E\");\n -webkit-mask-position: center;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: contain;\n transform: rotate(0deg);\n transition: transform .25s;\n height: 1.5em;\n width: 1.5em;\n}\ndetails[open].admonition > .admonition-title:after {\n transform: rotate(90deg);\n}\n.admonition > .admonition-body {\n font-size: .98em;\n margin: 8px 10px;\n}\n.admonition p {\n line-height: 1.35;\n}\n\n<<styleAdmonition note note e85d>>\n\n<<styleAdmonition info note e88e>>\n\n<<styleAdmonition todo note e834>>\n\n<<styleAdmonition see-also see-also e250>>\n\n<<styleAdmonition important important e645>>\n\n<<styleAdmonition success success e876>>\n\n<<styleAdmonition tip success e0f0>>\n\n<<styleAdmonition question success e887>>\n\n<<styleAdmonition warning warning e002>>\n\n<<styleAdmonition caution warning e002>>\n\n<<styleAdmonition danger danger e3e7>>\n\n<<styleAdmonition fail danger e14c>>\n\n<<styleAdmonition error danger e5c9>>\n\n<<styleAdmonition bug danger e868>>\n\n<<styleAdmonition example example f1c3>>\n\n<<styleAdmonition snippet example f1c3>>\n\n<<styleAdmonition summary example e241>>\n\n<<styleAdmonition abstract example e8d2>>\n\n<<styleAdmonition quote quote e244>>\n\n<<styleAdmonition cite quote e244>>\n\n<$reveal stateTitle=\"$:/config/markdown/admonition/style\" type=\"match\" text=\"pastel\" default=\"classic\">\n.admonition > .admonition-title {\n background-color: rgba(0,0,0,0) !important;\n padding-top: .5em;\n padding-bottom: 0px;\n margin-bottom: .5em;\n font-size: .9em;\n border: none;\n}\n.admonition > .admonition-body {\n font-size: .96em;\n}\n\n<<styleAdmonitionCompact \"note\" \"note\">>\n\n<<styleAdmonitionCompact info note>>\n\n<<styleAdmonitionCompact todo note>>\n\n<<styleAdmonitionCompact see-also see-also>>\n\n<<styleAdmonitionCompact important important>>\n\n<<styleAdmonitionCompact success success>>\n\n<<styleAdmonitionCompact tip success>>\n\n<<styleAdmonitionCompact question success>>\n\n<<styleAdmonitionCompact warning warning>>\n\n<<styleAdmonitionCompact caution warning>>\n\n<<styleAdmonitionCompact danger danger>>\n\n<<styleAdmonitionCompact fail danger>>\n\n<<styleAdmonitionCompact error danger>>\n\n<<styleAdmonitionCompact bug danger>>\n\n<<styleAdmonitionCompact example example>>\n\n<<styleAdmonitionCompact snippet example>>\n\n<<styleAdmonitionCompact summary example>>\n\n<<styleAdmonitionCompact abstract example>>\n\n<<styleAdmonitionCompact quote quote>>\n\n<<styleAdmonitionCompact cite quote>>\n</$reveal>\n\n/*** Checklist ***/\n\n.markdown .checklist-item {\n list-style-type: none;\n}\n.markdown .checklist-item-checkbox {\n margin: 0 .3em .25em -1.2em;\n vertical-align: middle;\n cursor: pointer;\n}\n\n/*** TOC ***/\n\nh1 img, h2 img, h3 img, h4 img, h5 img, h6 img, .toc-item img {\n width: 1.2em;\n height: 1.2em;\n}\ndiv.md-container {\n width: 100%;\n display: block\n}\ndiv.md-aside {\n font-size: 0.9em;\n}\n\n/* LANDSCAPE */\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n div.md-container {\n display: flex;\n flex-flow: row no-wrap;\n }\n div.md-main {\n flex-grow: 1;\n flex-basis: 0;\n flex-shrink: 1;\n width: 78%;\n order: 1;\n }\n div.md-aside {\n flex-grow: 0;\n flex-shrink: 1;\n width: 22%;\n order: 2;\n }\n .md-aside nav {\n position: sticky;\n top: {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[110px]else[60px]] }}};\n max-height: calc(100vh - {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[110px]else[60px]] }}});\n overflow-y: auto;\n margin-left: 1em;\n }\n}\n\n<$reveal stateTitle=\"$:/config/markdown/toc/portrait\" type=\"match\" text=\"hide\">\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n .md-aside {\n display: none;\n }\n}\n</$reveal>\n\n/* PRINT */\n@media print {\n div.md-aside {\n display: none;\n }\n}\n\n/* TOC list style */\n.md-aside nav ol.tc-toc {\n list-style-type: none;\n padding-left: 1.25em;\n}\n.md-aside nav > ol.tc-toc {\n padding-left: 0px;\n}\n.md-aside nav > ol > li:first-child {\n margin-top: 0;\n}\n.md-aside .toc-item {\n line-height: 1.2;\n margin-bottom: .75em;\n margin-top: .75em;\n}\n<$reveal stateTitle=\"$:/config/markdown/toc/depth\" type=\"match\" text=\"2\">\n.md-aside .toc-level3 {\n display: none;\n}\n</$reveal>\n<$reveal stateTitle=\"$:/config/markdown/toc/depth\" type=\"match\" text=\"1\">\n.md-aside .toc-level2 {\n display: none;\n}\n</$reveal>\n.markdown .anchor-item:target {\n animation: highlight 2s ease;\n\tscroll-margin-top: {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[120px]else[60px]] }}};\n}\n@keyframes highlight {\n from { background: <<colour message-background>>; }\n to { background: transparent; }\n}\n"},"$:/plugins/cdr/markdown-more/syntax":{"title":"$:/plugins/cdr/markdown-more/syntax","text":"!! Checklist\n\n```markdown\n- [ ] Task 1\n- [x] Task 2\n```\n\nThis plugin provides simple interactive checklists. Clicking on the checkboxes will alter the underlying Markdown text. To minimize unintended changes, transcluded checklists will be read-only. Care must also be taken when mixing <$text text=\"WikiText\"/> and the markdown text. For example, if you enter the following:\n\n```\n<$list filter=\"apple bat candle\" variable=\"item\">\n\n- [ ] <<item>>\n\n</$list>\n```\n\nAll of the rendered checkboxes in the above example will be linked to one toggle state. Clicking on any one of them will cause all of boxes to be updated.\n\n!! Admonitions\n\nCreate special content blocks with the admonition syntax:\n\n```markdown\n::::note Optional title can be specified after the category name\nInformation the user should notice.\n\n:::summary\nAdmonition blocks can be nested.\n:::\n\n::::\n```\n\nYou can create collapsible containers by appending `+` (to initially expand) or `-` after the category name.\n\n```\n:::note+\nCollapsible content\n:::\n```\n\nAvailable categories are:\n\n* note, info, todo\n* important\n* tip, success, question\n* warning, caution\n* fail, danger, error, bug\n* example, snippet, abstract, summary\n* quote, cite\n* see-also\n\n<div class=\"markdown\">\n<div class=\"admonition note\"><div class=\"admonition-title\">NOTE</div></div>\n<div class=\"admonition info\"><div class=\"admonition-title\">INFO</div></div>\n<div class=\"admonition todo\"><div class=\"admonition-title\">TODO</div></div>\n<div class=\"admonition important\"><div class=\"admonition-title\">IMPORTANT</div></div>\n<div class=\"admonition tip\"><div class=\"admonition-title\">TIP</div></div>\n<div class=\"admonition success\"><div class=\"admonition-title\">SUCCESS</div></div>\n<div class=\"admonition question\"><div class=\"admonition-title\">QUESTION</div></div>\n<div class=\"admonition warning\"><div class=\"admonition-title\">WARNING / CAUTION</div></div>\n<div class=\"admonition fail\"><div class=\"admonition-title\">FAIL</div></div>\n<div class=\"admonition danger\"><div class=\"admonition-title\">DANGER</div></div>\n<div class=\"admonition error\"><div class=\"admonition-title\">ERROR</div></div>\n<div class=\"admonition bug\"><div class=\"admonition-title\">BUG</div></div>\n<div class=\"admonition example\"><div class=\"admonition-title\">EXAMPLE / SNIPPET</div></div>\n<div class=\"admonition abstract\"><div class=\"admonition-title\">ABSTRACT</div></div>\n<div class=\"admonition summary\"><div class=\"admonition-title\">SUMMARY</div></div>\n<div class=\"admonition quote\"><div class=\"admonition-title\">QUOTE / CITE</div></div>\n<div class=\"admonition see-also\"><div class=\"admonition-title\">SEE ALSO</div></div>\n</div>"}}} \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/cdr/markdown-more.json.meta b/tiddlers/TCTSystem/plugins/cdr/markdown-more.json.meta new file mode 100644 index 00000000..4465cb46 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/cdr/markdown-more.json.meta @@ -0,0 +1,11 @@ +author: cdruan +core-version: >=5.2.6 +dependents: +description: Extends the official Markdown plugin +list: readme syntax +name: MarkdownMore +parent-plugin: $:/plugins/tiddlywiki/markdown +plugin-type: plugin +title: $:/plugins/cdr/markdown-more +type: application/json +version: 0.1.0 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json b/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json new file mode 100644 index 00000000..30851037 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json @@ -0,0 +1 @@ +{"tiddlers":{"$:/plugins/oeyoews/markdown-kit/icon":{"title":"$:/plugins/oeyoews/markdown-kit/icon","text":"<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<g clip-path=\"url(#clip0_1_6)\">\r\n<path d=\"M18.375 0H5.625C2.5184 0 0 2.5184 0 5.625V18.375C0 21.4816 2.5184 24 5.625 24H18.375C21.4816 24 24 21.4816 24 18.375V5.625C24 2.5184 21.4816 0 18.375 0Z\" fill=\"#F4F2ED\"/>\r\n<path d=\"M19.5077 16.8005L12.3216 20.8653V17.6993L16.7989 15.2364L19.5077 16.8005ZM19.9992 16.3553V7.85438L17.3695 9.372V14.8359L19.9992 16.3553ZM4.50469 16.8005L11.6908 20.8653V17.6993L7.21341 15.2364L4.50469 16.8005ZM4.01316 16.3553V7.85438L6.64284 9.372V14.8359L4.01316 16.3553ZM4.32075 7.30435L11.6908 3.13472V6.19575L6.96938 8.79281L6.93328 8.81344L4.32075 7.30435ZM19.6915 7.30435L12.3216 3.13472V6.19575L17.043 8.79281L17.0791 8.81344L19.6915 7.30435Z\" fill=\"#8ED6FB\"/>\r\n<path d=\"M11.6908 16.9792L7.27359 14.5506V9.73809L11.6908 12.2887V16.9792ZM12.3216 16.9792L16.7388 14.5506V9.73809L12.3216 12.2887V16.9792ZM7.57266 9.18122L12.007 6.74231L16.4414 9.18122L12.007 11.7422L7.57266 9.18122Z\" fill=\"#1C78C0\"/>\r\n<g filter=\"url(#filter0_d_1_6)\">\r\n<path d=\"M2.5 16.2985V7.70151L6.7985 16.2985L11.0975 7.70151V16.2985M13.166 14.421V16.299H21.5V14.421\" stroke=\"#1E1E1E\" stroke-width=\"0.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n<path d=\"M14.132 11.631L17.199 14.689L20.445 11.631H18.603V8.1795H15.795V11.631H14.132Z\" stroke=\"#1E1E1E\" stroke-width=\"0.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</g>\r\n</g>\r\n<defs>\r\n<filter id=\"filter0_d_1_6\" x=\"-4\" y=\"0\" width=\"32\" height=\"32\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n<feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n<feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n<feOffset dy=\"4\"/>\r\n<feGaussianBlur stdDeviation=\"2\"/>\r\n<feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n<feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n<feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1_6\"/>\r\n<feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1_6\" result=\"shape\"/>\r\n</filter>\r\n<clipPath id=\"clip0_1_6\">\r\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\r\n</clipPath>\r\n</defs>\r\n</svg>\r\n","type":"image/svg+xml"},"$:/plugins/oeyoews/markdown-kit/readme":{"title":"$:/plugins/oeyoews/markdown-kit/readme","text":"<h2 id=\"markdown-kit\">Markdown Kit</h2>\r\n<blockquote>\r\n<p>A collection of extensions for Markdown</p>\r\n</blockquote>\r\n<h2 id=\"note\">NOTE</h2>\r\n<ul>\r\n<li>目前markdown有一个比较严重的错误, 但是可以规避 <a href=\"https://github.com/Jermolene/TiddlyWiki5/issues/7782\">github issue</a></li>\r\n<li>不要拖拽此插件, 否则插件依赖不会安装, 请使用 <a href=\"https://tw-cpl.netlify.app/#Welcome:Index%20Welcome\">CPL</a> 安装</li>\r\n<li><p>codemirror-mode-markdown依赖插件mode-xml</p>\r\n<h2 id=\"todo\">TODO</h2>\r\n</li>\r\n<li><p>给重写的配置加上一个用户开关配置,默认开启</p>\r\n</li>\r\n<li>测试依赖</li>\r\n<li>将markdown kit 的readme借助工具(比如pandoc)转换成html(假设用户没有安装markdowns所以简介只用用html写)<ul>\r\n<li><a href=\"https://markdowntohtml.com/\">https://markdowntohtml.com/</a></li>\r\n</ul>\r\n</li>\r\n</ul>\r\n\r\n<!--\r\n ## Markdown Kit\r\n\r\n> A collection of extensions for Markdown\r\n\r\n## NOTE\r\n\r\n- 目前markdown有一个比较严重的错误, 但是可以规避 [github issue](https://github.com/Jermolene/TiddlyWiki5/issues/7782)\r\n- 不要拖拽此插件, 否则插件依赖不会安装, 请使用 [CPL](https://tw-cpl.netlify.app/#Welcome:Index%20Welcome) 安装\r\n- codemirror-mode-markdown依赖插件mode-xml\r\n## TODO\r\n\r\n- 给重写的配置加上一个用户开关配置,默认开启\r\n- 测试依赖\r\n- 将markdown kit 的readme借助工具(比如pandoc)转换成html(假设用户没有安装markdowns所以简介只用用html写)\r\n - https://markdowntohtml.com/\r\n-->\r\n","type":"text/markdown","caption":"Markdown Kit","description":"Markdown Kit"},"$:/core/ui/Actions/new-journal":{"title":"$:/core/ui/Actions/new-journal","description":"create a new journal tiddler","tags":"$:/tags/Actions","text":"\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\r\n\\whitespace trim\r\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\r\n<$wikify name=\"journalTitle\" text=\"<$macrocall $name='now' format=<<journalTitleTemplate>>/>\">\r\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\r\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/markdown\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\r\n</$reveal>\r\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\r\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/markdown\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\r\n</$reveal>\r\n</$wikify>\r\n</$vars>\r\n"},"$:/core/ui/Actions/new-tiddler":{"title":"$:/core/ui/Actions/new-tiddler","tags":"$:/tags/Actions","description":"create a new empty tiddler","text":"\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\r\n\\whitespace trim\r\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\r\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>> type=\"text/markdown\" />\r\n</$vars>"}}} \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json.meta b/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json.meta new file mode 100644 index 00000000..95d63521 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/oeyoews/markdown-kit.json.meta @@ -0,0 +1,9 @@ +author: oeyoews +dependents: $:/plugins/tiddlywiki/markdown $:/plugins/tiddlywiki/codemirror $:/plugins/tiddlywiki/katex $:/plugins/tiddlywiki/codemirror-mode-markdown $:/plugins/tiddlywiki/codemirror-mode-xml $:/plugins/whitefall/obsidian-vault $:/plugins/cdaven/markdown-export $:/plugins/cdr/markdown-more +description: Markdown Kit +list: readme +name: Markdown Kit +plugin-type: plugin +title: $:/plugins/oeyoews/markdown-kit +type: application/json +version: 0.0.5 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json b/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json new file mode 100644 index 00000000..f5f870d6 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json @@ -0,0 +1 @@ +{"tiddlers":{"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold","list-after":"$:/core/ui/EditorToolbar/bold","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/bold","caption":"{{$:/language/Buttons/Bold/Caption}} (Markdown)","description":"{{$:/language/Buttons/Bold/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((bold))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1","list-after":"$:/core/ui/EditorToolbar/heading-1","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-1","caption":"{{$:/language/Buttons/Heading1/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading1/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-1))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2","list-after":"$:/core/ui/EditorToolbar/heading-2","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-2","caption":"{{$:/language/Buttons/Heading2/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading2/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-2))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3","list-after":"$:/core/ui/EditorToolbar/heading-3","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-3","caption":"{{$:/language/Buttons/Heading3/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading3/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-3))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4","list-after":"$:/core/ui/EditorToolbar/heading-4","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-4","caption":"{{$:/language/Buttons/Heading4/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading4/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-4))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5","list-after":"$:/core/ui/EditorToolbar/heading-5","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-5","caption":"{{$:/language/Buttons/Heading5/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading5/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-5))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6","list-after":"$:/core/ui/EditorToolbar/heading-6","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-6","caption":"{{$:/language/Buttons/Heading6/Caption}} (Markdown)","description":"{{$:/language/Buttons/Heading6/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((heading-6))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic","list-after":"$:/core/ui/EditorToolbar/italic","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/italic","caption":"{{$:/language/Buttons/Italic/Caption}} (Markdown)","description":"{{$:/language/Buttons/Italic/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((italic))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown","text":"\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n\\whitespace trim\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-markdown-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"<<cancel-search-actions-inner>>\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"focus-editor\"/></$list>\n\n\\define external-link()\n\\whitespace trim\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"<$action-setfield $tiddler='$:/state/search/currentTab' text=<<nextTab>>/>\"/>\n\n\\define body(config-title)\n\\whitespace trim\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>>\n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\"\n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n \n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n \n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/link":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/link","list-after":"$:/core/ui/EditorToolbar/link","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/link","caption":"{{$:/language/Buttons/Link/Caption}}","description":"{{$:/language/Buttons/Link/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((link))","dropdown":"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown","text":""},"$:/plugins/tiddlywiki/markdown/EditorToolbar/linkify":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/linkify","caption":"{{$:/language/Buttons/Linkify/Caption}} (Markdown)","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","description":"{{$:/language/Buttons/Linkify/Hint}}","icon":"$:/plugins/tiddlywiki/markdown/images/markdown-linkify","list-after":"$:/core/ui/EditorToolbar/linkify","shortcuts":"((linkify))","tags":"$:/tags/EditorToolbar","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[\"\n\tsuffix=\"]()\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet","list-after":"$:/core/ui/EditorToolbar/list-bullet","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/list-bullet","caption":"{{$:/language/Buttons/ListBullet/Caption}} (Markdown)","description":"{{$:/language/Buttons/ListBullet/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((list-bullet))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number","list-after":"$:/core/ui/EditorToolbar/list-number","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/list-number","caption":"{{$:/language/Buttons/ListNumber/Caption}} (Markdown)","description":"{{$:/language/Buttons/ListNumber/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((list-number))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-block":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-block","list-after":"$:/core/ui/EditorToolbar/mono-block","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/mono-block","caption":"{{$:/language/Buttons/MonoBlock/Caption}} (Markdown)","description":"{{$:/language/Buttons/MonoBlock/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((mono-block))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line","list-after":"$:/core/ui/EditorToolbar/mono-line","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/mono-line","caption":"{{$:/language/Buttons/MonoLine/Caption}} (Markdown)","description":"{{$:/language/Buttons/MonoLine/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((mono-line))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote":{"title":"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote","list-after":"$:/core/ui/EditorToolbar/quote","tags":"$:/tags/EditorToolbar","icon":"$:/core/images/quote","caption":"{{$:/language/Buttons/Quote/Caption}} (Markdown)","description":"{{$:/language/Buttons/Quote/Hint}}","condition":"[<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]]","shortcuts":"((quote))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"},"$:/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler":{"title":"$:/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler","tags":"$:/tags/KeyboardShortcut","key":"((new-markdown-tiddler))","text":"\\whitespace trim\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/markdown\"/>\n</$navigator>\n"},"$:/config/ShortcutInfo/new-markdown-tiddler":{"title":"$:/config/ShortcutInfo/new-markdown-tiddler","text":"{{$:/language/Buttons/NewMarkdown/Hint}}"},"$:/config/shortcuts-mac/new-markdown-tiddler":{"title":"$:/config/shortcuts-mac/new-markdown-tiddler","text":"ctrl-M"},"$:/config/shortcuts-not-mac/new-markdown-tiddler":{"title":"$:/config/shortcuts-not-mac/new-markdown-tiddler","text":"alt-M"},"$:/config/markdown/breaks":{"title":"$:/config/markdown/breaks","text":"false"},"$:/config/markdown/linkify":{"title":"$:/config/markdown/linkify","text":"false"},"$:/config/markdown/quotes":{"title":"$:/config/markdown/quotes","text":"“”‘’"},"$:/config/markdown/renderWikiText":{"title":"$:/config/markdown/renderWikiText","text":"true"},"$:/config/markdown/renderWikiTextPragma":{"title":"$:/config/markdown/renderWikiTextPragma","text":"\\rules only html entity syslink prettylink image prettyextlink wikilink commentblock commentinline macrocallblock macrocallinline transcludeblock transcludeinline filteredtranscludeblock filteredtranscludeinline"},"$:/config/markdown/typographer":{"title":"$:/config/markdown/typographer","text":"false"},"$:/plugins/tiddlywiki/markdown/config":{"title":"$:/plugins/tiddlywiki/markdown/config","text":"! Plugin Configuration\n\n|!Config |!Default |!Description |\n|[[breaks|$:/config/markdown/breaks]]|`false`|markdown-it library config: Convert '\\n' in paragraphs into `<br>` |\n|[[linkify|$:/config/markdown/linkify]]|`false`|markdown-it library config: Autoconvert URL-like text to links |\n|[[renderWikiText|$:/config/markdown/renderWikiText]]|`true`|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\n|[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]|<code><$view tiddler=\"$:/plugins/tiddlywiki/markdown\" subtiddler=\"$:/config/markdown/renderWikiTextPragma\" mode=\"inline\"/></code>|When handing off to the ~WikiText parser, what parser rules should it follow? |\n|[[typographer|$:/config/markdown/typographer]]|`false`|markdown-it library config: Enable some language-neutral replacement + quotes beautification |\n|[[quotes|$:/config/markdown/quotes]]|`“”‘’`|markdown-it library config: Double + single quotes replacement pairs, when `typographer` is enabled |\n\n''IMPORTANT:'' You must reload your wiki for changes to take effect.\n\n<h2 style=\"margin-top:1.5em\">~WikiText Pragma</h2>\n\nThe value of [[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]] has been carefully tuned to properly integrate markdown with ~TiddlyWiki. Changing this setting may produce unexpected results, but the inclusion of the following parser rules should be fine:\n\n; image\n: embed images using ~TiddlyWiki's image syntax:\n\n<p style=\"margin-left:1em\">\n\n```\n[img[An explanatory tooltip|TiddlerTitle]]\n\n[img width=23 class=\"tc-image\" [https://tiddlywiki.com/fractalveg.jpg]]\n```\n</p>\n\n; prettylink\n: create links the ~TiddlyWiki way:\n\n<p style=\"margin-left:1em\">\n\n```\n[[TiddlerTitle]]\n\n[[Displayed Link Title|Tiddler Title]]\n\n[[TW5|https://tiddlywiki.com/]]\n```\n</p>\n\n; prettyextlink\n: create external links using the following syntax:\n\n<p style=\"margin-left:1em\">\n\n```\n[ext[Open file|index.html]]\n\n[ext[Open file|../README.md]]\n```\n</p>\n\n; wikilink\n: auto-link ~CamelCase titles\n\n; syslink\n: auto-link system tiddlers\n\n<h2 style=\"margin-top:1.5em\">Typographical Replacements</h2>\n\nWhen [[typographer|$:/config/markdown/typographer]] is enabled, markdown-it will provide these typographical replacements:\n\n```\n(c) (C) → ©\n(tm) (TM) → ™\n(r) (R) → ®\n+- → ±\n... → …\n?.... → ?..\n!.... → !..\n????? → ???\n!!!!! → !!!\n,, → ,\n-- → –\n--- → —\n```"},"$:/language/Docs/Types/text/markdown":{"title":"$:/language/Docs/Types/text/markdown","description":"Markdown","name":"text/markdown","group":"Text"},"$:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js":{"title":"$:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js","text":"/*\\\ntitle: $:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a markdown link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-markdown-link\"] = function(event,operation) {\n\tvar rx = /[()\\\\]/g, rs = '\\\\$&';\n\n\tif(operation.selection) {\n\t\tvar desc = operation.selection.replace(/[\\[\\]\\\\]/g, rs);\n\n\t\tif(event.paramObject.text.indexOf(\"://\") !== -1) {\n\t\t\toperation.replacement = \"[\" + desc + \"](\" + event.paramObject.text.replace(rx, rs) + \")\";\n\t\t} else {\n\t\t\toperation.replacement = \"[\" + desc + \"](#\" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + \")\";\n\t\t}\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\tif(event.paramObject.text.indexOf(\"://\") !== -1) {\n\t\t\toperation.replacement = \"<\" + event.paramObject.text.replace(/[<>]/g, function(m, offset, str) {\n\t\t\t\treturn encodeURI(m);\n\t\t\t}) + \">\";\n\t\t} else {\n\t\t\toperation.replacement = \"[](#\" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + \")\";\n\t\t}\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n","type":"application/javascript","module-type":"texteditoroperation"},"$:/plugins/tiddlywiki/markdown/markdown-it.js":{"text":"/*! markdown-it 13.0.1 https://github.com/markdown-it/markdown-it @license MIT */\n!function(e,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).markdownit=r()}(this,(function(){\"use strict\";function e(e){if(e.__esModule)return e;var r=Object.defineProperty({},\"__esModule\",{value:!0});return Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var r={Aacute:\"\\xc1\",aacute:\"\\xe1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223e\",acd:\"\\u223f\",acE:\"\\u223e\\u0333\",Acirc:\"\\xc2\",acirc:\"\\xe2\",acute:\"\\xb4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xc6\",aelig:\"\\xe6\",af:\"\\u2061\",Afr:\"\\ud835\\udd04\",afr:\"\\ud835\\udd1e\",Agrave:\"\\xc0\",agrave:\"\\xe0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03b1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2a3f\",amp:\"&\",AMP:\"&\",andand:\"\\u2a55\",And:\"\\u2a53\",and:\"\\u2227\",andd:\"\\u2a5c\",andslope:\"\\u2a58\",andv:\"\\u2a5a\",ang:\"\\u2220\",ange:\"\\u29a4\",angle:\"\\u2220\",angmsdaa:\"\\u29a8\",angmsdab:\"\\u29a9\",angmsdac:\"\\u29aa\",angmsdad:\"\\u29ab\",angmsdae:\"\\u29ac\",angmsdaf:\"\\u29ad\",angmsdag:\"\\u29ae\",angmsdah:\"\\u29af\",angmsd:\"\\u2221\",angrt:\"\\u221f\",angrtvb:\"\\u22be\",angrtvbd:\"\\u299d\",angsph:\"\\u2222\",angst:\"\\xc5\",angzarr:\"\\u237c\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\ud835\\udd38\",aopf:\"\\ud835\\udd52\",apacir:\"\\u2a6f\",ap:\"\\u2248\",apE:\"\\u2a70\",ape:\"\\u224a\",apid:\"\\u224b\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224a\",Aring:\"\\xc5\",aring:\"\\xe5\",Ascr:\"\\ud835\\udc9c\",ascr:\"\\ud835\\udcb6\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224d\",Atilde:\"\\xc3\",atilde:\"\\xe3\",Auml:\"\\xc4\",auml:\"\\xe4\",awconint:\"\\u2233\",awint:\"\\u2a11\",backcong:\"\\u224c\",backepsilon:\"\\u03f6\",backprime:\"\\u2035\",backsim:\"\\u223d\",backsimeq:\"\\u22cd\",Backslash:\"\\u2216\",Barv:\"\\u2ae7\",barvee:\"\\u22bd\",barwed:\"\\u2305\",Barwed:\"\\u2306\",barwedge:\"\\u2305\",bbrk:\"\\u23b5\",bbrktbrk:\"\\u23b6\",bcong:\"\\u224c\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201e\",becaus:\"\\u2235\",because:\"\\u2235\",Because:\"\\u2235\",bemptyv:\"\\u29b0\",bepsi:\"\\u03f6\",bernou:\"\\u212c\",Bernoullis:\"\\u212c\",Beta:\"\\u0392\",beta:\"\\u03b2\",beth:\"\\u2136\",between:\"\\u226c\",Bfr:\"\\ud835\\udd05\",bfr:\"\\ud835\\udd1f\",bigcap:\"\\u22c2\",bigcirc:\"\\u25ef\",bigcup:\"\\u22c3\",bigodot:\"\\u2a00\",bigoplus:\"\\u2a01\",bigotimes:\"\\u2a02\",bigsqcup:\"\\u2a06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25bd\",bigtriangleup:\"\\u25b3\",biguplus:\"\\u2a04\",bigvee:\"\\u22c1\",bigwedge:\"\\u22c0\",bkarow:\"\\u290d\",blacklozenge:\"\\u29eb\",blacksquare:\"\\u25aa\",blacktriangle:\"\\u25b4\",blacktriangledown:\"\\u25be\",blacktriangleleft:\"\\u25c2\",blacktriangleright:\"\\u25b8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20e5\",bnequiv:\"\\u2261\\u20e5\",bNot:\"\\u2aed\",bnot:\"\\u2310\",Bopf:\"\\ud835\\udd39\",bopf:\"\\ud835\\udd53\",bot:\"\\u22a5\",bottom:\"\\u22a5\",bowtie:\"\\u22c8\",boxbox:\"\\u29c9\",boxdl:\"\\u2510\",boxdL:\"\\u2555\",boxDl:\"\\u2556\",boxDL:\"\\u2557\",boxdr:\"\\u250c\",boxdR:\"\\u2552\",boxDr:\"\\u2553\",boxDR:\"\\u2554\",boxh:\"\\u2500\",boxH:\"\\u2550\",boxhd:\"\\u252c\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxHD:\"\\u2566\",boxhu:\"\\u2534\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxHU:\"\\u2569\",boxminus:\"\\u229f\",boxplus:\"\\u229e\",boxtimes:\"\\u22a0\",boxul:\"\\u2518\",boxuL:\"\\u255b\",boxUl:\"\\u255c\",boxUL:\"\\u255d\",boxur:\"\\u2514\",boxuR:\"\\u2558\",boxUr:\"\\u2559\",boxUR:\"\\u255a\",boxv:\"\\u2502\",boxV:\"\\u2551\",boxvh:\"\\u253c\",boxvH:\"\\u256a\",boxVh:\"\\u256b\",boxVH:\"\\u256c\",boxvl:\"\\u2524\",boxvL:\"\\u2561\",boxVl:\"\\u2562\",boxVL:\"\\u2563\",boxvr:\"\\u251c\",boxvR:\"\\u255e\",boxVr:\"\\u255f\",boxVR:\"\\u2560\",bprime:\"\\u2035\",breve:\"\\u02d8\",Breve:\"\\u02d8\",brvbar:\"\\xa6\",bscr:\"\\ud835\\udcb7\",Bscr:\"\\u212c\",bsemi:\"\\u204f\",bsim:\"\\u223d\",bsime:\"\\u22cd\",bsolb:\"\\u29c5\",bsol:\"\\\\\",bsolhsub:\"\\u27c8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224e\",bumpE:\"\\u2aae\",bumpe:\"\\u224f\",Bumpeq:\"\\u224e\",bumpeq:\"\\u224f\",Cacute:\"\\u0106\",cacute:\"\\u0107\",capand:\"\\u2a44\",capbrcup:\"\\u2a49\",capcap:\"\\u2a4b\",cap:\"\\u2229\",Cap:\"\\u22d2\",capcup:\"\\u2a47\",capdot:\"\\u2a40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\ufe00\",caret:\"\\u2041\",caron:\"\\u02c7\",Cayleys:\"\\u212d\",ccaps:\"\\u2a4d\",Ccaron:\"\\u010c\",ccaron:\"\\u010d\",Ccedil:\"\\xc7\",ccedil:\"\\xe7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2a4c\",ccupssm:\"\\u2a50\",Cdot:\"\\u010a\",cdot:\"\\u010b\",cedil:\"\\xb8\",Cedilla:\"\\xb8\",cemptyv:\"\\u29b2\",cent:\"\\xa2\",centerdot:\"\\xb7\",CenterDot:\"\\xb7\",cfr:\"\\ud835\\udd20\",Cfr:\"\\u212d\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03a7\",chi:\"\\u03c7\",circ:\"\\u02c6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21ba\",circlearrowright:\"\\u21bb\",circledast:\"\\u229b\",circledcirc:\"\\u229a\",circleddash:\"\\u229d\",CircleDot:\"\\u2299\",circledR:\"\\xae\",circledS:\"\\u24c8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cir:\"\\u25cb\",cirE:\"\\u29c3\",cire:\"\\u2257\",cirfnint:\"\\u2a10\",cirmid:\"\\u2aef\",cirscir:\"\\u29c2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201d\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",Colon:\"\\u2237\",Colone:\"\\u2a74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2a6d\",Congruent:\"\\u2261\",conint:\"\\u222e\",Conint:\"\\u222f\",ContourIntegral:\"\\u222e\",copf:\"\\ud835\\udd54\",Copf:\"\\u2102\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",copy:\"\\xa9\",COPY:\"\\xa9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21b5\",cross:\"\\u2717\",Cross:\"\\u2a2f\",Cscr:\"\\ud835\\udc9e\",cscr:\"\\ud835\\udcb8\",csub:\"\\u2acf\",csube:\"\\u2ad1\",csup:\"\\u2ad0\",csupe:\"\\u2ad2\",ctdot:\"\\u22ef\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22de\",cuesc:\"\\u22df\",cularr:\"\\u21b6\",cularrp:\"\\u293d\",cupbrcap:\"\\u2a48\",cupcap:\"\\u2a46\",CupCap:\"\\u224d\",cup:\"\\u222a\",Cup:\"\\u22d3\",cupcup:\"\\u2a4a\",cupdot:\"\\u228d\",cupor:\"\\u2a45\",cups:\"\\u222a\\ufe00\",curarr:\"\\u21b7\",curarrm:\"\\u293c\",curlyeqprec:\"\\u22de\",curlyeqsucc:\"\\u22df\",curlyvee:\"\\u22ce\",curlywedge:\"\\u22cf\",curren:\"\\xa4\",curvearrowleft:\"\\u21b6\",curvearrowright:\"\\u21b7\",cuvee:\"\\u22ce\",cuwed:\"\\u22cf\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232d\",dagger:\"\\u2020\",Dagger:\"\\u2021\",daleth:\"\\u2138\",darr:\"\\u2193\",Darr:\"\\u21a1\",dArr:\"\\u21d3\",dash:\"\\u2010\",Dashv:\"\\u2ae4\",dashv:\"\\u22a3\",dbkarow:\"\\u290f\",dblac:\"\\u02dd\",Dcaron:\"\\u010e\",dcaron:\"\\u010f\",Dcy:\"\\u0414\",dcy:\"\\u0434\",ddagger:\"\\u2021\",ddarr:\"\\u21ca\",DD:\"\\u2145\",dd:\"\\u2146\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2a77\",deg:\"\\xb0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03b4\",demptyv:\"\\u29b1\",dfisht:\"\\u297f\",Dfr:\"\\ud835\\udd07\",dfr:\"\\ud835\\udd21\",dHar:\"\\u2965\",dharl:\"\\u21c3\",dharr:\"\\u21c2\",DiacriticalAcute:\"\\xb4\",DiacriticalDot:\"\\u02d9\",DiacriticalDoubleAcute:\"\\u02dd\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02dc\",diam:\"\\u22c4\",diamond:\"\\u22c4\",Diamond:\"\\u22c4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xa8\",DifferentialD:\"\\u2146\",digamma:\"\\u03dd\",disin:\"\\u22f2\",div:\"\\xf7\",divide:\"\\xf7\",divideontimes:\"\\u22c7\",divonx:\"\\u22c7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231e\",dlcrop:\"\\u230d\",dollar:\"$\",Dopf:\"\\ud835\\udd3b\",dopf:\"\\ud835\\udd55\",Dot:\"\\xa8\",dot:\"\\u02d9\",DotDot:\"\\u20dc\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22a1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222f\",DoubleDot:\"\\xa8\",DoubleDownArrow:\"\\u21d3\",DoubleLeftArrow:\"\\u21d0\",DoubleLeftRightArrow:\"\\u21d4\",DoubleLeftTee:\"\\u2ae4\",DoubleLongLeftArrow:\"\\u27f8\",DoubleLongLeftRightArrow:\"\\u27fa\",DoubleLongRightArrow:\"\\u27f9\",DoubleRightArrow:\"\\u21d2\",DoubleRightTee:\"\\u22a8\",DoubleUpArrow:\"\\u21d1\",DoubleUpDownArrow:\"\\u21d5\",DoubleVerticalBar:\"\\u2225\",DownArrowBar:\"\\u2913\",downarrow:\"\\u2193\",DownArrow:\"\\u2193\",Downarrow:\"\\u21d3\",DownArrowUpArrow:\"\\u21f5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21ca\",downharpoonleft:\"\\u21c3\",downharpoonright:\"\\u21c2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295e\",DownLeftVectorBar:\"\\u2956\",DownLeftVector:\"\\u21bd\",DownRightTeeVector:\"\\u295f\",DownRightVectorBar:\"\\u2957\",DownRightVector:\"\\u21c1\",DownTeeArrow:\"\\u21a7\",DownTee:\"\\u22a4\",drbkarow:\"\\u2910\",drcorn:\"\\u231f\",drcrop:\"\\u230c\",Dscr:\"\\ud835\\udc9f\",dscr:\"\\ud835\\udcb9\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29f6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22f1\",dtri:\"\\u25bf\",dtrif:\"\\u25be\",duarr:\"\\u21f5\",duhar:\"\\u296f\",dwangle:\"\\u29a6\",DZcy:\"\\u040f\",dzcy:\"\\u045f\",dzigrarr:\"\\u27ff\",Eacute:\"\\xc9\",eacute:\"\\xe9\",easter:\"\\u2a6e\",Ecaron:\"\\u011a\",ecaron:\"\\u011b\",Ecirc:\"\\xca\",ecirc:\"\\xea\",ecir:\"\\u2256\",ecolon:\"\\u2255\",Ecy:\"\\u042d\",ecy:\"\\u044d\",eDDot:\"\\u2a77\",Edot:\"\\u0116\",edot:\"\\u0117\",eDot:\"\\u2251\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\ud835\\udd08\",efr:\"\\ud835\\udd22\",eg:\"\\u2a9a\",Egrave:\"\\xc8\",egrave:\"\\xe8\",egs:\"\\u2a96\",egsdot:\"\\u2a98\",el:\"\\u2a99\",Element:\"\\u2208\",elinters:\"\\u23e7\",ell:\"\\u2113\",els:\"\\u2a95\",elsdot:\"\\u2a97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25fb\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25ab\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",ENG:\"\\u014a\",eng:\"\\u014b\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\ud835\\udd3c\",eopf:\"\\ud835\\udd56\",epar:\"\\u22d5\",eparsl:\"\\u29e3\",eplus:\"\\u2a71\",epsi:\"\\u03b5\",Epsilon:\"\\u0395\",epsilon:\"\\u03b5\",epsiv:\"\\u03f5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2a96\",eqslantless:\"\\u2a95\",Equal:\"\\u2a75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225f\",Equilibrium:\"\\u21cc\",equiv:\"\\u2261\",equivDD:\"\\u2a78\",eqvparsl:\"\\u29e5\",erarr:\"\\u2971\",erDot:\"\\u2253\",escr:\"\\u212f\",Escr:\"\\u2130\",esdot:\"\\u2250\",Esim:\"\\u2a73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03b7\",ETH:\"\\xd0\",eth:\"\\xf0\",Euml:\"\\xcb\",euml:\"\\xeb\",euro:\"\\u20ac\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",ExponentialE:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\ufb03\",fflig:\"\\ufb00\",ffllig:\"\\ufb04\",Ffr:\"\\ud835\\udd09\",ffr:\"\\ud835\\udd23\",filig:\"\\ufb01\",FilledSmallSquare:\"\\u25fc\",FilledVerySmallSquare:\"\\u25aa\",fjlig:\"fj\",flat:\"\\u266d\",fllig:\"\\ufb02\",fltns:\"\\u25b1\",fnof:\"\\u0192\",Fopf:\"\\ud835\\udd3d\",fopf:\"\\ud835\\udd57\",forall:\"\\u2200\",ForAll:\"\\u2200\",fork:\"\\u22d4\",forkv:\"\\u2ad9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2a0d\",frac12:\"\\xbd\",frac13:\"\\u2153\",frac14:\"\\xbc\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215b\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xbe\",frac35:\"\\u2157\",frac38:\"\\u215c\",frac45:\"\\u2158\",frac56:\"\\u215a\",frac58:\"\\u215d\",frac78:\"\\u215e\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\ud835\\udcbb\",Fscr:\"\\u2131\",gacute:\"\\u01f5\",Gamma:\"\\u0393\",gamma:\"\\u03b3\",Gammad:\"\\u03dc\",gammad:\"\\u03dd\",gap:\"\\u2a86\",Gbreve:\"\\u011e\",gbreve:\"\\u011f\",Gcedil:\"\\u0122\",Gcirc:\"\\u011c\",gcirc:\"\\u011d\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",ge:\"\\u2265\",gE:\"\\u2267\",gEl:\"\\u2a8c\",gel:\"\\u22db\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2a7e\",gescc:\"\\u2aa9\",ges:\"\\u2a7e\",gesdot:\"\\u2a80\",gesdoto:\"\\u2a82\",gesdotol:\"\\u2a84\",gesl:\"\\u22db\\ufe00\",gesles:\"\\u2a94\",Gfr:\"\\ud835\\udd0a\",gfr:\"\\ud835\\udd24\",gg:\"\\u226b\",Gg:\"\\u22d9\",ggg:\"\\u22d9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gla:\"\\u2aa5\",gl:\"\\u2277\",glE:\"\\u2a92\",glj:\"\\u2aa4\",gnap:\"\\u2a8a\",gnapprox:\"\\u2a8a\",gne:\"\\u2a88\",gnE:\"\\u2269\",gneq:\"\\u2a88\",gneqq:\"\\u2269\",gnsim:\"\\u22e7\",Gopf:\"\\ud835\\udd3e\",gopf:\"\\ud835\\udd58\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22db\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2aa2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2a7e\",GreaterTilde:\"\\u2273\",Gscr:\"\\ud835\\udca2\",gscr:\"\\u210a\",gsim:\"\\u2273\",gsime:\"\\u2a8e\",gsiml:\"\\u2a90\",gtcc:\"\\u2aa7\",gtcir:\"\\u2a7a\",gt:\">\",GT:\">\",Gt:\"\\u226b\",gtdot:\"\\u22d7\",gtlPar:\"\\u2995\",gtquest:\"\\u2a7c\",gtrapprox:\"\\u2a86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22d7\",gtreqless:\"\\u22db\",gtreqqless:\"\\u2a8c\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\ufe00\",gvnE:\"\\u2269\\ufe00\",Hacek:\"\\u02c7\",hairsp:\"\\u200a\",half:\"\\xbd\",hamilt:\"\\u210b\",HARDcy:\"\\u042a\",hardcy:\"\\u044a\",harrcir:\"\\u2948\",harr:\"\\u2194\",hArr:\"\\u21d4\",harrw:\"\\u21ad\",Hat:\"^\",hbar:\"\\u210f\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22b9\",hfr:\"\\ud835\\udd25\",Hfr:\"\\u210c\",HilbertSpace:\"\\u210b\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21ff\",homtht:\"\\u223b\",hookleftarrow:\"\\u21a9\",hookrightarrow:\"\\u21aa\",hopf:\"\\ud835\\udd59\",Hopf:\"\\u210d\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",hscr:\"\\ud835\\udcbd\",Hscr:\"\\u210b\",hslash:\"\\u210f\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224e\",HumpEqual:\"\\u224f\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xcd\",iacute:\"\\xed\",ic:\"\\u2063\",Icirc:\"\\xce\",icirc:\"\\xee\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xa1\",iff:\"\\u21d4\",ifr:\"\\ud835\\udd26\",Ifr:\"\\u2111\",Igrave:\"\\xcc\",igrave:\"\\xec\",ii:\"\\u2148\",iiiint:\"\\u2a0c\",iiint:\"\\u222d\",iinfin:\"\\u29dc\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Imacr:\"\\u012a\",imacr:\"\\u012b\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",Im:\"\\u2111\",imof:\"\\u22b7\",imped:\"\\u01b5\",Implies:\"\\u21d2\",incare:\"\\u2105\",in:\"\\u2208\",infin:\"\\u221e\",infintie:\"\\u29dd\",inodot:\"\\u0131\",intcal:\"\\u22ba\",int:\"\\u222b\",Int:\"\\u222c\",integers:\"\\u2124\",Integral:\"\\u222b\",intercal:\"\\u22ba\",Intersection:\"\\u22c2\",intlarhk:\"\\u2a17\",intprod:\"\\u2a3c\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012e\",iogon:\"\\u012f\",Iopf:\"\\ud835\\udd40\",iopf:\"\\ud835\\udd5a\",Iota:\"\\u0399\",iota:\"\\u03b9\",iprod:\"\\u2a3c\",iquest:\"\\xbf\",iscr:\"\\ud835\\udcbe\",Iscr:\"\\u2110\",isin:\"\\u2208\",isindot:\"\\u22f5\",isinE:\"\\u22f9\",isins:\"\\u22f4\",isinsv:\"\\u22f3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xcf\",iuml:\"\\xef\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\ud835\\udd0d\",jfr:\"\\ud835\\udd27\",jmath:\"\\u0237\",Jopf:\"\\ud835\\udd41\",jopf:\"\\ud835\\udd5b\",Jscr:\"\\ud835\\udca5\",jscr:\"\\ud835\\udcbf\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039a\",kappa:\"\\u03ba\",kappav:\"\\u03f0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041a\",kcy:\"\\u043a\",Kfr:\"\\ud835\\udd0e\",kfr:\"\\ud835\\udd28\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040c\",kjcy:\"\\u045c\",Kopf:\"\\ud835\\udd42\",kopf:\"\\ud835\\udd5c\",Kscr:\"\\ud835\\udca6\",kscr:\"\\ud835\\udcc0\",lAarr:\"\\u21da\",Lacute:\"\\u0139\",lacute:\"\\u013a\",laemptyv:\"\\u29b4\",lagran:\"\\u2112\",Lambda:\"\\u039b\",lambda:\"\\u03bb\",lang:\"\\u27e8\",Lang:\"\\u27ea\",langd:\"\\u2991\",langle:\"\\u27e8\",lap:\"\\u2a85\",Laplacetrf:\"\\u2112\",laquo:\"\\xab\",larrb:\"\\u21e4\",larrbfs:\"\\u291f\",larr:\"\\u2190\",Larr:\"\\u219e\",lArr:\"\\u21d0\",larrfs:\"\\u291d\",larrhk:\"\\u21a9\",larrlp:\"\\u21ab\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21a2\",latail:\"\\u2919\",lAtail:\"\\u291b\",lat:\"\\u2aab\",late:\"\\u2aad\",lates:\"\\u2aad\\ufe00\",lbarr:\"\\u290c\",lBarr:\"\\u290e\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298b\",lbrksld:\"\\u298f\",lbrkslu:\"\\u298d\",Lcaron:\"\\u013d\",lcaron:\"\\u013e\",Lcedil:\"\\u013b\",lcedil:\"\\u013c\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041b\",lcy:\"\\u043b\",ldca:\"\\u2936\",ldquo:\"\\u201c\",ldquor:\"\\u201e\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294b\",ldsh:\"\\u21b2\",le:\"\\u2264\",lE:\"\\u2266\",LeftAngleBracket:\"\\u27e8\",LeftArrowBar:\"\\u21e4\",leftarrow:\"\\u2190\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21d0\",LeftArrowRightArrow:\"\\u21c6\",leftarrowtail:\"\\u21a2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27e6\",LeftDownTeeVector:\"\\u2961\",LeftDownVectorBar:\"\\u2959\",LeftDownVector:\"\\u21c3\",LeftFloor:\"\\u230a\",leftharpoondown:\"\\u21bd\",leftharpoonup:\"\\u21bc\",leftleftarrows:\"\\u21c7\",leftrightarrow:\"\\u2194\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21d4\",leftrightarrows:\"\\u21c6\",leftrightharpoons:\"\\u21cb\",leftrightsquigarrow:\"\\u21ad\",LeftRightVector:\"\\u294e\",LeftTeeArrow:\"\\u21a4\",LeftTee:\"\\u22a3\",LeftTeeVector:\"\\u295a\",leftthreetimes:\"\\u22cb\",LeftTriangleBar:\"\\u29cf\",LeftTriangle:\"\\u22b2\",LeftTriangleEqual:\"\\u22b4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVectorBar:\"\\u2958\",LeftUpVector:\"\\u21bf\",LeftVectorBar:\"\\u2952\",LeftVector:\"\\u21bc\",lEg:\"\\u2a8b\",leg:\"\\u22da\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2a7d\",lescc:\"\\u2aa8\",les:\"\\u2a7d\",lesdot:\"\\u2a7f\",lesdoto:\"\\u2a81\",lesdotor:\"\\u2a83\",lesg:\"\\u22da\\ufe00\",lesges:\"\\u2a93\",lessapprox:\"\\u2a85\",lessdot:\"\\u22d6\",lesseqgtr:\"\\u22da\",lesseqqgtr:\"\\u2a8b\",LessEqualGreater:\"\\u22da\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2aa1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2a7d\",LessTilde:\"\\u2272\",lfisht:\"\\u297c\",lfloor:\"\\u230a\",Lfr:\"\\ud835\\udd0f\",lfr:\"\\ud835\\udd29\",lg:\"\\u2276\",lgE:\"\\u2a91\",lHar:\"\\u2962\",lhard:\"\\u21bd\",lharu:\"\\u21bc\",lharul:\"\\u296a\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",llarr:\"\\u21c7\",ll:\"\\u226a\",Ll:\"\\u22d8\",llcorner:\"\\u231e\",Lleftarrow:\"\\u21da\",llhard:\"\\u296b\",lltri:\"\\u25fa\",Lmidot:\"\\u013f\",lmidot:\"\\u0140\",lmoustache:\"\\u23b0\",lmoust:\"\\u23b0\",lnap:\"\\u2a89\",lnapprox:\"\\u2a89\",lne:\"\\u2a87\",lnE:\"\\u2268\",lneq:\"\\u2a87\",lneqq:\"\\u2268\",lnsim:\"\\u22e6\",loang:\"\\u27ec\",loarr:\"\\u21fd\",lobrk:\"\\u27e6\",longleftarrow:\"\\u27f5\",LongLeftArrow:\"\\u27f5\",Longleftarrow:\"\\u27f8\",longleftrightarrow:\"\\u27f7\",LongLeftRightArrow:\"\\u27f7\",Longleftrightarrow:\"\\u27fa\",longmapsto:\"\\u27fc\",longrightarrow:\"\\u27f6\",LongRightArrow:\"\\u27f6\",Longrightarrow:\"\\u27f9\",looparrowleft:\"\\u21ab\",looparrowright:\"\\u21ac\",lopar:\"\\u2985\",Lopf:\"\\ud835\\udd43\",lopf:\"\\ud835\\udd5d\",loplus:\"\\u2a2d\",lotimes:\"\\u2a34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25ca\",lozenge:\"\\u25ca\",lozf:\"\\u29eb\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21c6\",lrcorner:\"\\u231f\",lrhar:\"\\u21cb\",lrhard:\"\\u296d\",lrm:\"\\u200e\",lrtri:\"\\u22bf\",lsaquo:\"\\u2039\",lscr:\"\\ud835\\udcc1\",Lscr:\"\\u2112\",lsh:\"\\u21b0\",Lsh:\"\\u21b0\",lsim:\"\\u2272\",lsime:\"\\u2a8d\",lsimg:\"\\u2a8f\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201a\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",ltcc:\"\\u2aa6\",ltcir:\"\\u2a79\",lt:\"<\",LT:\"<\",Lt:\"\\u226a\",ltdot:\"\\u22d6\",lthree:\"\\u22cb\",ltimes:\"\\u22c9\",ltlarr:\"\\u2976\",ltquest:\"\\u2a7b\",ltri:\"\\u25c3\",ltrie:\"\\u22b4\",ltrif:\"\\u25c2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294a\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\ufe00\",lvnE:\"\\u2268\\ufe00\",macr:\"\\xaf\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21a6\",mapsto:\"\\u21a6\",mapstodown:\"\\u21a7\",mapstoleft:\"\\u21a4\",mapstoup:\"\\u21a5\",marker:\"\\u25ae\",mcomma:\"\\u2a29\",Mcy:\"\\u041c\",mcy:\"\\u043c\",mdash:\"\\u2014\",mDDot:\"\\u223a\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205f\",Mellintrf:\"\\u2133\",Mfr:\"\\ud835\\udd10\",mfr:\"\\ud835\\udd2a\",mho:\"\\u2127\",micro:\"\\xb5\",midast:\"*\",midcir:\"\\u2af0\",mid:\"\\u2223\",middot:\"\\xb7\",minusb:\"\\u229f\",minus:\"\\u2212\",minusd:\"\\u2238\",minusdu:\"\\u2a2a\",MinusPlus:\"\\u2213\",mlcp:\"\\u2adb\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22a7\",Mopf:\"\\ud835\\udd44\",mopf:\"\\ud835\\udd5e\",mp:\"\\u2213\",mscr:\"\\ud835\\udcc2\",Mscr:\"\\u2133\",mstpos:\"\\u223e\",Mu:\"\\u039c\",mu:\"\\u03bc\",multimap:\"\\u22b8\",mumap:\"\\u22b8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20d2\",nap:\"\\u2249\",napE:\"\\u2a70\\u0338\",napid:\"\\u224b\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natural:\"\\u266e\",naturals:\"\\u2115\",natur:\"\\u266e\",nbsp:\"\\xa0\",nbump:\"\\u224e\\u0338\",nbumpe:\"\\u224f\\u0338\",ncap:\"\\u2a43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2a6d\\u0338\",ncup:\"\\u2a42\",Ncy:\"\\u041d\",ncy:\"\\u043d\",ndash:\"\\u2013\",nearhk:\"\\u2924\",nearr:\"\\u2197\",neArr:\"\\u21d7\",nearrow:\"\\u2197\",ne:\"\\u2260\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200b\",NegativeThickSpace:\"\\u200b\",NegativeThinSpace:\"\\u200b\",NegativeVeryThinSpace:\"\\u200b\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226b\",NestedLessLess:\"\\u226a\",NewLine:\"\\n\",nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\ud835\\udd11\",nfr:\"\\ud835\\udd2b\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2a7e\\u0338\",nges:\"\\u2a7e\\u0338\",nGg:\"\\u22d9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226b\\u20d2\",ngt:\"\\u226f\",ngtr:\"\\u226f\",nGtv:\"\\u226b\\u0338\",nharr:\"\\u21ae\",nhArr:\"\\u21ce\",nhpar:\"\\u2af2\",ni:\"\\u220b\",nis:\"\\u22fc\",nisd:\"\\u22fa\",niv:\"\\u220b\",NJcy:\"\\u040a\",njcy:\"\\u045a\",nlarr:\"\\u219a\",nlArr:\"\\u21cd\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nleftarrow:\"\\u219a\",nLeftarrow:\"\\u21cd\",nleftrightarrow:\"\\u21ae\",nLeftrightarrow:\"\\u21ce\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2a7d\\u0338\",nles:\"\\u2a7d\\u0338\",nless:\"\\u226e\",nLl:\"\\u22d8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226a\\u20d2\",nlt:\"\\u226e\",nltri:\"\\u22ea\",nltrie:\"\\u22ec\",nLtv:\"\\u226a\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xa0\",nopf:\"\\ud835\\udd5f\",Nopf:\"\\u2115\",Not:\"\\u2aec\",not:\"\\xac\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226d\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226f\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226b\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2a7e\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224e\\u0338\",NotHumpEqual:\"\\u224f\\u0338\",notin:\"\\u2209\",notindot:\"\\u22f5\\u0338\",notinE:\"\\u22f9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22f7\",notinvc:\"\\u22f6\",NotLeftTriangleBar:\"\\u29cf\\u0338\",NotLeftTriangle:\"\\u22ea\",NotLeftTriangleEqual:\"\\u22ec\",NotLess:\"\\u226e\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226a\\u0338\",NotLessSlantEqual:\"\\u2a7d\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2aa2\\u0338\",NotNestedLessLess:\"\\u2aa1\\u0338\",notni:\"\\u220c\",notniva:\"\\u220c\",notnivb:\"\\u22fe\",notnivc:\"\\u22fd\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2aaf\\u0338\",NotPrecedesSlantEqual:\"\\u22e0\",NotReverseElement:\"\\u220c\",NotRightTriangleBar:\"\\u29d0\\u0338\",NotRightTriangle:\"\\u22eb\",NotRightTriangleEqual:\"\\u22ed\",NotSquareSubset:\"\\u228f\\u0338\",NotSquareSubsetEqual:\"\\u22e2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22e3\",NotSubset:\"\\u2282\\u20d2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2ab0\\u0338\",NotSucceedsSlantEqual:\"\\u22e1\",NotSucceedsTilde:\"\\u227f\\u0338\",NotSuperset:\"\\u2283\\u20d2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",nparallel:\"\\u2226\",npar:\"\\u2226\",nparsl:\"\\u2afd\\u20e5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2a14\",npr:\"\\u2280\",nprcue:\"\\u22e0\",nprec:\"\\u2280\",npreceq:\"\\u2aaf\\u0338\",npre:\"\\u2aaf\\u0338\",nrarrc:\"\\u2933\\u0338\",nrarr:\"\\u219b\",nrArr:\"\\u21cf\",nrarrw:\"\\u219d\\u0338\",nrightarrow:\"\\u219b\",nRightarrow:\"\\u21cf\",nrtri:\"\\u22eb\",nrtrie:\"\\u22ed\",nsc:\"\\u2281\",nsccue:\"\\u22e1\",nsce:\"\\u2ab0\\u0338\",Nscr:\"\\ud835\\udca9\",nscr:\"\\ud835\\udcc3\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22e2\",nsqsupe:\"\\u22e3\",nsub:\"\\u2284\",nsubE:\"\\u2ac5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20d2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2ac5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2ab0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2ac6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20d2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2ac6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xd1\",ntilde:\"\\xf1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22ea\",ntrianglelefteq:\"\\u22ec\",ntriangleright:\"\\u22eb\",ntrianglerighteq:\"\\u22ed\",Nu:\"\\u039d\",nu:\"\\u03bd\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224d\\u20d2\",nvdash:\"\\u22ac\",nvDash:\"\\u22ad\",nVdash:\"\\u22ae\",nVDash:\"\\u22af\",nvge:\"\\u2265\\u20d2\",nvgt:\">\\u20d2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29de\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20d2\",nvlt:\"<\\u20d2\",nvltrie:\"\\u22b4\\u20d2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22b5\\u20d2\",nvsim:\"\\u223c\\u20d2\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwArr:\"\\u21d6\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xd3\",oacute:\"\\xf3\",oast:\"\\u229b\",Ocirc:\"\\xd4\",ocirc:\"\\xf4\",ocir:\"\\u229a\",Ocy:\"\\u041e\",ocy:\"\\u043e\",odash:\"\\u229d\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2a38\",odot:\"\\u2299\",odsold:\"\\u29bc\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29bf\",Ofr:\"\\ud835\\udd12\",ofr:\"\\ud835\\udd2c\",ogon:\"\\u02db\",Ograve:\"\\xd2\",ograve:\"\\xf2\",ogt:\"\\u29c1\",ohbar:\"\\u29b5\",ohm:\"\\u03a9\",oint:\"\\u222e\",olarr:\"\\u21ba\",olcir:\"\\u29be\",olcross:\"\\u29bb\",oline:\"\\u203e\",olt:\"\\u29c0\",Omacr:\"\\u014c\",omacr:\"\\u014d\",Omega:\"\\u03a9\",omega:\"\\u03c9\",Omicron:\"\\u039f\",omicron:\"\\u03bf\",omid:\"\\u29b6\",ominus:\"\\u2296\",Oopf:\"\\ud835\\udd46\",oopf:\"\\ud835\\udd60\",opar:\"\\u29b7\",OpenCurlyDoubleQuote:\"\\u201c\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29b9\",oplus:\"\\u2295\",orarr:\"\\u21bb\",Or:\"\\u2a54\",or:\"\\u2228\",ord:\"\\u2a5d\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xaa\",ordm:\"\\xba\",origof:\"\\u22b6\",oror:\"\\u2a56\",orslope:\"\\u2a57\",orv:\"\\u2a5b\",oS:\"\\u24c8\",Oscr:\"\\ud835\\udcaa\",oscr:\"\\u2134\",Oslash:\"\\xd8\",oslash:\"\\xf8\",osol:\"\\u2298\",Otilde:\"\\xd5\",otilde:\"\\xf5\",otimesas:\"\\u2a36\",Otimes:\"\\u2a37\",otimes:\"\\u2297\",Ouml:\"\\xd6\",ouml:\"\\xf6\",ovbar:\"\\u233d\",OverBar:\"\\u203e\",OverBrace:\"\\u23de\",OverBracket:\"\\u23b4\",OverParenthesis:\"\\u23dc\",para:\"\\xb6\",parallel:\"\\u2225\",par:\"\\u2225\",parsim:\"\\u2af3\",parsl:\"\\u2afd\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041f\",pcy:\"\\u043f\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22a5\",pertenk:\"\\u2031\",Pfr:\"\\ud835\\udd13\",pfr:\"\\ud835\\udd2d\",Phi:\"\\u03a6\",phi:\"\\u03c6\",phiv:\"\\u03d5\",phmmat:\"\\u2133\",phone:\"\\u260e\",Pi:\"\\u03a0\",pi:\"\\u03c0\",pitchfork:\"\\u22d4\",piv:\"\\u03d6\",planck:\"\\u210f\",planckh:\"\\u210e\",plankv:\"\\u210f\",plusacir:\"\\u2a23\",plusb:\"\\u229e\",pluscir:\"\\u2a22\",plus:\"+\",plusdo:\"\\u2214\",plusdu:\"\\u2a25\",pluse:\"\\u2a72\",PlusMinus:\"\\xb1\",plusmn:\"\\xb1\",plussim:\"\\u2a26\",plustwo:\"\\u2a27\",pm:\"\\xb1\",Poincareplane:\"\\u210c\",pointint:\"\\u2a15\",popf:\"\\ud835\\udd61\",Popf:\"\\u2119\",pound:\"\\xa3\",prap:\"\\u2ab7\",Pr:\"\\u2abb\",pr:\"\\u227a\",prcue:\"\\u227c\",precapprox:\"\\u2ab7\",prec:\"\\u227a\",preccurlyeq:\"\\u227c\",Precedes:\"\\u227a\",PrecedesEqual:\"\\u2aaf\",PrecedesSlantEqual:\"\\u227c\",PrecedesTilde:\"\\u227e\",preceq:\"\\u2aaf\",precnapprox:\"\\u2ab9\",precneqq:\"\\u2ab5\",precnsim:\"\\u22e8\",pre:\"\\u2aaf\",prE:\"\\u2ab3\",precsim:\"\\u227e\",prime:\"\\u2032\",Prime:\"\\u2033\",primes:\"\\u2119\",prnap:\"\\u2ab9\",prnE:\"\\u2ab5\",prnsim:\"\\u22e8\",prod:\"\\u220f\",Product:\"\\u220f\",profalar:\"\\u232e\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221d\",Proportional:\"\\u221d\",Proportion:\"\\u2237\",propto:\"\\u221d\",prsim:\"\\u227e\",prurel:\"\\u22b0\",Pscr:\"\\ud835\\udcab\",pscr:\"\\ud835\\udcc5\",Psi:\"\\u03a8\",psi:\"\\u03c8\",puncsp:\"\\u2008\",Qfr:\"\\ud835\\udd14\",qfr:\"\\ud835\\udd2e\",qint:\"\\u2a0c\",qopf:\"\\ud835\\udd62\",Qopf:\"\\u211a\",qprime:\"\\u2057\",Qscr:\"\\ud835\\udcac\",qscr:\"\\ud835\\udcc6\",quaternions:\"\\u210d\",quatint:\"\\u2a16\",quest:\"?\",questeq:\"\\u225f\",quot:'\"',QUOT:'\"',rAarr:\"\\u21db\",race:\"\\u223d\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221a\",raemptyv:\"\\u29b3\",rang:\"\\u27e9\",Rang:\"\\u27eb\",rangd:\"\\u2992\",range:\"\\u29a5\",rangle:\"\\u27e9\",raquo:\"\\xbb\",rarrap:\"\\u2975\",rarrb:\"\\u21e5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarr:\"\\u2192\",Rarr:\"\\u21a0\",rArr:\"\\u21d2\",rarrfs:\"\\u291e\",rarrhk:\"\\u21aa\",rarrlp:\"\\u21ac\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21a3\",rarrw:\"\\u219d\",ratail:\"\\u291a\",rAtail:\"\\u291c\",ratio:\"\\u2236\",rationals:\"\\u211a\",rbarr:\"\\u290d\",rBarr:\"\\u290f\",RBarr:\"\\u2910\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298c\",rbrksld:\"\\u298e\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201d\",rdquor:\"\\u201d\",rdsh:\"\\u21b3\",real:\"\\u211c\",realine:\"\\u211b\",realpart:\"\\u211c\",reals:\"\\u211d\",Re:\"\\u211c\",rect:\"\\u25ad\",reg:\"\\xae\",REG:\"\\xae\",ReverseElement:\"\\u220b\",ReverseEquilibrium:\"\\u21cb\",ReverseUpEquilibrium:\"\\u296f\",rfisht:\"\\u297d\",rfloor:\"\\u230b\",rfr:\"\\ud835\\udd2f\",Rfr:\"\\u211c\",rHar:\"\\u2964\",rhard:\"\\u21c1\",rharu:\"\\u21c0\",rharul:\"\\u296c\",Rho:\"\\u03a1\",rho:\"\\u03c1\",rhov:\"\\u03f1\",RightAngleBracket:\"\\u27e9\",RightArrowBar:\"\\u21e5\",rightarrow:\"\\u2192\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21d2\",RightArrowLeftArrow:\"\\u21c4\",rightarrowtail:\"\\u21a3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27e7\",RightDownTeeVector:\"\\u295d\",RightDownVectorBar:\"\\u2955\",RightDownVector:\"\\u21c2\",RightFloor:\"\\u230b\",rightharpoondown:\"\\u21c1\",rightharpoonup:\"\\u21c0\",rightleftarrows:\"\\u21c4\",rightleftharpoons:\"\\u21cc\",rightrightarrows:\"\\u21c9\",rightsquigarrow:\"\\u219d\",RightTeeArrow:\"\\u21a6\",RightTee:\"\\u22a2\",RightTeeVector:\"\\u295b\",rightthreetimes:\"\\u22cc\",RightTriangleBar:\"\\u29d0\",RightTriangle:\"\\u22b3\",RightTriangleEqual:\"\\u22b5\",RightUpDownVector:\"\\u294f\",RightUpTeeVector:\"\\u295c\",RightUpVectorBar:\"\\u2954\",RightUpVector:\"\\u21be\",RightVectorBar:\"\\u2953\",RightVector:\"\\u21c0\",ring:\"\\u02da\",risingdotseq:\"\\u2253\",rlarr:\"\\u21c4\",rlhar:\"\\u21cc\",rlm:\"\\u200f\",rmoustache:\"\\u23b1\",rmoust:\"\\u23b1\",rnmid:\"\\u2aee\",roang:\"\\u27ed\",roarr:\"\\u21fe\",robrk:\"\\u27e7\",ropar:\"\\u2986\",ropf:\"\\ud835\\udd63\",Ropf:\"\\u211d\",roplus:\"\\u2a2e\",rotimes:\"\\u2a35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2a12\",rrarr:\"\\u21c9\",Rrightarrow:\"\\u21db\",rsaquo:\"\\u203a\",rscr:\"\\ud835\\udcc7\",Rscr:\"\\u211b\",rsh:\"\\u21b1\",Rsh:\"\\u21b1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22cc\",rtimes:\"\\u22ca\",rtri:\"\\u25b9\",rtrie:\"\\u22b5\",rtrif:\"\\u25b8\",rtriltri:\"\\u29ce\",RuleDelayed:\"\\u29f4\",ruluhar:\"\\u2968\",rx:\"\\u211e\",Sacute:\"\\u015a\",sacute:\"\\u015b\",sbquo:\"\\u201a\",scap:\"\\u2ab8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Sc:\"\\u2abc\",sc:\"\\u227b\",sccue:\"\\u227d\",sce:\"\\u2ab0\",scE:\"\\u2ab4\",Scedil:\"\\u015e\",scedil:\"\\u015f\",Scirc:\"\\u015c\",scirc:\"\\u015d\",scnap:\"\\u2aba\",scnE:\"\\u2ab6\",scnsim:\"\\u22e9\",scpolint:\"\\u2a13\",scsim:\"\\u227f\",Scy:\"\\u0421\",scy:\"\\u0441\",sdotb:\"\\u22a1\",sdot:\"\\u22c5\",sdote:\"\\u2a66\",searhk:\"\\u2925\",searr:\"\\u2198\",seArr:\"\\u21d8\",searrow:\"\\u2198\",sect:\"\\xa7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\ud835\\udd16\",sfr:\"\\ud835\\udd30\",sfrown:\"\\u2322\",sharp:\"\\u266f\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xad\",Sigma:\"\\u03a3\",sigma:\"\\u03c3\",sigmaf:\"\\u03c2\",sigmav:\"\\u03c2\",sim:\"\\u223c\",simdot:\"\\u2a6a\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2a9e\",simgE:\"\\u2aa0\",siml:\"\\u2a9d\",simlE:\"\\u2a9f\",simne:\"\\u2246\",simplus:\"\\u2a24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2a33\",smeparsl:\"\\u29e4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2aaa\",smte:\"\\u2aac\",smtes:\"\\u2aac\\ufe00\",SOFTcy:\"\\u042c\",softcy:\"\\u044c\",solbar:\"\\u233f\",solb:\"\\u29c4\",sol:\"/\",Sopf:\"\\ud835\\udd4a\",sopf:\"\\ud835\\udd64\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\ufe00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\ufe00\",Sqrt:\"\\u221a\",sqsub:\"\\u228f\",sqsube:\"\\u2291\",sqsubset:\"\\u228f\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",square:\"\\u25a1\",Square:\"\\u25a1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228f\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25aa\",squ:\"\\u25a1\",squf:\"\\u25aa\",srarr:\"\\u2192\",Sscr:\"\\ud835\\udcae\",sscr:\"\\ud835\\udcc8\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22c6\",Star:\"\\u22c6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03f5\",straightphi:\"\\u03d5\",strns:\"\\xaf\",sub:\"\\u2282\",Sub:\"\\u22d0\",subdot:\"\\u2abd\",subE:\"\\u2ac5\",sube:\"\\u2286\",subedot:\"\\u2ac3\",submult:\"\\u2ac1\",subnE:\"\\u2acb\",subne:\"\\u228a\",subplus:\"\\u2abf\",subrarr:\"\\u2979\",subset:\"\\u2282\",Subset:\"\\u22d0\",subseteq:\"\\u2286\",subseteqq:\"\\u2ac5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228a\",subsetneqq:\"\\u2acb\",subsim:\"\\u2ac7\",subsub:\"\\u2ad5\",subsup:\"\\u2ad3\",succapprox:\"\\u2ab8\",succ:\"\\u227b\",succcurlyeq:\"\\u227d\",Succeeds:\"\\u227b\",SucceedsEqual:\"\\u2ab0\",SucceedsSlantEqual:\"\\u227d\",SucceedsTilde:\"\\u227f\",succeq:\"\\u2ab0\",succnapprox:\"\\u2aba\",succneqq:\"\\u2ab6\",succnsim:\"\\u22e9\",succsim:\"\\u227f\",SuchThat:\"\\u220b\",sum:\"\\u2211\",Sum:\"\\u2211\",sung:\"\\u266a\",sup1:\"\\xb9\",sup2:\"\\xb2\",sup3:\"\\xb3\",sup:\"\\u2283\",Sup:\"\\u22d1\",supdot:\"\\u2abe\",supdsub:\"\\u2ad8\",supE:\"\\u2ac6\",supe:\"\\u2287\",supedot:\"\\u2ac4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27c9\",suphsub:\"\\u2ad7\",suplarr:\"\\u297b\",supmult:\"\\u2ac2\",supnE:\"\\u2acc\",supne:\"\\u228b\",supplus:\"\\u2ac0\",supset:\"\\u2283\",Supset:\"\\u22d1\",supseteq:\"\\u2287\",supseteqq:\"\\u2ac6\",supsetneq:\"\\u228b\",supsetneqq:\"\\u2acc\",supsim:\"\\u2ac8\",supsub:\"\\u2ad4\",supsup:\"\\u2ad6\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swArr:\"\\u21d9\",swarrow:\"\\u2199\",swnwar:\"\\u292a\",szlig:\"\\xdf\",Tab:\"\\t\",target:\"\\u2316\",Tau:\"\\u03a4\",tau:\"\\u03c4\",tbrk:\"\\u23b4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20db\",telrec:\"\\u2315\",Tfr:\"\\ud835\\udd17\",tfr:\"\\ud835\\udd31\",there4:\"\\u2234\",therefore:\"\\u2234\",Therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03b8\",thetasym:\"\\u03d1\",thetav:\"\\u03d1\",thickapprox:\"\\u2248\",thicksim:\"\\u223c\",ThickSpace:\"\\u205f\\u200a\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223c\",THORN:\"\\xde\",thorn:\"\\xfe\",tilde:\"\\u02dc\",Tilde:\"\\u223c\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",timesbar:\"\\u2a31\",timesb:\"\\u22a0\",times:\"\\xd7\",timesd:\"\\u2a30\",tint:\"\\u222d\",toea:\"\\u2928\",topbot:\"\\u2336\",topcir:\"\\u2af1\",top:\"\\u22a4\",Topf:\"\\ud835\\udd4b\",topf:\"\\ud835\\udd65\",topfork:\"\\u2ada\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",TRADE:\"\\u2122\",triangle:\"\\u25b5\",triangledown:\"\\u25bf\",triangleleft:\"\\u25c3\",trianglelefteq:\"\\u22b4\",triangleq:\"\\u225c\",triangleright:\"\\u25b9\",trianglerighteq:\"\\u22b5\",tridot:\"\\u25ec\",trie:\"\\u225c\",triminus:\"\\u2a3a\",TripleDot:\"\\u20db\",triplus:\"\\u2a39\",trisb:\"\\u29cd\",tritime:\"\\u2a3b\",trpezium:\"\\u23e2\",Tscr:\"\\ud835\\udcaf\",tscr:\"\\ud835\\udcc9\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040b\",tshcy:\"\\u045b\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226c\",twoheadleftarrow:\"\\u219e\",twoheadrightarrow:\"\\u21a0\",Uacute:\"\\xda\",uacute:\"\\xfa\",uarr:\"\\u2191\",Uarr:\"\\u219f\",uArr:\"\\u21d1\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040e\",ubrcy:\"\\u045e\",Ubreve:\"\\u016c\",ubreve:\"\\u016d\",Ucirc:\"\\xdb\",ucirc:\"\\xfb\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21c5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296e\",ufisht:\"\\u297e\",Ufr:\"\\ud835\\udd18\",ufr:\"\\ud835\\udd32\",Ugrave:\"\\xd9\",ugrave:\"\\xf9\",uHar:\"\\u2963\",uharl:\"\\u21bf\",uharr:\"\\u21be\",uhblk:\"\\u2580\",ulcorn:\"\\u231c\",ulcorner:\"\\u231c\",ulcrop:\"\\u230f\",ultri:\"\\u25f8\",Umacr:\"\\u016a\",umacr:\"\\u016b\",uml:\"\\xa8\",UnderBar:\"_\",UnderBrace:\"\\u23df\",UnderBracket:\"\\u23b5\",UnderParenthesis:\"\\u23dd\",Union:\"\\u22c3\",UnionPlus:\"\\u228e\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\ud835\\udd4c\",uopf:\"\\ud835\\udd66\",UpArrowBar:\"\\u2912\",uparrow:\"\\u2191\",UpArrow:\"\\u2191\",Uparrow:\"\\u21d1\",UpArrowDownArrow:\"\\u21c5\",updownarrow:\"\\u2195\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21d5\",UpEquilibrium:\"\\u296e\",upharpoonleft:\"\\u21bf\",upharpoonright:\"\\u21be\",uplus:\"\\u228e\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",upsi:\"\\u03c5\",Upsi:\"\\u03d2\",upsih:\"\\u03d2\",Upsilon:\"\\u03a5\",upsilon:\"\\u03c5\",UpTeeArrow:\"\\u21a5\",UpTee:\"\\u22a5\",upuparrows:\"\\u21c8\",urcorn:\"\\u231d\",urcorner:\"\\u231d\",urcrop:\"\\u230e\",Uring:\"\\u016e\",uring:\"\\u016f\",urtri:\"\\u25f9\",Uscr:\"\\ud835\\udcb0\",uscr:\"\\ud835\\udcca\",utdot:\"\\u22f0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25b5\",utrif:\"\\u25b4\",uuarr:\"\\u21c8\",Uuml:\"\\xdc\",uuml:\"\\xfc\",uwangle:\"\\u29a7\",vangrt:\"\\u299c\",varepsilon:\"\\u03f5\",varkappa:\"\\u03f0\",varnothing:\"\\u2205\",varphi:\"\\u03d5\",varpi:\"\\u03d6\",varpropto:\"\\u221d\",varr:\"\\u2195\",vArr:\"\\u21d5\",varrho:\"\\u03f1\",varsigma:\"\\u03c2\",varsubsetneq:\"\\u228a\\ufe00\",varsubsetneqq:\"\\u2acb\\ufe00\",varsupsetneq:\"\\u228b\\ufe00\",varsupsetneqq:\"\\u2acc\\ufe00\",vartheta:\"\\u03d1\",vartriangleleft:\"\\u22b2\",vartriangleright:\"\\u22b3\",vBar:\"\\u2ae8\",Vbar:\"\\u2aeb\",vBarv:\"\\u2ae9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",vdash:\"\\u22a2\",vDash:\"\\u22a8\",Vdash:\"\\u22a9\",VDash:\"\\u22ab\",Vdashl:\"\\u2ae6\",veebar:\"\\u22bb\",vee:\"\\u2228\",Vee:\"\\u22c1\",veeeq:\"\\u225a\",vellip:\"\\u22ee\",verbar:\"|\",Verbar:\"\\u2016\",vert:\"|\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200a\",Vfr:\"\\ud835\\udd19\",vfr:\"\\ud835\\udd33\",vltri:\"\\u22b2\",vnsub:\"\\u2282\\u20d2\",vnsup:\"\\u2283\\u20d2\",Vopf:\"\\ud835\\udd4d\",vopf:\"\\ud835\\udd67\",vprop:\"\\u221d\",vrtri:\"\\u22b3\",Vscr:\"\\ud835\\udcb1\",vscr:\"\\ud835\\udccb\",vsubnE:\"\\u2acb\\ufe00\",vsubne:\"\\u228a\\ufe00\",vsupnE:\"\\u2acc\\ufe00\",vsupne:\"\\u228b\\ufe00\",Vvdash:\"\\u22aa\",vzigzag:\"\\u299a\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2a5f\",wedge:\"\\u2227\",Wedge:\"\\u22c0\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\ud835\\udd1a\",wfr:\"\\ud835\\udd34\",Wopf:\"\\ud835\\udd4e\",wopf:\"\\ud835\\udd68\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\ud835\\udcb2\",wscr:\"\\ud835\\udccc\",xcap:\"\\u22c2\",xcirc:\"\\u25ef\",xcup:\"\\u22c3\",xdtri:\"\\u25bd\",Xfr:\"\\ud835\\udd1b\",xfr:\"\\ud835\\udd35\",xharr:\"\\u27f7\",xhArr:\"\\u27fa\",Xi:\"\\u039e\",xi:\"\\u03be\",xlarr:\"\\u27f5\",xlArr:\"\\u27f8\",xmap:\"\\u27fc\",xnis:\"\\u22fb\",xodot:\"\\u2a00\",Xopf:\"\\ud835\\udd4f\",xopf:\"\\ud835\\udd69\",xoplus:\"\\u2a01\",xotime:\"\\u2a02\",xrarr:\"\\u27f6\",xrArr:\"\\u27f9\",Xscr:\"\\ud835\\udcb3\",xscr:\"\\ud835\\udccd\",xsqcup:\"\\u2a06\",xuplus:\"\\u2a04\",xutri:\"\\u25b3\",xvee:\"\\u22c1\",xwedge:\"\\u22c0\",Yacute:\"\\xdd\",yacute:\"\\xfd\",YAcy:\"\\u042f\",yacy:\"\\u044f\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042b\",ycy:\"\\u044b\",yen:\"\\xa5\",Yfr:\"\\ud835\\udd1c\",yfr:\"\\ud835\\udd36\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\ud835\\udd50\",yopf:\"\\ud835\\udd6a\",Yscr:\"\\ud835\\udcb4\",yscr:\"\\ud835\\udcce\",YUcy:\"\\u042e\",yucy:\"\\u044e\",yuml:\"\\xff\",Yuml:\"\\u0178\",Zacute:\"\\u0179\",zacute:\"\\u017a\",Zcaron:\"\\u017d\",zcaron:\"\\u017e\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017b\",zdot:\"\\u017c\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200b\",Zeta:\"\\u0396\",zeta:\"\\u03b6\",zfr:\"\\ud835\\udd37\",Zfr:\"\\u2128\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21dd\",zopf:\"\\ud835\\udd6b\",Zopf:\"\\u2124\",Zscr:\"\\ud835\\udcb5\",zscr:\"\\ud835\\udccf\",zwj:\"\\u200d\",zwnj:\"\\u200c\"},t=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/,n={};function s(e,r,t){var o,i,a,c,l,u=\"\";for(\"string\"!=typeof r&&(t=r,r=s.defaultChars),void 0===t&&(t=!0),l=function(e){var r,t,s=n[e];if(s)return s;for(s=n[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),/^[0-9a-z]$/i.test(t)?s.push(t):s.push(\"%\"+(\"0\"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r<e.length;r++)s[e.charCodeAt(r)]=e[r];return s}(r),o=0,i=e.length;o<i;o++)if(a=e.charCodeAt(o),t&&37===a&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(a<128)u+=l[a];else if(a>=55296&&a<=57343){if(a>=55296&&a<=56319&&o+1<i&&(c=e.charCodeAt(o+1))>=56320&&c<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+=\"%EF%BF%BD\"}else u+=encodeURIComponent(e[o]);return u}s.defaultChars=\";/?:@&=+$,-_.!~*'()#\",s.componentChars=\"-_.!~*'()\";var o=s,i={};function a(e,r){var t;return\"string\"!=typeof r&&(r=a.defaultChars),t=function(e){var r,t,n=i[e];if(n)return n;for(n=i[e]=[],r=0;r<128;r++)t=String.fromCharCode(r),n.push(t);for(r=0;r<e.length;r++)n[t=e.charCodeAt(r)]=\"%\"+(\"0\"+t.toString(16).toUpperCase()).slice(-2);return n}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var r,n,s,o,i,a,c,l=\"\";for(r=0,n=e.length;r<n;r+=3)(s=parseInt(e.slice(r+1,r+3),16))<128?l+=t[s]:192==(224&s)&&r+3<n&&128==(192&(o=parseInt(e.slice(r+4,r+6),16)))?(l+=(c=s<<6&1984|63&o)<128?\"\\ufffd\\ufffd\":String.fromCharCode(c),r+=3):224==(240&s)&&r+6<n&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),128==(192&o)&&128==(192&i))?(l+=(c=s<<12&61440|o<<6&4032|63&i)<2048||c>=55296&&c<=57343?\"\\ufffd\\ufffd\\ufffd\":String.fromCharCode(c),r+=6):240==(248&s)&&r+9<n&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),a=parseInt(e.slice(r+10,r+12),16),128==(192&o)&&128==(192&i)&&128==(192&a))?((c=s<<18&1835008|o<<12&258048|i<<6&4032|63&a)<65536||c>1114111?l+=\"\\ufffd\\ufffd\\ufffd\\ufffd\":(c-=65536,l+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),r+=9):l+=\"\\ufffd\";return l}))}a.defaultChars=\";/?:@&=+$,#\",a.componentChars=\"\";var c=a;function l(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var u=/^([a-z0-9.+-]+:)/i,p=/:[0-9]*$/,h=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,f=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),d=[\"'\"].concat(f),m=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(d),g=[\"/\",\"?\",\"#\"],_=/^[+a-z0-9A-Z_-]{0,63}$/,k=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,\"javascript:\":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0};l.prototype.parse=function(e,r){var t,n,s,o,i,a=e;if(a=a.trim(),!r&&1===e.split(\"#\").length){var c=h.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}var l=u.exec(a);if(l&&(s=(l=l[0]).toLowerCase(),this.protocol=l,a=a.substr(l.length)),(r||l||a.match(/^\\/\\/[^@\\/]+@[^@\\/]+/))&&(!(i=\"//\"===a.substr(0,2))||l&&b[l]||(a=a.substr(2),this.slashes=!0)),!b[l]&&(i||l&&!v[l])){var p,f,d=-1;for(t=0;t<g.length;t++)-1!==(o=a.indexOf(g[t]))&&(-1===d||o<d)&&(d=o);for(-1!==(f=-1===d?a.lastIndexOf(\"@\"):a.lastIndexOf(\"@\",d))&&(p=a.slice(0,f),a=a.slice(f+1),this.auth=p),d=-1,t=0;t<m.length;t++)-1!==(o=a.indexOf(m[t]))&&(-1===d||o<d)&&(d=o);-1===d&&(d=a.length),\":\"===a[d-1]&&d--;var C=a.slice(0,d);a=a.slice(d),this.parseHost(C),this.hostname=this.hostname||\"\";var y=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!y){var A=this.hostname.split(/\\./);for(t=0,n=A.length;t<n;t++){var x=A[t];if(x&&!x.match(_)){for(var D=\"\",w=0,E=x.length;w<E;w++)x.charCodeAt(w)>127?D+=\"x\":D+=x[w];if(!D.match(_)){var q=A.slice(0,t),S=A.slice(t+1),F=x.match(k);F&&(q.push(F[1]),S.unshift(F[2])),S.length&&(a=S.join(\".\")+a),this.hostname=q.join(\".\");break}}}}this.hostname.length>255&&(this.hostname=\"\"),y&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var L=a.indexOf(\"#\");-1!==L&&(this.hash=a.substr(L),a=a.slice(0,L));var z=a.indexOf(\"?\");return-1!==z&&(this.search=a.substr(z),a=a.slice(0,z)),a&&(this.pathname=a),v[s]&&this.hostname&&!this.pathname&&(this.pathname=\"\"),this},l.prototype.parseHost=function(e){var r=p.exec(e);r&&(\":\"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)};var C={encode:o,decode:c,format:function(e){var r=\"\";return r+=e.protocol||\"\",r+=e.slashes?\"//\":\"\",r+=e.auth?e.auth+\"@\":\"\",e.hostname&&-1!==e.hostname.indexOf(\":\")?r+=\"[\"+e.hostname+\"]\":r+=e.hostname||\"\",r+=e.port?\":\"+e.port:\"\",r+=e.pathname||\"\",r+=e.search||\"\",r+=e.hash||\"\"},parse:function(e,r){if(e&&e instanceof l)return e;var t=new l;return t.parse(e,r),t}},y=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,A=/[\\0-\\x1F\\x7F-\\x9F]/,x=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/,D={Any:y,Cc:A,Cf:/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/,P:t,Z:x},w=function(e,r,t){return t={path:r,exports:{},require:function(e,r){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==r&&t.path)}},e(t,t.exports),t.exports}((function(e,n){var s=Object.prototype.hasOwnProperty;function o(e,r){return s.call(e,r)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var r=55296+((e-=65536)>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}var c=/\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g,l=new RegExp(c.source+\"|\"+/&([a-z#][a-z0-9]{1,31});/gi.source,\"gi\"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;var p=/[&<>\"]/,h=/[&<>\"]/g,f={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function d(e){return f[e]}var m=/[.?*+^$[\\]\\\\(){}|-]/g;n.lib={},n.lib.mdurl=C,n.lib.ucmicro=D,n.assign=function(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be object\");Object.keys(r).forEach((function(t){e[t]=r[t]}))}})),e},n.isString=function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},n.has=o,n.unescapeMd=function(e){return e.indexOf(\"\\\\\")<0?e:e.replace(c,\"$1\")},n.unescapeAll=function(e){return e.indexOf(\"\\\\\")<0&&e.indexOf(\"&\")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return o(r,t)?r[t]:35===t.charCodeAt(0)&&u.test(t)&&i(n=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},n.isValidEntityCode=i,n.fromCodePoint=a,n.escapeHtml=function(e){return p.test(e)?e.replace(h,d):e},n.arrayReplaceAt=function(e,r,t){return[].concat(e.slice(0,r),t,e.slice(r+1))},n.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},n.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},n.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},n.isPunctChar=function(e){return t.test(e)},n.escapeRE=function(e){return e.replace(m,\"\\\\$&\")},n.normalizeReference=function(e){return e=e.trim().replace(/\\s+/g,\" \"),\"\\u1e7e\"===\"\\u1e9e\".toLowerCase()&&(e=e.replace(/\\u1e9e/g,\"\\xdf\")),e.toLowerCase().toUpperCase()}})),E=w.unescapeAll,q=w.unescapeAll,S=function(e,r,t){var n,s,o=r,i={ok:!1,pos:0,lines:0,str:\"\"};if(60===e.charCodeAt(r)){for(r++;r<t;){if(10===(n=e.charCodeAt(r)))return i;if(60===n)return i;if(62===n)return i.pos=r+1,i.str=E(e.slice(o+1,r)),i.ok=!0,i;92===n&&r+1<t?r+=2:r++}return i}for(s=0;r<t&&32!==(n=e.charCodeAt(r))&&!(n<32||127===n);)if(92===n&&r+1<t){if(32===e.charCodeAt(r+1))break;r+=2}else{if(40===n&&++s>32)return i;if(41===n){if(0===s)break;s--}r++}return o===r||0!==s||(i.str=E(e.slice(o,r)),i.lines=0,i.pos=r,i.ok=!0),i},F=function(e,r,t){var n,s,o=0,i=r,a={ok:!1,pos:0,lines:0,str:\"\"};if(r>=t)return a;if(34!==(s=e.charCodeAt(r))&&39!==s&&40!==s)return a;for(r++,40===s&&(s=41);r<t;){if((n=e.charCodeAt(r))===s)return a.pos=r+1,a.lines=o,a.str=q(e.slice(i+1,r)),a.ok=!0,a;if(40===n&&41===s)return a;10===n?o++:92===n&&r+1<t&&(r++,10===e.charCodeAt(r)&&o++),r++}return a},L={parseLinkLabel:function(e,r,t){var n,s,o,i,a=-1,c=e.posMax,l=e.pos;for(e.pos=r+1,n=1;e.pos<c;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--n){s=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)n++;else if(t)return e.pos=l,-1}return s&&(a=e.pos),e.pos=l,a},parseLinkDestination:S,parseLinkTitle:F},z=w.assign,T=w.unescapeAll,I=w.escapeHtml,M={};function R(){this.rules=z({},M)}M.code_inline=function(e,r,t,n,s){var o=e[r];return\"<code\"+s.renderAttrs(o)+\">\"+I(e[r].content)+\"</code>\"},M.code_block=function(e,r,t,n,s){var o=e[r];return\"<pre\"+s.renderAttrs(o)+\"><code>\"+I(e[r].content)+\"</code></pre>\\n\"},M.fence=function(e,r,t,n,s){var o,i,a,c,l,u=e[r],p=u.info?T(u.info).trim():\"\",h=\"\",f=\"\";return p&&(h=(a=p.split(/(\\s+)/g))[0],f=a.slice(2).join(\"\")),0===(o=t.highlight&&t.highlight(u.content,h,f)||I(u.content)).indexOf(\"<pre\")?o+\"\\n\":p?(i=u.attrIndex(\"class\"),c=u.attrs?u.attrs.slice():[],i<0?c.push([\"class\",t.langPrefix+h]):(c[i]=c[i].slice(),c[i][1]+=\" \"+t.langPrefix+h),l={attrs:c},\"<pre><code\"+s.renderAttrs(l)+\">\"+o+\"</code></pre>\\n\"):\"<pre><code\"+s.renderAttrs(u)+\">\"+o+\"</code></pre>\\n\"},M.image=function(e,r,t,n,s){var o=e[r];return o.attrs[o.attrIndex(\"alt\")][1]=s.renderInlineAsText(o.children,t,n),s.renderToken(e,r,t)},M.hardbreak=function(e,r,t){return t.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},M.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},M.text=function(e,r){return I(e[r].content)},M.html_block=function(e,r){return e[r].content},M.html_inline=function(e,r){return e[r].content},R.prototype.renderAttrs=function(e){var r,t,n;if(!e.attrs)return\"\";for(n=\"\",r=0,t=e.attrs.length;r<t;r++)n+=\" \"+I(e.attrs[r][0])+'=\"'+I(e.attrs[r][1])+'\"';return n},R.prototype.renderToken=function(e,r,t){var n,s=\"\",o=!1,i=e[r];return i.hidden?\"\":(i.block&&-1!==i.nesting&&r&&e[r-1].hidden&&(s+=\"\\n\"),s+=(-1===i.nesting?\"</\":\"<\")+i.tag,s+=this.renderAttrs(i),0===i.nesting&&t.xhtmlOut&&(s+=\" /\"),i.block&&(o=!0,1===i.nesting&&r+1<e.length&&(\"inline\"===(n=e[r+1]).type||n.hidden||-1===n.nesting&&n.tag===i.tag)&&(o=!1)),s+=o?\">\\n\":\">\")},R.prototype.renderInline=function(e,r,t){for(var n,s=\"\",o=this.rules,i=0,a=e.length;i<a;i++)void 0!==o[n=e[i].type]?s+=o[n](e,i,r,t,this):s+=this.renderToken(e,i,r);return s},R.prototype.renderInlineAsText=function(e,r,t){for(var n=\"\",s=0,o=e.length;s<o;s++)\"text\"===e[s].type?n+=e[s].content:\"image\"===e[s].type?n+=this.renderInlineAsText(e[s].children,r,t):\"softbreak\"===e[s].type&&(n+=\"\\n\");return n},R.prototype.render=function(e,r,t){var n,s,o,i=\"\",a=this.rules;for(n=0,s=e.length;n<s;n++)\"inline\"===(o=e[n].type)?i+=this.renderInline(e[n].children,r,t):void 0!==a[o]?i+=a[e[n].type](e,n,r,t,this):i+=this.renderToken(e,n,r,t);return i};var B=R;function N(){this.__rules__=[],this.__cache__=null}N.prototype.__find__=function(e){for(var r=0;r<this.__rules__.length;r++)if(this.__rules__[r].name===e)return r;return-1},N.prototype.__compile__=function(){var e=this,r=[\"\"];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){r.indexOf(e)<0&&r.push(e)}))})),e.__cache__={},r.forEach((function(r){e.__cache__[r]=[],e.__rules__.forEach((function(t){t.enabled&&(r&&t.alt.indexOf(r)<0||e.__cache__[r].push(t.fn))}))}))},N.prototype.at=function(e,r,t){var n=this.__find__(e),s=t||{};if(-1===n)throw new Error(\"Parser rule not found: \"+e);this.__rules__[n].fn=r,this.__rules__[n].alt=s.alt||[],this.__cache__=null},N.prototype.before=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(s,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.after=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(s+1,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.push=function(e,r,t){var n=t||{};this.__rules__.push({name:e,enabled:!0,fn:r,alt:n.alt||[]}),this.__cache__=null},N.prototype.enable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(r)return;throw new Error(\"Rules manager: invalid rule name \"+e)}this.__rules__[n].enabled=!0,t.push(e)}),this),this.__cache__=null,t},N.prototype.enableOnly=function(e,r){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,r)},N.prototype.disable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(r)return;throw new Error(\"Rules manager: invalid rule name \"+e)}this.__rules__[n].enabled=!1,t.push(e)}),this),this.__cache__=null,t},N.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]};var O=N,P=/\\r\\n?|\\n/g,j=/\\0/g,U=w.arrayReplaceAt;function V(e){return/^<\\/a\\s*>/i.test(e)}var Z=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,$=/\\((c|tm|r)\\)/i,G=/\\((c|tm|r)\\)/gi,H={c:\"\\xa9\",r:\"\\xae\",tm:\"\\u2122\"};function J(e,r){return H[r.toLowerCase()]}function W(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)\"text\"!==(t=e[r]).type||n||(t.content=t.content.replace(G,J)),\"link_open\"===t.type&&\"auto\"===t.info&&n--,\"link_close\"===t.type&&\"auto\"===t.info&&n++}function Y(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)\"text\"!==(t=e[r]).type||n||Z.test(t.content)&&(t.content=t.content.replace(/\\+-/g,\"\\xb1\").replace(/\\.{2,}/g,\"\\u2026\").replace(/([?!])\\u2026/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---(?=[^-]|$)/gm,\"$1\\u2014\").replace(/(^|\\s)--(?=\\s|$)/gm,\"$1\\u2013\").replace(/(^|[^-\\s])--(?=[^-\\s]|$)/gm,\"$1\\u2013\")),\"link_open\"===t.type&&\"auto\"===t.info&&n--,\"link_close\"===t.type&&\"auto\"===t.info&&n++}var K=w.isWhiteSpace,Q=w.isPunctChar,X=w.isMdAsciiPunct,ee=/['\"]/,re=/['\"]/g;function te(e,r,t){return e.slice(0,r)+t+e.slice(r+1)}function ne(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y;for(v=[],t=0;t<e.length;t++){for(n=e[t],c=e[t].level,k=v.length-1;k>=0&&!(v[k].level<=c);k--);if(v.length=k+1,\"text\"===n.type){i=0,a=(s=n.content).length;e:for(;i<a&&(re.lastIndex=i,o=re.exec(s));){if(g=_=!0,i=o.index+1,b=\"'\"===o[0],u=32,o.index-1>=0)u=s.charCodeAt(o.index-1);else for(k=t-1;k>=0&&(\"softbreak\"!==e[k].type&&\"hardbreak\"!==e[k].type);k--)if(e[k].content){u=e[k].content.charCodeAt(e[k].content.length-1);break}if(p=32,i<a)p=s.charCodeAt(i);else for(k=t+1;k<e.length&&(\"softbreak\"!==e[k].type&&\"hardbreak\"!==e[k].type);k++)if(e[k].content){p=e[k].content.charCodeAt(0);break}if(h=X(u)||Q(String.fromCharCode(u)),f=X(p)||Q(String.fromCharCode(p)),d=K(u),(m=K(p))?g=!1:f&&(d||h||(g=!1)),d?_=!1:h&&(m||f||(_=!1)),34===p&&'\"'===o[0]&&u>=48&&u<=57&&(_=g=!1),g&&_&&(g=h,_=f),g||_){if(_)for(k=v.length-1;k>=0&&(l=v[k],!(v[k].level<c));k--)if(l.single===b&&v[k].level===c){l=v[k],b?(C=r.md.options.quotes[2],y=r.md.options.quotes[3]):(C=r.md.options.quotes[0],y=r.md.options.quotes[1]),n.content=te(n.content,o.index,y),e[l.token].content=te(e[l.token].content,l.pos,C),i+=y.length-1,l.token===t&&(i+=C.length-1),a=(s=n.content).length,v.length=k;continue e}g?v.push({token:t,pos:o.index,single:b,level:c}):_&&b&&(n.content=te(n.content,o.index,\"\\u2019\"))}else b&&(n.content=te(n.content,o.index,\"\\u2019\"))}}}}function se(e,r,t){this.type=e,this.tag=r,this.attrs=null,this.map=null,this.nesting=t,this.level=0,this.children=null,this.content=\"\",this.markup=\"\",this.info=\"\",this.meta=null,this.block=!1,this.hidden=!1}se.prototype.attrIndex=function(e){var r,t,n;if(!this.attrs)return-1;for(t=0,n=(r=this.attrs).length;t<n;t++)if(r[t][0]===e)return t;return-1},se.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},se.prototype.attrSet=function(e,r){var t=this.attrIndex(e),n=[e,r];t<0?this.attrPush(n):this.attrs[t]=n},se.prototype.attrGet=function(e){var r=this.attrIndex(e),t=null;return r>=0&&(t=this.attrs[r][1]),t},se.prototype.attrJoin=function(e,r){var t=this.attrIndex(e);t<0?this.attrPush([e,r]):this.attrs[t][1]=this.attrs[t][1]+\" \"+r};var oe=se;function ie(e,r,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=r}ie.prototype.Token=oe;var ae=ie,ce=[[\"normalize\",function(e){var r;r=(r=e.src.replace(P,\"\\n\")).replace(j,\"\\ufffd\"),e.src=r}],[\"block\",function(e){var r;e.inlineMode?((r=new e.Token(\"inline\",\"\",0)).content=e.src,r.map=[0,1],r.children=[],e.tokens.push(r)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}],[\"inline\",function(e){var r,t,n,s=e.tokens;for(t=0,n=s.length;t<n;t++)\"inline\"===(r=s[t]).type&&e.md.inline.parse(r.content,e.md,e.env,r.children)}],[\"linkify\",function(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b=e.tokens;if(e.md.options.linkify)for(t=0,n=b.length;t<n;t++)if(\"inline\"===b[t].type&&e.md.linkify.pretest(b[t].content))for(f=0,r=(s=b[t].children).length-1;r>=0;r--)if(\"link_close\"!==(i=s[r]).type){if(\"html_inline\"===i.type&&(k=i.content,/^<a[>\\s]/i.test(k)&&f>0&&f--,V(i.content)&&f++),!(f>0)&&\"text\"===i.type&&e.md.linkify.test(i.content)){for(l=i.content,_=e.md.linkify.match(l),a=[],h=i.level,p=0,_.length>0&&0===_[0].index&&r>0&&\"text_special\"===s[r-1].type&&(_=_.slice(1)),c=0;c<_.length;c++)d=_[c].url,m=e.md.normalizeLink(d),e.md.validateLink(m)&&(g=_[c].text,g=_[c].schema?\"mailto:\"!==_[c].schema||/^mailto:/i.test(g)?e.md.normalizeLinkText(g):e.md.normalizeLinkText(\"mailto:\"+g).replace(/^mailto:/,\"\"):e.md.normalizeLinkText(\"http://\"+g).replace(/^http:\\/\\//,\"\"),(u=_[c].index)>p&&((o=new e.Token(\"text\",\"\",0)).content=l.slice(p,u),o.level=h,a.push(o)),(o=new e.Token(\"link_open\",\"a\",1)).attrs=[[\"href\",m]],o.level=h++,o.markup=\"linkify\",o.info=\"auto\",a.push(o),(o=new e.Token(\"text\",\"\",0)).content=g,o.level=h,a.push(o),(o=new e.Token(\"link_close\",\"a\",-1)).level=--h,o.markup=\"linkify\",o.info=\"auto\",a.push(o),p=_[c].lastIndex);p<l.length&&((o=new e.Token(\"text\",\"\",0)).content=l.slice(p),o.level=h,a.push(o)),b[t].children=s=U(s,r,a)}}else for(r--;s[r].level!==i.level&&\"link_open\"!==s[r].type;)r--}],[\"replacements\",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)\"inline\"===e.tokens[r].type&&($.test(e.tokens[r].content)&&W(e.tokens[r].children),Z.test(e.tokens[r].content)&&Y(e.tokens[r].children))}],[\"smartquotes\",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)\"inline\"===e.tokens[r].type&&ee.test(e.tokens[r].content)&&ne(e.tokens[r].children,e)}],[\"text_join\",function(e){var r,t,n,s,o,i,a=e.tokens;for(r=0,t=a.length;r<t;r++)if(\"inline\"===a[r].type){for(o=(n=a[r].children).length,s=0;s<o;s++)\"text_special\"===n[s].type&&(n[s].type=\"text\");for(s=i=0;s<o;s++)\"text\"===n[s].type&&s+1<o&&\"text\"===n[s+1].type?n[s+1].content=n[s].content+n[s+1].content:(s!==i&&(n[i]=n[s]),i++);s!==i&&(n.length=i)}}]];function le(){this.ruler=new O;for(var e=0;e<ce.length;e++)this.ruler.push(ce[e][0],ce[e][1])}le.prototype.process=function(e){var r,t,n;for(r=0,t=(n=this.ruler.getRules(\"\")).length;r<t;r++)n[r](e)},le.prototype.State=ae;var ue=le,pe=w.isSpace;function he(e,r){var t=e.bMarks[r]+e.tShift[r],n=e.eMarks[r];return e.src.slice(t,n)}function fe(e){var r,t=[],n=0,s=e.length,o=!1,i=0,a=\"\";for(r=e.charCodeAt(n);n<s;)124===r&&(o?(a+=e.substring(i,n-1),i=n):(t.push(a+e.substring(i,n)),a=\"\",i=n+1)),o=92===r,n++,r=e.charCodeAt(n);return t.push(a+e.substring(i)),t}var de=w.isSpace,me=w.isSpace,ge=w.isSpace;function _e(e,r){var t,n,s,o;return n=e.bMarks[r]+e.tShift[r],s=e.eMarks[r],42!==(t=e.src.charCodeAt(n++))&&45!==t&&43!==t||n<s&&(o=e.src.charCodeAt(n),!ge(o))?-1:n}function ke(e,r){var t,n=e.bMarks[r]+e.tShift[r],s=n,o=e.eMarks[r];if(s+1>=o)return-1;if((t=e.src.charCodeAt(s++))<48||t>57)return-1;for(;;){if(s>=o)return-1;if(!((t=e.src.charCodeAt(s++))>=48&&t<=57)){if(41===t||46===t)break;return-1}if(s-n>=10)return-1}return s<o&&(t=e.src.charCodeAt(s),!ge(t))?-1:s}var be=w.normalizeReference,ve=w.isSpace,Ce=\"<[A-Za-z][A-Za-z0-9\\\\-]*(?:\\\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\\\s*=\\\\s*(?:[^\\\"'=<>`\\\\x00-\\\\x20]+|'[^']*'|\\\"[^\\\"]*\\\"))?)*\\\\s*\\\\/?>\",ye=\"<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>\",Ae={HTML_TAG_RE:new RegExp(\"^(?:\"+Ce+\"|\"+ye+\"|\\x3c!----\\x3e|\\x3c!--(?:-?[^>-])(?:-?[^-])*--\\x3e|<[?][\\\\s\\\\S]*?[?]>|<![A-Z]+\\\\s+[^>]*>|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>)\"),HTML_OPEN_CLOSE_TAG_RE:new RegExp(\"^(?:\"+Ce+\"|\"+ye+\")\")},xe=Ae.HTML_OPEN_CLOSE_TAG_RE,De=[[/^<(script|pre|style|textarea)(?=(\\s|>|$))/i,/<\\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\\?/,/\\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\\[CDATA\\[/,/\\]\\]>/,!0],[new RegExp(\"^</?(\"+[\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"section\",\"source\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"].join(\"|\")+\")(?=(\\\\s|/?>|$))\",\"i\"),/^$/,!0],[new RegExp(xe.source+\"\\\\s*$\"),/^$/,!1]],we=w.isSpace,Ee=w.isSpace;function qe(e,r,t,n){var s,o,i,a,c,l,u,p;for(this.src=e,this.md=r,this.env=t,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType=\"root\",this.level=0,this.result=\"\",p=!1,i=a=l=u=0,c=(o=this.src).length;a<c;a++){if(s=o.charCodeAt(a),!p){if(Ee(s)){l++,9===s?u+=4-u%4:u++;continue}p=!0}10!==s&&a!==c-1||(10!==s&&a++,this.bMarks.push(i),this.eMarks.push(a),this.tShift.push(l),this.sCount.push(u),this.bsCount.push(0),p=!1,l=0,u=0,i=a+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}qe.prototype.push=function(e,r,t){var n=new oe(e,r,t);return n.block=!0,t<0&&this.level--,n.level=this.level,t>0&&this.level++,this.tokens.push(n),n},qe.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},qe.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;e<r&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},qe.prototype.skipSpaces=function(e){for(var r,t=this.src.length;e<t&&(r=this.src.charCodeAt(e),Ee(r));e++);return e},qe.prototype.skipSpacesBack=function(e,r){if(e<=r)return e;for(;e>r;)if(!Ee(this.src.charCodeAt(--e)))return e+1;return e},qe.prototype.skipChars=function(e,r){for(var t=this.src.length;e<t&&this.src.charCodeAt(e)===r;e++);return e},qe.prototype.skipCharsBack=function(e,r,t){if(e<=t)return e;for(;e>t;)if(r!==this.src.charCodeAt(--e))return e+1;return e},qe.prototype.getLines=function(e,r,t,n){var s,o,i,a,c,l,u,p=e;if(e>=r)return\"\";for(l=new Array(r-e),s=0;p<r;p++,s++){for(o=0,u=a=this.bMarks[p],c=p+1<r||n?this.eMarks[p]+1:this.eMarks[p];a<c&&o<t;){if(i=this.src.charCodeAt(a),Ee(i))9===i?o+=4-(o+this.bsCount[p])%4:o++;else{if(!(a-u<this.tShift[p]))break;o++}a++}l[s]=o>t?new Array(o-t+1).join(\" \")+this.src.slice(a,c):this.src.slice(a,c)}return l.join(\"\")},qe.prototype.Token=oe;var Se=qe,Fe=[[\"table\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C;if(r+2>t)return!1;if(l=r+1,e.sCount[l]<e.blkIndent)return!1;if(e.sCount[l]-e.blkIndent>=4)return!1;if((i=e.bMarks[l]+e.tShift[l])>=e.eMarks[l])return!1;if(124!==(v=e.src.charCodeAt(i++))&&45!==v&&58!==v)return!1;if(i>=e.eMarks[l])return!1;if(124!==(C=e.src.charCodeAt(i++))&&45!==C&&58!==C&&!pe(C))return!1;if(45===v&&pe(C))return!1;for(;i<e.eMarks[l];){if(124!==(s=e.src.charCodeAt(i))&&45!==s&&58!==s&&!pe(s))return!1;i++}for(u=(o=he(e,r+1)).split(\"|\"),f=[],a=0;a<u.length;a++){if(!(d=u[a].trim())){if(0===a||a===u.length-1)continue;return!1}if(!/^:?-+:?$/.test(d))return!1;58===d.charCodeAt(d.length-1)?f.push(58===d.charCodeAt(0)?\"center\":\"right\"):58===d.charCodeAt(0)?f.push(\"left\"):f.push(\"\")}if(-1===(o=he(e,r).trim()).indexOf(\"|\"))return!1;if(e.sCount[r]-e.blkIndent>=4)return!1;if((u=fe(o)).length&&\"\"===u[0]&&u.shift(),u.length&&\"\"===u[u.length-1]&&u.pop(),0===(p=u.length)||p!==f.length)return!1;if(n)return!0;for(_=e.parentType,e.parentType=\"table\",b=e.md.block.ruler.getRules(\"blockquote\"),(h=e.push(\"table_open\",\"table\",1)).map=m=[r,0],(h=e.push(\"thead_open\",\"thead\",1)).map=[r,r+1],(h=e.push(\"tr_open\",\"tr\",1)).map=[r,r+1],a=0;a<u.length;a++)h=e.push(\"th_open\",\"th\",1),f[a]&&(h.attrs=[[\"style\",\"text-align:\"+f[a]]]),(h=e.push(\"inline\",\"\",0)).content=u[a].trim(),h.children=[],h=e.push(\"th_close\",\"th\",-1);for(h=e.push(\"tr_close\",\"tr\",-1),h=e.push(\"thead_close\",\"thead\",-1),l=r+2;l<t&&!(e.sCount[l]<e.blkIndent);l++){for(k=!1,a=0,c=b.length;a<c;a++)if(b[a](e,l,t,!0)){k=!0;break}if(k)break;if(!(o=he(e,l).trim()))break;if(e.sCount[l]-e.blkIndent>=4)break;for((u=fe(o)).length&&\"\"===u[0]&&u.shift(),u.length&&\"\"===u[u.length-1]&&u.pop(),l===r+2&&((h=e.push(\"tbody_open\",\"tbody\",1)).map=g=[r+2,0]),(h=e.push(\"tr_open\",\"tr\",1)).map=[l,l+1],a=0;a<p;a++)h=e.push(\"td_open\",\"td\",1),f[a]&&(h.attrs=[[\"style\",\"text-align:\"+f[a]]]),(h=e.push(\"inline\",\"\",0)).content=u[a]?u[a].trim():\"\",h.children=[],h=e.push(\"td_close\",\"td\",-1);h=e.push(\"tr_close\",\"tr\",-1)}return g&&(h=e.push(\"tbody_close\",\"tbody\",-1),g[1]=l),h=e.push(\"table_close\",\"table\",-1),m[1]=l,e.parentType=_,e.line=l,!0},[\"paragraph\",\"reference\"]],[\"code\",function(e,r,t){var n,s,o;if(e.sCount[r]-e.blkIndent<4)return!1;for(s=n=r+1;n<t;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;s=++n}return e.line=s,(o=e.push(\"code_block\",\"code\",0)).content=e.getLines(r,s,4+e.blkIndent,!1)+\"\\n\",o.map=[r,e.line],!0}],[\"fence\",function(e,r,t,n){var s,o,i,a,c,l,u,p=!1,h=e.bMarks[r]+e.tShift[r],f=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(h+3>f)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(c=h,(o=(h=e.skipChars(h,s))-c)<3)return!1;if(u=e.src.slice(c,h),i=e.src.slice(h,f),96===s&&i.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=r;!(++a>=t)&&!((h=c=e.bMarks[a]+e.tShift[a])<(f=e.eMarks[a])&&e.sCount[a]<e.blkIndent);)if(e.src.charCodeAt(h)===s&&!(e.sCount[a]-e.blkIndent>=4||(h=e.skipChars(h,s))-c<o||(h=e.skipSpaces(h))<f)){p=!0;break}return o=e.sCount[r],e.line=a+(p?1:0),(l=e.push(\"fence\",\"code\",0)).info=i,l.content=e.getLines(r+1,a,o,!0),l.markup=u,l.map=[r,e.line],!0},[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"blockquote\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x=e.lineMax,D=e.bMarks[r]+e.tShift[r],w=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(n)return!0;for(a=h=e.sCount[r]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[r]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f=[e.bMarks[r]],e.bMarks[r]=D;D<w&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[r]+(s?1:0))%4:h++,D++;for(d=[e.bsCount[r]],e.bsCount[r]=e.sCount[r]+1+(b?1:0),l=D>=w,_=[e.sCount[r]],e.sCount[r]=h-a,k=[e.tShift[r]],e.tShift[r]=D-e.bMarks[r],C=e.md.block.ruler.getRules(\"blockquote\"),g=e.parentType,e.parentType=\"blockquote\",p=r+1;p<t&&(A=e.sCount[p]<e.blkIndent,!((D=e.bMarks[p]+e.tShift[p])>=(w=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(D++)||A){if(l)break;for(v=!1,i=0,c=C.length;i<c;i++)if(C[i](e,p,t,!0)){v=!0;break}if(v){e.lineMax=p,0!==e.blkIndent&&(f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]-=e.blkIndent);break}f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]=-1}else{for(a=h=e.sCount[p]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[p]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f.push(e.bMarks[p]),e.bMarks[p]=D;D<w&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[p]+(s?1:0))%4:h++,D++;l=D>=w,d.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(b?1:0),_.push(e.sCount[p]),e.sCount[p]=h-a,k.push(e.tShift[p]),e.tShift[p]=D-e.bMarks[p]}for(m=e.blkIndent,e.blkIndent=0,(y=e.push(\"blockquote_open\",\"blockquote\",1)).markup=\">\",y.map=u=[r,0],e.md.block.tokenize(e,r,p),(y=e.push(\"blockquote_close\",\"blockquote\",-1)).markup=\">\",e.lineMax=x,e.parentType=g,u[1]=e.line,i=0;i<k.length;i++)e.bMarks[i+r]=f[i],e.tShift[i+r]=k[i],e.sCount[i+r]=_[i],e.bsCount[i+r]=d[i];return e.blkIndent=m,!0},[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"hr\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(42!==(s=e.src.charCodeAt(c++))&&45!==s&&95!==s)return!1;for(o=1;c<l;){if((i=e.src.charCodeAt(c++))!==s&&!me(i))return!1;i===s&&o++}return!(o<3)&&(n||(e.line=r+1,(a=e.push(\"hr\",\"hr\",0)).map=[r,e.line],a.markup=Array(o+1).join(String.fromCharCode(s))),!0)},[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"list\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x,D,w,E,q,S,F,L,z=!1,T=!0;if(e.sCount[r]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[r]-e.listIndent>=4&&e.sCount[r]<e.blkIndent)return!1;if(n&&\"paragraph\"===e.parentType&&e.sCount[r]>=e.blkIndent&&(z=!0),(w=ke(e,r))>=0){if(u=!0,q=e.bMarks[r]+e.tShift[r],g=Number(e.src.slice(q,w-1)),z&&1!==g)return!1}else{if(!((w=_e(e,r))>=0))return!1;u=!1}if(z&&e.skipSpaces(w)>=e.eMarks[r])return!1;if(m=e.src.charCodeAt(w-1),n)return!0;for(d=e.tokens.length,u?(L=e.push(\"ordered_list_open\",\"ol\",1),1!==g&&(L.attrs=[[\"start\",g]])):L=e.push(\"bullet_list_open\",\"ul\",1),L.map=f=[r,0],L.markup=String.fromCharCode(m),k=r,E=!1,F=e.md.block.ruler.getRules(\"list\"),C=e.parentType,e.parentType=\"list\";k<t;){for(D=w,_=e.eMarks[k],l=b=e.sCount[k]+w-(e.bMarks[r]+e.tShift[r]);D<_;){if(9===(s=e.src.charCodeAt(D)))b+=4-(b+e.bsCount[k])%4;else{if(32!==s)break;b++}D++}if((c=(o=D)>=_?1:b-l)>4&&(c=1),a=l+c,(L=e.push(\"list_item_open\",\"li\",1)).markup=String.fromCharCode(m),L.map=p=[r,0],u&&(L.info=e.src.slice(q,w-1)),x=e.tight,A=e.tShift[r],y=e.sCount[r],v=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=a,e.tight=!0,e.tShift[r]=o-e.bMarks[r],e.sCount[r]=b,o>=_&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,r,t,!0),e.tight&&!E||(T=!1),E=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[r]=A,e.sCount[r]=y,e.tight=x,(L=e.push(\"list_item_close\",\"li\",-1)).markup=String.fromCharCode(m),k=r=e.line,p[1]=k,o=e.bMarks[r],k>=t)break;if(e.sCount[k]<e.blkIndent)break;if(e.sCount[r]-e.blkIndent>=4)break;for(S=!1,i=0,h=F.length;i<h;i++)if(F[i](e,k,t,!0)){S=!0;break}if(S)break;if(u){if((w=ke(e,k))<0)break;q=e.bMarks[k]+e.tShift[k]}else if((w=_e(e,k))<0)break;if(m!==e.src.charCodeAt(w-1))break}return(L=u?e.push(\"ordered_list_close\",\"ol\",-1):e.push(\"bullet_list_close\",\"ul\",-1)).markup=String.fromCharCode(m),f[1]=k,e.line=k,e.parentType=C,T&&function(e,r){var t,n,s=e.level+2;for(t=r+2,n=e.tokens.length-2;t<n;t++)e.tokens[t].level===s&&\"paragraph_open\"===e.tokens[t].type&&(e.tokens[t+2].hidden=!0,e.tokens[t].hidden=!0,t+=2)}(e,d),!0},[\"paragraph\",\"reference\",\"blockquote\"]],[\"reference\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v=0,C=e.bMarks[r]+e.tShift[r],y=e.eMarks[r],A=r+1;if(e.sCount[r]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(C))return!1;for(;++C<y;)if(93===e.src.charCodeAt(C)&&92!==e.src.charCodeAt(C-1)){if(C+1===y)return!1;if(58!==e.src.charCodeAt(C+1))return!1;break}for(a=e.lineMax,k=e.md.block.ruler.getRules(\"reference\"),f=e.parentType,e.parentType=\"reference\";A<a&&!e.isEmpty(A);A++)if(!(e.sCount[A]-e.blkIndent>3||e.sCount[A]<0)){for(_=!1,l=0,u=k.length;l<u;l++)if(k[l](e,A,a,!0)){_=!0;break}if(_)break}for(y=(g=e.getLines(r,A,e.blkIndent,!1).trim()).length,C=1;C<y;C++){if(91===(s=g.charCodeAt(C)))return!1;if(93===s){h=C;break}(10===s||92===s&&++C<y&&10===g.charCodeAt(C))&&v++}if(h<0||58!==g.charCodeAt(h+1))return!1;for(C=h+2;C<y;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;if(!(d=e.md.helpers.parseLinkDestination(g,C,y)).ok)return!1;if(c=e.md.normalizeLink(d.str),!e.md.validateLink(c))return!1;for(o=C=d.pos,i=v+=d.lines,m=C;C<y;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;for(d=e.md.helpers.parseLinkTitle(g,C,y),C<y&&m!==C&&d.ok?(b=d.str,C=d.pos,v+=d.lines):(b=\"\",C=o,v=i);C<y&&(s=g.charCodeAt(C),ve(s));)C++;if(C<y&&10!==g.charCodeAt(C)&&b)for(b=\"\",C=o,v=i;C<y&&(s=g.charCodeAt(C),ve(s));)C++;return!(C<y&&10!==g.charCodeAt(C))&&(!!(p=be(g.slice(1,h)))&&(n||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[p]&&(e.env.references[p]={title:b,href:c}),e.parentType=f,e.line=r+v+1),!0))}],[\"html_block\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(a=e.src.slice(c,l),s=0;s<De.length&&!De[s][0].test(a);s++);if(s===De.length)return!1;if(n)return De[s][2];if(o=r+1,!De[s][1].test(a))for(;o<t&&!(e.sCount[o]<e.blkIndent);o++)if(c=e.bMarks[o]+e.tShift[o],l=e.eMarks[o],a=e.src.slice(c,l),De[s][1].test(a)){0!==a.length&&o++;break}return e.line=o,(i=e.push(\"html_block\",\"\",0)).map=[r,o],i.content=e.getLines(r,o,e.blkIndent,!0),!0},[\"paragraph\",\"reference\",\"blockquote\"]],[\"heading\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(35!==(s=e.src.charCodeAt(c))||c>=l)return!1;for(o=1,s=e.src.charCodeAt(++c);35===s&&c<l&&o<=6;)o++,s=e.src.charCodeAt(++c);return!(o>6||c<l&&!we(s))&&(n||(l=e.skipSpacesBack(l,c),(i=e.skipCharsBack(l,35,c))>c&&we(e.src.charCodeAt(i-1))&&(l=i),e.line=r+1,(a=e.push(\"heading_open\",\"h\"+String(o),1)).markup=\"########\".slice(0,o),a.map=[r,e.line],(a=e.push(\"inline\",\"\",0)).content=e.src.slice(c,l).trim(),a.map=[r,e.line],a.children=[],(a=e.push(\"heading_close\",\"h\"+String(o),-1)).markup=\"########\".slice(0,o)),!0)},[\"paragraph\",\"reference\",\"blockquote\"]],[\"lheading\",function(e,r,t){var n,s,o,i,a,c,l,u,p,h,f=r+1,d=e.md.block.ruler.getRules(\"paragraph\");if(e.sCount[r]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType=\"paragraph\";f<t&&!e.isEmpty(f);f++)if(!(e.sCount[f]-e.blkIndent>3)){if(e.sCount[f]>=e.blkIndent&&(c=e.bMarks[f]+e.tShift[f])<(l=e.eMarks[f])&&(45===(p=e.src.charCodeAt(c))||61===p)&&(c=e.skipChars(c,p),(c=e.skipSpaces(c))>=l)){u=61===p?1:2;break}if(!(e.sCount[f]<0)){for(s=!1,o=0,i=d.length;o<i;o++)if(d[o](e,f,t,!0)){s=!0;break}if(s)break}}return!!u&&(n=e.getLines(r,f,e.blkIndent,!1).trim(),e.line=f+1,(a=e.push(\"heading_open\",\"h\"+String(u),1)).markup=String.fromCharCode(p),a.map=[r,e.line],(a=e.push(\"inline\",\"\",0)).content=n,a.map=[r,e.line-1],a.children=[],(a=e.push(\"heading_close\",\"h\"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=h,!0)}],[\"paragraph\",function(e,r){var t,n,s,o,i,a,c=r+1,l=e.md.block.ruler.getRules(\"paragraph\"),u=e.lineMax;for(a=e.parentType,e.parentType=\"paragraph\";c<u&&!e.isEmpty(c);c++)if(!(e.sCount[c]-e.blkIndent>3||e.sCount[c]<0)){for(n=!1,s=0,o=l.length;s<o;s++)if(l[s](e,c,u,!0)){n=!0;break}if(n)break}return t=e.getLines(r,c,e.blkIndent,!1).trim(),e.line=c,(i=e.push(\"paragraph_open\",\"p\",1)).map=[r,e.line],(i=e.push(\"inline\",\"\",0)).content=t,i.map=[r,e.line],i.children=[],i=e.push(\"paragraph_close\",\"p\",-1),e.parentType=a,!0}]];function Le(){this.ruler=new O;for(var e=0;e<Fe.length;e++)this.ruler.push(Fe[e][0],Fe[e][1],{alt:(Fe[e][2]||[]).slice()})}Le.prototype.tokenize=function(e,r,t){for(var n,s=this.ruler.getRules(\"\"),o=s.length,i=r,a=!1,c=e.md.options.maxNesting;i<t&&(e.line=i=e.skipEmptyLines(i),!(i>=t))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=c){e.line=t;break}for(n=0;n<o&&!s[n](e,i,t,!1);n++);e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<t&&e.isEmpty(i)&&(a=!0,i++,e.line=i)}},Le.prototype.parse=function(e,r,t,n){var s;e&&(s=new this.State(e,r,t,n),this.tokenize(s,s.line,s.lineMax))},Le.prototype.State=Se;var ze=Le;function Te(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}for(var Ie=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i,Me=w.isSpace,Re=w.isSpace,Be=[],Ne=0;Ne<256;Ne++)Be.push(0);\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach((function(e){Be[e.charCodeAt(0)]=1}));function Oe(e,r){var t,n,s,o,i,a=[],c=r.length;for(t=0;t<c;t++)126===(s=r[t]).marker&&-1!==s.end&&(o=r[s.end],(i=e.tokens[s.token]).type=\"s_open\",i.tag=\"s\",i.nesting=1,i.markup=\"~~\",i.content=\"\",(i=e.tokens[o.token]).type=\"s_close\",i.tag=\"s\",i.nesting=-1,i.markup=\"~~\",i.content=\"\",\"text\"===e.tokens[o.token-1].type&&\"~\"===e.tokens[o.token-1].content&&a.push(o.token-1));for(;a.length;){for(n=(t=a.pop())+1;n<e.tokens.length&&\"s_close\"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}var Pe={tokenize:function(e,r){var t,n,s,o,i=e.pos,a=e.src.charCodeAt(i);if(r)return!1;if(126!==a)return!1;if(s=(n=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(a),s<2)return!1;for(s%2&&(e.push(\"text\",\"\",0).content=o,s--),t=0;t<s;t+=2)e.push(\"text\",\"\",0).content=o+o,e.delimiters.push({marker:a,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(Oe(e,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&Oe(e,t[r].delimiters)}};function je(e,r){var t,n,s,o,i,a;for(t=r.length-1;t>=0;t--)95!==(n=r[t]).marker&&42!==n.marker||-1!==n.end&&(s=r[n.end],a=t>0&&r[t-1].end===n.end+1&&r[t-1].marker===n.marker&&r[t-1].token===n.token-1&&r[n.end+1].token===s.token+1,i=String.fromCharCode(n.marker),(o=e.tokens[n.token]).type=a?\"strong_open\":\"em_open\",o.tag=a?\"strong\":\"em\",o.nesting=1,o.markup=a?i+i:i,o.content=\"\",(o=e.tokens[s.token]).type=a?\"strong_close\":\"em_close\",o.tag=a?\"strong\":\"em\",o.nesting=-1,o.markup=a?i+i:i,o.content=\"\",a&&(e.tokens[r[t-1].token].content=\"\",e.tokens[r[n.end+1].token].content=\"\",t--))}var Ue={tokenize:function(e,r){var t,n,s=e.pos,o=e.src.charCodeAt(s);if(r)return!1;if(95!==o&&42!==o)return!1;for(n=e.scanDelims(e.pos,42===o),t=0;t<n.length;t++)e.push(\"text\",\"\",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(je(e,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&je(e,t[r].delimiters)}},Ve=w.normalizeReference,Ze=w.isSpace,$e=w.normalizeReference,Ge=w.isSpace,He=/^([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Je=/^([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)$/,We=Ae.HTML_TAG_RE;var Ye=w.has,Ke=w.isValidEntityCode,Qe=w.fromCodePoint,Xe=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,er=/^&([a-z][a-z0-9]{1,31});/i;function rr(e,r){var t,n,s,o,i,a,c,l,u={},p=r.length;if(p){var h=0,f=-2,d=[];for(t=0;t<p;t++)if(s=r[t],d.push(0),r[h].marker===s.marker&&f===s.token-1||(h=t),f=s.token,s.length=s.length||0,s.close){for(u.hasOwnProperty(s.marker)||(u[s.marker]=[-1,-1,-1,-1,-1,-1]),i=u[s.marker][(s.open?3:0)+s.length%3],a=n=h-d[h]-1;n>i;n-=d[n]+1)if((o=r[n]).marker===s.marker&&o.open&&o.end<0&&(c=!1,(o.close||s.open)&&(o.length+s.length)%3==0&&(o.length%3==0&&s.length%3==0||(c=!0)),!c)){l=n>0&&!r[n-1].open?d[n-1]+1:0,d[t]=t-n+l,d[n]=l,s.open=!1,o.end=t,o.close=!1,a=-1,f=-2;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}}var tr=w.isWhiteSpace,nr=w.isPunctChar,sr=w.isMdAsciiPunct;function or(e,r,t,n){this.src=e,this.env=t,this.md=r,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}or.prototype.pushPending=function(){var e=new oe(\"text\",\"\",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending=\"\",e},or.prototype.push=function(e,r,t){this.pending&&this.pushPending();var n=new oe(e,r,t),s=null;return t<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,t>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},or.prototype.scanDelims=function(e,r){var t,n,s,o,i,a,c,l,u,p=e,h=!0,f=!0,d=this.posMax,m=this.src.charCodeAt(e);for(t=e>0?this.src.charCodeAt(e-1):32;p<d&&this.src.charCodeAt(p)===m;)p++;return s=p-e,n=p<d?this.src.charCodeAt(p):32,c=sr(t)||nr(String.fromCharCode(t)),u=sr(n)||nr(String.fromCharCode(n)),a=tr(t),(l=tr(n))?h=!1:u&&(a||c||(h=!1)),a?f=!1:c&&(l||u||(f=!1)),r?(o=h,i=f):(o=h&&(!f||c),i=f&&(!h||u)),{can_open:o,can_close:i,length:s}},or.prototype.Token=oe;var ir=or,ar=[[\"text\",function(e,r){for(var t=e.pos;t<e.posMax&&!Te(e.src.charCodeAt(t));)t++;return t!==e.pos&&(r||(e.pending+=e.src.slice(e.pos,t)),e.pos=t,!0)}],[\"linkify\",function(e,r){var t,n,s,o,i,a,c;return!!e.md.options.linkify&&(!(e.linkLevel>0)&&(!((t=e.pos)+3>e.posMax)&&(58===e.src.charCodeAt(t)&&(47===e.src.charCodeAt(t+1)&&(47===e.src.charCodeAt(t+2)&&(!!(n=e.pending.match(Ie))&&(s=n[1],!!(o=e.md.linkify.matchAtStart(e.src.slice(t-s.length)))&&(i=(i=o.url).replace(/\\*+$/,\"\"),a=e.md.normalizeLink(i),!!e.md.validateLink(a)&&(r||(e.pending=e.pending.slice(0,-s.length),(c=e.push(\"link_open\",\"a\",1)).attrs=[[\"href\",a]],c.markup=\"linkify\",c.info=\"auto\",(c=e.push(\"text\",\"\",0)).content=e.md.normalizeLinkText(i),(c=e.push(\"link_close\",\"a\",-1)).markup=\"linkify\",c.info=\"auto\"),e.pos+=i.length-s.length,!0)))))))))}],[\"newline\",function(e,r){var t,n,s,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(t=e.pending.length-1,n=e.posMax,!r)if(t>=0&&32===e.pending.charCodeAt(t))if(t>=1&&32===e.pending.charCodeAt(t-1)){for(s=t-1;s>=1&&32===e.pending.charCodeAt(s-1);)s--;e.pending=e.pending.slice(0,s),e.push(\"hardbreak\",\"br\",0)}else e.pending=e.pending.slice(0,-1),e.push(\"softbreak\",\"br\",0);else e.push(\"softbreak\",\"br\",0);for(o++;o<n&&Me(e.src.charCodeAt(o));)o++;return e.pos=o,!0}],[\"escape\",function(e,r){var t,n,s,o,i,a=e.pos,c=e.posMax;if(92!==e.src.charCodeAt(a))return!1;if(++a>=c)return!1;if(10===(t=e.src.charCodeAt(a))){for(r||e.push(\"hardbreak\",\"br\",0),a++;a<c&&(t=e.src.charCodeAt(a),Re(t));)a++;return e.pos=a,!0}return o=e.src[a],t>=55296&&t<=56319&&a+1<c&&(n=e.src.charCodeAt(a+1))>=56320&&n<=57343&&(o+=e.src[a+1],a++),s=\"\\\\\"+o,r||(i=e.push(\"text_special\",\"\",0),t<256&&0!==Be[t]?i.content=o:i.content=s,i.markup=s,i.info=\"escape\"),e.pos=a+1,!0}],[\"backticks\",function(e,r){var t,n,s,o,i,a,c,l,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(t=u,u++,n=e.posMax;u<n&&96===e.src.charCodeAt(u);)u++;if(c=(s=e.src.slice(t,u)).length,e.backticksScanned&&(e.backticks[c]||0)<=t)return r||(e.pending+=s),e.pos+=c,!0;for(i=a=u;-1!==(i=e.src.indexOf(\"`\",a));){for(a=i+1;a<n&&96===e.src.charCodeAt(a);)a++;if((l=a-i)===c)return r||((o=e.push(\"code_inline\",\"code\",0)).markup=s,o.content=e.src.slice(u,i).replace(/\\n/g,\" \").replace(/^ (.+) $/,\"$1\")),e.pos=a,!0;e.backticks[l]=i}return e.backticksScanned=!0,r||(e.pending+=s),e.pos+=c,!0}],[\"strikethrough\",Pe.tokenize],[\"emphasis\",Ue.tokenize],[\"link\",function(e,r){var t,n,s,o,i,a,c,l,u=\"\",p=\"\",h=e.pos,f=e.posMax,d=e.pos,m=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(i=e.pos+1,(o=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((a=o+1)<f&&40===e.src.charCodeAt(a)){for(m=!1,a++;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(a>=f)return!1;if(d=a,(c=e.md.helpers.parseLinkDestination(e.src,a,e.posMax)).ok){for(u=e.md.normalizeLink(c.str),e.md.validateLink(u)?a=c.pos:u=\"\",d=a;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(c=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a<f&&d!==a&&c.ok)for(p=c.str,a=c.pos;a<f&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);}(a>=f||41!==e.src.charCodeAt(a))&&(m=!0),a++}if(m){if(void 0===e.env.references)return!1;if(a<f&&91===e.src.charCodeAt(a)?(d=a+1,(a=e.md.helpers.parseLinkLabel(e,a))>=0?s=e.src.slice(d,a++):a=o+1):a=o+1,s||(s=e.src.slice(i,o)),!(l=e.env.references[Ve(s)]))return e.pos=h,!1;u=l.href,p=l.title}return r||(e.pos=i,e.posMax=o,e.push(\"link_open\",\"a\",1).attrs=t=[[\"href\",u]],p&&t.push([\"title\",p]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push(\"link_close\",\"a\",-1)),e.pos=a,e.posMax=f,!0}],[\"image\",function(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m=\"\",g=e.pos,_=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(a=e.pos+2,(i=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((c=i+1)<_&&40===e.src.charCodeAt(c)){for(c++;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(c>=_)return!1;for(d=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(m=e.md.normalizeLink(u.str),e.md.validateLink(m)?c=u.pos:m=\"\"),d=c;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<_&&d!==c&&u.ok)for(p=u.str,c=u.pos;c<_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);else p=\"\";if(c>=_||41!==e.src.charCodeAt(c))return e.pos=g,!1;c++}else{if(void 0===e.env.references)return!1;if(c<_&&91===e.src.charCodeAt(c)?(d=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(d,c++):c=i+1):c=i+1,o||(o=e.src.slice(a,i)),!(l=e.env.references[$e(o)]))return e.pos=g,!1;m=l.href,p=l.title}return r||(s=e.src.slice(a,i),e.md.inline.parse(s,e.md,e.env,f=[]),(h=e.push(\"image\",\"img\",0)).attrs=t=[[\"src\",m],[\"alt\",\"\"]],h.children=f,h.content=s,p&&t.push([\"title\",p])),e.pos=c,e.posMax=_,!0}],[\"autolink\",function(e,r){var t,n,s,o,i,a,c=e.pos;if(60!==e.src.charCodeAt(c))return!1;for(i=e.pos,a=e.posMax;;){if(++c>=a)return!1;if(60===(o=e.src.charCodeAt(c)))return!1;if(62===o)break}return t=e.src.slice(i+1,c),Je.test(t)?(n=e.md.normalizeLink(t),!!e.md.validateLink(n)&&(r||((s=e.push(\"link_open\",\"a\",1)).attrs=[[\"href\",n]],s.markup=\"autolink\",s.info=\"auto\",(s=e.push(\"text\",\"\",0)).content=e.md.normalizeLinkText(t),(s=e.push(\"link_close\",\"a\",-1)).markup=\"autolink\",s.info=\"auto\"),e.pos+=t.length+2,!0)):!!He.test(t)&&(n=e.md.normalizeLink(\"mailto:\"+t),!!e.md.validateLink(n)&&(r||((s=e.push(\"link_open\",\"a\",1)).attrs=[[\"href\",n]],s.markup=\"autolink\",s.info=\"auto\",(s=e.push(\"text\",\"\",0)).content=e.md.normalizeLinkText(t),(s=e.push(\"link_close\",\"a\",-1)).markup=\"autolink\",s.info=\"auto\"),e.pos+=t.length+2,!0))}],[\"html_inline\",function(e,r){var t,n,s,o,i,a=e.pos;return!!e.md.options.html&&(s=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=s)&&(!(33!==(t=e.src.charCodeAt(a+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r<=122}(t))&&(!!(n=e.src.slice(a).match(We))&&(r||((o=e.push(\"html_inline\",\"\",0)).content=e.src.slice(a,a+n[0].length),i=o.content,/^<a[>\\s]/i.test(i)&&e.linkLevel++,function(e){return/^<\\/a\\s*>/i.test(e)}(o.content)&&e.linkLevel--),e.pos+=n[0].length,!0))))}],[\"entity\",function(e,t){var n,s,o,i=e.pos,a=e.posMax;if(38!==e.src.charCodeAt(i))return!1;if(i+1>=a)return!1;if(35===e.src.charCodeAt(i+1)){if(s=e.src.slice(i).match(Xe))return t||(n=\"x\"===s[1][0].toLowerCase()?parseInt(s[1].slice(1),16):parseInt(s[1],10),(o=e.push(\"text_special\",\"\",0)).content=Ke(n)?Qe(n):Qe(65533),o.markup=s[0],o.info=\"entity\"),e.pos+=s[0].length,!0}else if((s=e.src.slice(i).match(er))&&Ye(r,s[1]))return t||((o=e.push(\"text_special\",\"\",0)).content=r[s[1]],o.markup=s[0],o.info=\"entity\"),e.pos+=s[0].length,!0;return!1}]],cr=[[\"balance_pairs\",function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(rr(0,e.delimiters),r=0;r<n;r++)t[r]&&t[r].delimiters&&rr(0,t[r].delimiters)}],[\"strikethrough\",Pe.postProcess],[\"emphasis\",Ue.postProcess],[\"fragments_join\",function(e){var r,t,n=0,s=e.tokens,o=e.tokens.length;for(r=t=0;r<o;r++)s[r].nesting<0&&n--,s[r].level=n,s[r].nesting>0&&n++,\"text\"===s[r].type&&r+1<o&&\"text\"===s[r+1].type?s[r+1].content=s[r].content+s[r+1].content:(r!==t&&(s[t]=s[r]),t++);r!==t&&(s.length=t)}]];function lr(){var e;for(this.ruler=new O,e=0;e<ar.length;e++)this.ruler.push(ar[e][0],ar[e][1]);for(this.ruler2=new O,e=0;e<cr.length;e++)this.ruler2.push(cr[e][0],cr[e][1])}lr.prototype.skipToken=function(e){var r,t,n=e.pos,s=this.ruler.getRules(\"\"),o=s.length,i=e.md.options.maxNesting,a=e.cache;if(void 0===a[n]){if(e.level<i)for(t=0;t<o&&(e.level++,r=s[t](e,!0),e.level--,!r);t++);else e.pos=e.posMax;r||e.pos++,a[n]=e.pos}else e.pos=a[n]},lr.prototype.tokenize=function(e){for(var r,t,n=this.ruler.getRules(\"\"),s=n.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(t=0;t<s&&!(r=n[t](e,!1));t++);if(r){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},lr.prototype.parse=function(e,r,t,n){var s,o,i,a=new this.State(e,r,t,n);for(this.tokenize(a),i=(o=this.ruler2.getRules(\"\")).length,s=0;s<i;s++)o[s](a)},lr.prototype.State=ir;var ur=lr;function pr(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){r&&Object.keys(r).forEach((function(t){e[t]=r[t]}))})),e}function hr(e){return Object.prototype.toString.call(e)}function fr(e){return\"[object Function]\"===hr(e)}function dr(e){return e.replace(/[.?*+^$[\\]\\\\(){}|-]/g,\"\\\\$&\")}var mr={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var gr={\"http:\":{validate:function(e,r,t){var n=e.slice(r);return t.re.http||(t.re.http=new RegExp(\"^\\\\/\\\\/\"+t.re.src_auth+t.re.src_host_port_strict+t.re.src_path,\"i\")),t.re.http.test(n)?n.match(t.re.http)[0].length:0}},\"https:\":\"http:\",\"ftp:\":\"http:\",\"//\":{validate:function(e,r,t){var n=e.slice(r);return t.re.no_http||(t.re.no_http=new RegExp(\"^\"+t.re.src_auth+\"(?:localhost|(?:(?:\"+t.re.src_domain+\")\\\\.)+\"+t.re.src_domain_root+\")\"+t.re.src_port+t.re.src_host_terminator+t.re.src_path,\"i\")),t.re.no_http.test(n)?r>=3&&\":\"===e[r-3]||r>=3&&\"/\"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},\"mailto:\":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp(\"^\"+t.re.src_email_name+\"@\"+t.re.src_host_strict,\"i\")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},_r=\"biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\\u0440\\u0444\".split(\"|\");function kr(e){var r=e.re=function(e){var r={};return e=e||{},r.src_Any=y.source,r.src_Cc=A.source,r.src_Z=x.source,r.src_P=t.source,r.src_ZPCc=[r.src_Z,r.src_P,r.src_Cc].join(\"|\"),r.src_ZCc=[r.src_Z,r.src_Cc].join(\"|\"),r.src_pseudo_letter=\"(?:(?![><\\uff5c]|\"+r.src_ZPCc+\")\"+r.src_Any+\")\",r.src_ip4=\"(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\",r.src_auth=\"(?:(?:(?!\"+r.src_ZCc+\"|[@/\\\\[\\\\]()]).)+@)?\",r.src_port=\"(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?\",r.src_host_terminator=\"(?=$|[><\\uff5c]|\"+r.src_ZPCc+\")(?!\"+(e[\"---\"]?\"-(?!--)|\":\"-|\")+\"_|:\\\\d|\\\\.-|\\\\.(?!$|\"+r.src_ZPCc+\"))\",r.src_path=\"(?:[/?#](?:(?!\"+r.src_ZCc+\"|[><\\uff5c]|[()[\\\\]{}.,\\\"'?!\\\\-;]).|\\\\[(?:(?!\"+r.src_ZCc+\"|\\\\]).)*\\\\]|\\\\((?:(?!\"+r.src_ZCc+\"|[)]).)*\\\\)|\\\\{(?:(?!\"+r.src_ZCc+'|[}]).)*\\\\}|\\\\\"(?:(?!'+r.src_ZCc+'|[\"]).)+\\\\\"|\\\\\\'(?:(?!'+r.src_ZCc+\"|[']).)+\\\\'|\\\\'(?=\"+r.src_pseudo_letter+\"|[-])|\\\\.{2,}[a-zA-Z0-9%/&]|\\\\.(?!\"+r.src_ZCc+\"|[.]|$)|\"+(e[\"---\"]?\"\\\\-(?!--(?:[^-]|$))(?:-*)|\":\"\\\\-+|\")+\",(?!\"+r.src_ZCc+\"|$)|;(?!\"+r.src_ZCc+\"|$)|\\\\!+(?!\"+r.src_ZCc+\"|[!]|$)|\\\\?(?!\"+r.src_ZCc+\"|[?]|$))+|\\\\/)?\",r.src_email_name='[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*',r.src_xn=\"xn--[a-z0-9\\\\-]{1,59}\",r.src_domain_root=\"(?:\"+r.src_xn+\"|\"+r.src_pseudo_letter+\"{1,63})\",r.src_domain=\"(?:\"+r.src_xn+\"|(?:\"+r.src_pseudo_letter+\")|(?:\"+r.src_pseudo_letter+\"(?:-|\"+r.src_pseudo_letter+\"){0,61}\"+r.src_pseudo_letter+\"))\",r.src_host=\"(?:(?:(?:(?:\"+r.src_domain+\")\\\\.)*\"+r.src_domain+\"))\",r.tpl_host_fuzzy=\"(?:\"+r.src_ip4+\"|(?:(?:(?:\"+r.src_domain+\")\\\\.)+(?:%TLDS%)))\",r.tpl_host_no_ip_fuzzy=\"(?:(?:(?:\"+r.src_domain+\")\\\\.)+(?:%TLDS%))\",r.src_host_strict=r.src_host+r.src_host_terminator,r.tpl_host_fuzzy_strict=r.tpl_host_fuzzy+r.src_host_terminator,r.src_host_port_strict=r.src_host+r.src_port+r.src_host_terminator,r.tpl_host_port_fuzzy_strict=r.tpl_host_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_port_no_ip_fuzzy_strict=r.tpl_host_no_ip_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_fuzzy_test=\"localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:\"+r.src_ZPCc+\"|>|$))\",r.tpl_email_fuzzy='(^|[><\\uff5c]|\"|\\\\(|'+r.src_ZCc+\")(\"+r.src_email_name+\"@\"+r.tpl_host_fuzzy_strict+\")\",r.tpl_link_fuzzy=\"(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|\"+r.src_ZPCc+\"))((?![$+<=>^`|\\uff5c])\"+r.tpl_host_port_fuzzy_strict+r.src_path+\")\",r.tpl_link_no_ip_fuzzy=\"(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|\"+r.src_ZPCc+\"))((?![$+<=>^`|\\uff5c])\"+r.tpl_host_port_no_ip_fuzzy_strict+r.src_path+\")\",r}(e.__opts__),n=e.__tlds__.slice();function s(e){return e.replace(\"%TLDS%\",r.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push(\"a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]\"),n.push(r.src_xn),r.src_tlds=n.join(\"|\"),r.email_fuzzy=RegExp(s(r.tpl_email_fuzzy),\"i\"),r.link_fuzzy=RegExp(s(r.tpl_link_fuzzy),\"i\"),r.link_no_ip_fuzzy=RegExp(s(r.tpl_link_no_ip_fuzzy),\"i\"),r.host_fuzzy_test=RegExp(s(r.tpl_host_fuzzy_test),\"i\");var o=[];function i(e,r){throw new Error('(LinkifyIt) Invalid schema \"'+e+'\": '+r)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(r){var t=e.__schemas__[r];if(null!==t){var n={validate:null,link:null};if(e.__compiled__[r]=n,\"[object Object]\"===hr(t))return!function(e){return\"[object RegExp]\"===hr(e)}(t.validate)?fr(t.validate)?n.validate=t.validate:i(r,t):n.validate=function(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}(t.validate),void(fr(t.normalize)?n.normalize=t.normalize:t.normalize?i(r,t):n.normalize=function(e,r){r.normalize(e)});!function(e){return\"[object String]\"===hr(e)}(t)?i(r,t):o.push(r)}})),o.forEach((function(r){e.__compiled__[e.__schemas__[r]]&&(e.__compiled__[r].validate=e.__compiled__[e.__schemas__[r]].validate,e.__compiled__[r].normalize=e.__compiled__[e.__schemas__[r]].normalize)})),e.__compiled__[\"\"]={validate:null,normalize:function(e,r){r.normalize(e)}};var a=Object.keys(e.__compiled__).filter((function(r){return r.length>0&&e.__compiled__[r]})).map(dr).join(\"|\");e.re.schema_test=RegExp(\"(^|(?!_)(?:[><\\uff5c]|\"+r.src_ZPCc+\"))(\"+a+\")\",\"i\"),e.re.schema_search=RegExp(\"(^|(?!_)(?:[><\\uff5c]|\"+r.src_ZPCc+\"))(\"+a+\")\",\"ig\"),e.re.schema_at_start=RegExp(\"^\"+e.re.schema_search.source,\"i\"),e.re.pretest=RegExp(\"(\"+e.re.schema_test.source+\")|(\"+e.re.host_fuzzy_test.source+\")|@\",\"i\"),function(e){e.__index__=-1,e.__text_cache__=\"\"}(e)}function br(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function vr(e,r){var t=new br(e,r);return e.__compiled__[t.schema].normalize(t,e),t}function Cr(e,r){if(!(this instanceof Cr))return new Cr(e,r);var t;r||(t=e,Object.keys(t||{}).reduce((function(e,r){return e||mr.hasOwnProperty(r)}),!1)&&(r=e,e={})),this.__opts__=pr({},mr,r),this.__index__=-1,this.__last_index__=-1,this.__schema__=\"\",this.__text_cache__=\"\",this.__schemas__=pr({},gr,e),this.__compiled__={},this.__tlds__=_r,this.__tlds_replaced__=!1,this.re={},kr(this)}Cr.prototype.add=function(e,r){return this.__schemas__[e]=r,kr(this),this},Cr.prototype.set=function(e){return this.__opts__=pr(this.__opts__,e),this},Cr.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,i,a,c;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(r=a.exec(e));)if(s=this.testSchemaAt(e,r[2],a.lastIndex)){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__[\"http:\"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||c<this.__index__)&&null!==(t=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=t.index+t[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__=\"\",this.__index__=o,this.__last_index__=t.index+t[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__[\"mailto:\"]&&e.indexOf(\"@\")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,i=n.index+n[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__=\"mailto:\",this.__index__=o,this.__last_index__=i)),this.__index__>=0},Cr.prototype.pretest=function(e){return this.re.pretest.test(e)},Cr.prototype.testSchemaAt=function(e,r,t){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},Cr.prototype.match=function(e){var r=0,t=[];this.__index__>=0&&this.__text_cache__===e&&(t.push(vr(this,r)),r=this.__last_index__);for(var n=r?e.slice(r):e;this.test(n);)t.push(vr(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},Cr.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;var r=this.re.schema_at_start.exec(e);if(!r)return null;var t=this.testSchemaAt(e,r[2],r[0].length);return t?(this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+t,vr(this,0)):null},Cr.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,r,t){return e!==t[r-1]})).reverse(),kr(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,kr(this),this)},Cr.prototype.normalize=function(e){e.schema||(e.url=\"http://\"+e.url),\"mailto:\"!==e.schema||/^mailto:/i.test(e.url)||(e.url=\"mailto:\"+e.url)},Cr.prototype.onCompile=function(){};var yr=Cr,Ar=2147483647,xr=36,Dr=/^xn--/,wr=/[^\\x20-\\x7E]/,Er=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,qr={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},Sr=Math.floor,Fr=String.fromCharCode;\n/*! https://mths.be/punycode v1.4.1 by @mathias */function Lr(e){throw new RangeError(qr[e])}function zr(e,r){for(var t=e.length,n=[];t--;)n[t]=r(e[t]);return n}function Tr(e,r){var t=e.split(\"@\"),n=\"\";return t.length>1&&(n=t[0]+\"@\",e=t[1]),n+zr((e=e.replace(Er,\".\")).split(\".\"),r).join(\".\")}function Ir(e){for(var r,t,n=[],s=0,o=e.length;s<o;)(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<o?56320==(64512&(t=e.charCodeAt(s++)))?n.push(((1023&r)<<10)+(1023&t)+65536):(n.push(r),s--):n.push(r);return n}function Mr(e){return zr(e,(function(e){var r=\"\";return e>65535&&(r+=Fr((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=Fr(e)})).join(\"\")}function Rr(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function Br(e,r,t){var n=0;for(e=t?Sr(e/700):e>>1,e+=Sr(e/r);e>455;n+=xr)e=Sr(e/35);return Sr(n+36*e/(e+38))}function Nr(e){var r,t,n,s,o,i,a,c,l,u,p,h=[],f=e.length,d=0,m=128,g=72;for((t=e.lastIndexOf(\"-\"))<0&&(t=0),n=0;n<t;++n)e.charCodeAt(n)>=128&&Lr(\"not-basic\"),h.push(e.charCodeAt(n));for(s=t>0?t+1:0;s<f;){for(o=d,i=1,a=xr;s>=f&&Lr(\"invalid-input\"),((c=(p=e.charCodeAt(s++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:xr)>=xr||c>Sr((Ar-d)/i))&&Lr(\"overflow\"),d+=c*i,!(c<(l=a<=g?1:a>=g+26?26:a-g));a+=xr)i>Sr(Ar/(u=xr-l))&&Lr(\"overflow\"),i*=u;g=Br(d-o,r=h.length+1,0==o),Sr(d/r)>Ar-m&&Lr(\"overflow\"),m+=Sr(d/r),d%=r,h.splice(d++,0,m)}return Mr(h)}function Or(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g=[];for(h=(e=Ir(e)).length,r=128,t=0,o=72,i=0;i<h;++i)(p=e[i])<128&&g.push(Fr(p));for(n=s=g.length,s&&g.push(\"-\");n<h;){for(a=Ar,i=0;i<h;++i)(p=e[i])>=r&&p<a&&(a=p);for(a-r>Sr((Ar-t)/(f=n+1))&&Lr(\"overflow\"),t+=(a-r)*f,r=a,i=0;i<h;++i)if((p=e[i])<r&&++t>Ar&&Lr(\"overflow\"),p==r){for(c=t,l=xr;!(c<(u=l<=o?1:l>=o+26?26:l-o));l+=xr)m=c-u,d=xr-u,g.push(Fr(Rr(u+m%d,0))),c=Sr(m/d);g.push(Fr(Rr(c,0))),o=Br(t,f,n==s),t=0,++n}++t,++r}return g.join(\"\")}function Pr(e){return Tr(e,(function(e){return Dr.test(e)?Nr(e.slice(4).toLowerCase()):e}))}function jr(e){return Tr(e,(function(e){return wr.test(e)?\"xn--\"+Or(e):e}))}var Ur=\"1.4.1\",Vr={decode:Ir,encode:Mr},Zr={version:Ur,ucs2:Vr,toASCII:jr,toUnicode:Pr,encode:Or,decode:Nr},$r=e(Object.freeze({__proto__:null,decode:Nr,encode:Or,toUnicode:Pr,toASCII:jr,version:Ur,ucs2:Vr,default:Zr})),Gr={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"\\u201c\\u201d\\u2018\\u2019\",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"\\u201c\\u201d\\u2018\\u2019\",highlight:null,maxNesting:20},components:{core:{rules:[\"normalize\",\"block\",\"inline\",\"text_join\"]},block:{rules:[\"paragraph\"]},inline:{rules:[\"text\"],rules2:[\"balance_pairs\",\"fragments_join\"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"\\u201c\\u201d\\u2018\\u2019\",highlight:null,maxNesting:20},components:{core:{rules:[\"normalize\",\"block\",\"inline\",\"text_join\"]},block:{rules:[\"blockquote\",\"code\",\"fence\",\"heading\",\"hr\",\"html_block\",\"lheading\",\"list\",\"reference\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"html_inline\",\"image\",\"link\",\"newline\",\"text\"],rules2:[\"balance_pairs\",\"emphasis\",\"fragments_join\"]}}}},Hr=/^(vbscript|javascript|file|data):/,Jr=/^data:image\\/(gif|png|jpeg|webp);/;function Wr(e){var r=e.trim().toLowerCase();return!Hr.test(r)||!!Jr.test(r)}var Yr=[\"http:\",\"https:\",\"mailto:\"];function Kr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toASCII(r.hostname)}catch(e){}return C.encode(C.format(r))}function Qr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toUnicode(r.hostname)}catch(e){}return C.decode(C.format(r),C.decode.defaultChars+\"%\")}function Xr(e,r){if(!(this instanceof Xr))return new Xr(e,r);r||w.isString(e)||(r=e||{},e=\"default\"),this.inline=new ur,this.block=new ze,this.core=new ue,this.renderer=new B,this.linkify=new yr,this.validateLink=Wr,this.normalizeLink=Kr,this.normalizeLinkText=Qr,this.utils=w,this.helpers=w.assign({},L),this.options={},this.configure(e),r&&this.set(r)}return Xr.prototype.set=function(e){return w.assign(this.options,e),this},Xr.prototype.configure=function(e){var r,t=this;if(w.isString(e)&&!(e=Gr[r=e]))throw new Error('Wrong `markdown-it` preset \"'+r+'\", check name');if(!e)throw new Error(\"Wrong `markdown-it` preset, can't be empty\");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},Xr.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),[\"core\",\"block\",\"inline\"].forEach((function(r){t=t.concat(this[r].ruler.enable(e,!0))}),this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error(\"MarkdownIt. Failed to enable unknown rule(s): \"+n);return this},Xr.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),[\"core\",\"block\",\"inline\"].forEach((function(r){t=t.concat(this[r].ruler.disable(e,!0))}),this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return t.indexOf(e)<0}));if(n.length&&!r)throw new Error(\"MarkdownIt. Failed to disable unknown rule(s): \"+n);return this},Xr.prototype.use=function(e){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},Xr.prototype.parse=function(e,r){if(\"string\"!=typeof e)throw new Error(\"Input data should be a String\");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},Xr.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},Xr.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},Xr.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)},Xr}));\n","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-deflist.js":{"text":"/*!\n\nmarkdown-it-deflist\nhttps://github.com/markdown-it/markdown-it-deflist\n\n*/\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).markdownitDeflist=e()}}((function(){return function e(t,n,r){function i(f,d){if(!n[f]){if(!t[f]){var s=\"function\"==typeof require&&require;if(!d&&s)return s(f,!0);if(o)return o(f,!0);var u=new Error(\"Cannot find module '\"+f+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var a=n[f]={exports:{}};t[f][0].call(a.exports,(function(e){return i(t[f][1][e]||e)}),a,a.exports,e,t,n,r)}return n[f].exports}for(var o=\"function\"==typeof require&&require,f=0;f<r.length;f++)i(r[f]);return i}({\"/\":[function(e,t,n){\"use strict\";t.exports=function(e){var t=e.utils.isSpace;function n(e,t){var n,r,i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];return i>=o||126!==(r=e.src.charCodeAt(i++))&&58!==r||i===(n=e.skipSpaces(i))||n>=o?-1:i}e.block.ruler.before(\"paragraph\",\"deflist\",(function(e,r,i,o){var f,d,s,u,a,l,p,k,c,h,b,y,m,g,C,I,v,_,w,x;if(o)return!(e.ddIndent<0)&&n(e,r)>=0;if((c=r+1)>=i)return!1;if(e.isEmpty(c)&&++c>=i)return!1;if(e.sCount[c]<e.blkIndent)return!1;if((d=n(e,c))<0)return!1;p=e.tokens.length,w=!0,(x=e.push(\"dl_open\",\"dl\",1)).map=l=[r,0],u=r,s=c;e:for(;;){for(_=!1,(x=e.push(\"dt_open\",\"dt\",1)).map=[u,u],(x=e.push(\"inline\",\"\",0)).map=[u,u],x.content=e.getLines(u,u+1,e.blkIndent,!1).trim(),x.children=[],x=e.push(\"dt_close\",\"dt\",-1);;){for((x=e.push(\"dd_open\",\"dd\",1)).map=a=[c,0],v=d,k=e.eMarks[s],h=e.sCount[s]+d-(e.bMarks[s]+e.tShift[s]);v<k&&(f=e.src.charCodeAt(v),t(f));)9===f?h+=4-h%4:h++,v++;if(d=v,I=e.tight,b=e.ddIndent,y=e.blkIndent,C=e.tShift[s],g=e.sCount[s],m=e.parentType,e.blkIndent=e.ddIndent=e.sCount[s]+2,e.tShift[s]=d-e.bMarks[s],e.sCount[s]=h,e.tight=!0,e.parentType=\"deflist\",e.md.block.tokenize(e,s,i,!0),e.tight&&!_||(w=!1),_=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=C,e.sCount[s]=g,e.tight=I,e.parentType=m,e.blkIndent=y,e.ddIndent=b,x=e.push(\"dd_close\",\"dd\",-1),a[1]=c=e.line,c>=i)break e;if(e.sCount[c]<e.blkIndent)break e;if((d=n(e,c))<0)break;s=c}if(c>=i)break;if(u=c,e.isEmpty(u))break;if(e.sCount[u]<e.blkIndent)break;if((s=u+1)>=i)break;if(e.isEmpty(s)&&s++,s>=i)break;if(e.sCount[s]<e.blkIndent)break;if((d=n(e,s))<0)break}return x=e.push(\"dl_close\",\"dl\",-1),l[1]=c,e.line=c,w&&function(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===i&&\"paragraph_open\"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,p),!0}),{alt:[\"paragraph\",\"reference\",\"blockquote\"]})}},{}]},{},[])(\"/\")}));\n","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-deflist.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-footnote.js":{"text":"!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).markdownitFootnote=e()}}(function(){return function(){return function e(o,t,n){function r(f,l){if(!t[f]){if(!o[f]){var i=\"function\"==typeof require&&require;if(!l&&i)return i(f,!0);if(s)return s(f,!0);var u=new Error(\"Cannot find module '\"+f+\"'\");throw u.code=\"MODULE_NOT_FOUND\",u}var a=t[f]={exports:{}};o[f][0].call(a.exports,function(e){return r(o[f][1][e]||e)},a,a.exports,e,o,t,n)}return t[f].exports}for(var s=\"function\"==typeof require&&require,f=0;f<n.length;f++)r(n[f]);return r}}()({1:[function(e,o,t){\"use strict\";function n(e,o,t,n){var r=Number(e[o].meta.id+1).toString(),s=\"\";return\"string\"==typeof n.docId&&(s=\"-\"+n.docId+\"-\"),s+r}function r(e,o){var t=Number(e[o].meta.id+1).toString();return e[o].meta.subId>0&&(t+=\":\"+e[o].meta.subId),\"[\"+t+\"]\"}function s(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r),f=r.rules.footnote_caption(e,o,t,n,r),l=s;return e[o].meta.subId>0&&(l+=\":\"+e[o].meta.subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+s+'\" id=\"fnref'+l+'\">'+f+\"</a></sup>\"}function f(e,o,t){return(t.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'}function l(){return\"</ol>\\n</section>\\n\"}function i(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=\":\"+e[o].meta.subId),'<li id=\"fn'+s+'\" class=\"footnote-item\">'}function u(){return\"</li>\\n\"}function a(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=\":\"+e[o].meta.subId),' <a href=\"#fnref'+s+'\" class=\"footnote-backref\">\\u21a9\\ufe0e</a>'}o.exports=function(e){var o=e.helpers.parseLinkLabel,t=e.utils.isSpace;e.renderer.rules.footnote_ref=s,e.renderer.rules.footnote_block_open=f,e.renderer.rules.footnote_block_close=l,e.renderer.rules.footnote_open=i,e.renderer.rules.footnote_close=u,e.renderer.rules.footnote_anchor=a,e.renderer.rules.footnote_caption=r,e.renderer.rules.footnote_anchor_name=n,e.block.ruler.before(\"reference\",\"footnote_def\",function(e,o,n,r){var s,f,l,i,u,a,c,p,d,h,k,b=e.bMarks[o]+e.tShift[o],v=e.eMarks[o];if(b+4>v)return!1;if(91!==e.src.charCodeAt(b))return!1;if(94!==e.src.charCodeAt(b+1))return!1;for(u=b+2;u<v;u++){if(32===e.src.charCodeAt(u))return!1;if(93===e.src.charCodeAt(u))break}if(u===b+2)return!1;if(u+1>=v||58!==e.src.charCodeAt(++u))return!1;if(r)return!0;for(u++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),a=e.src.slice(b+2,u-2),e.env.footnotes.refs[\":\"+a]=-1,(c=new e.Token(\"footnote_reference_open\",\"\",1)).meta={label:a},c.level=e.level++,e.tokens.push(c),s=e.bMarks[o],f=e.tShift[o],l=e.sCount[o],i=e.parentType,k=u,p=d=e.sCount[o]+u-(e.bMarks[o]+e.tShift[o]);u<v&&(h=e.src.charCodeAt(u),t(h));)9===h?d+=4-d%4:d++,u++;return e.tShift[o]=u-k,e.sCount[o]=d-p,e.bMarks[o]=k,e.blkIndent+=4,e.parentType=\"footnote\",e.sCount[o]<e.blkIndent&&(e.sCount[o]+=e.blkIndent),e.md.block.tokenize(e,o,n,!0),e.parentType=i,e.blkIndent-=4,e.tShift[o]=f,e.sCount[o]=l,e.bMarks[o]=s,(c=new e.Token(\"footnote_reference_close\",\"\",-1)).level=--e.level,e.tokens.push(c),!0},{alt:[\"paragraph\",\"reference\"]}),e.inline.ruler.after(\"image\",\"footnote_inline\",function(e,t){var n,r,s,f,l=e.posMax,i=e.pos;return!(i+2>=l||94!==e.src.charCodeAt(i)||91!==e.src.charCodeAt(i+1)||(n=i+2,(r=o(e,i+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),s=e.env.footnotes.list.length,e.md.inline.parse(e.src.slice(n,r),e.md,e.env,f=[]),e.push(\"footnote_ref\",\"\",0).meta={id:s},e.env.footnotes.list[s]={content:e.src.slice(n,r),tokens:f}),e.pos=r+1,e.posMax=l,0)))}),e.inline.ruler.after(\"footnote_inline\",\"footnote_ref\",function(e,o){var t,n,r,s,f=e.posMax,l=e.pos;if(l+3>f)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;for(n=l+2;n<f;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===l+2||n>=f||(n++,t=e.src.slice(l+2,n-1),void 0===e.env.footnotes.refs[\":\"+t]||(o||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\":\"+t]<0?(r=e.env.footnotes.list.length,e.env.footnotes.list[r]={label:t,count:0},e.env.footnotes.refs[\":\"+t]=r):r=e.env.footnotes.refs[\":\"+t],s=e.env.footnotes.list[r].count,e.env.footnotes.list[r].count++,e.push(\"footnote_ref\",\"\",0).meta={id:r,subId:s,label:t}),e.pos=n,e.posMax=f,0)))}),e.core.ruler.after(\"inline\",\"footnote_tail\",function(e){var o,t,n,r,s,f,l,i,u,a,c=!1,p={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\"footnote_reference_open\"===e.type?(c=!0,u=[],a=e.meta.label,!1):\"footnote_reference_close\"===e.type?(c=!1,p[\":\"+a]=u,!1):(c&&u.push(e),!c)}),e.env.footnotes.list)){for(f=e.env.footnotes.list,l=new e.Token(\"footnote_block_open\",\"\",1),e.tokens.push(l),o=0,t=f.length;o<t;o++){for((l=new e.Token(\"footnote_open\",\"\",1)).meta={id:o,label:f[o].label},e.tokens.push(l),f[o].tokens?(i=[],(l=new e.Token(\"paragraph_open\",\"p\",1)).block=!0,i.push(l),(l=new e.Token(\"inline\",\"\",0)).children=f[o].tokens,l.content=f[o].content,i.push(l),(l=new e.Token(\"paragraph_close\",\"p\",-1)).block=!0,i.push(l)):f[o].label&&(i=p[\":\"+f[o].label]),i&&(e.tokens=e.tokens.concat(i)),s=\"paragraph_close\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,r=f[o].count>0?f[o].count:1,n=0;n<r;n++)(l=new e.Token(\"footnote_anchor\",\"\",0)).meta={id:o,subId:n,label:f[o].label},e.tokens.push(l);s&&e.tokens.push(s),l=new e.Token(\"footnote_close\",\"\",-1),e.tokens.push(l)}l=new e.Token(\"footnote_block_close\",\"\",-1),e.tokens.push(l)}})}},{}]},{},[1])(1)});\n","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-footnote.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-ins.js":{"text":"/*! markdown-it-ins 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */\n!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).markdownitIns=n()}(this,(function(){\"use strict\";return function(e){function n(e,n){var t,o,s,i,r,l=[],f=n.length;for(t=0;t<f;t++)43===(s=n[t]).marker&&-1!==s.end&&(i=n[s.end],(r=e.tokens[s.token]).type=\"ins_open\",r.tag=\"ins\",r.nesting=1,r.markup=\"++\",r.content=\"\",(r=e.tokens[i.token]).type=\"ins_close\",r.tag=\"ins\",r.nesting=-1,r.markup=\"++\",r.content=\"\",\"text\"===e.tokens[i.token-1].type&&\"+\"===e.tokens[i.token-1].content&&l.push(i.token-1));for(;l.length;){for(o=(t=l.pop())+1;o<e.tokens.length&&\"ins_close\"===e.tokens[o].type;)o++;t!==--o&&(r=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=r)}}e.inline.ruler.before(\"emphasis\",\"ins\",(function(e,n){var t,o,s,i,r=e.pos,l=e.src.charCodeAt(r);if(n)return!1;if(43!==l)return!1;if(s=(o=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(l),s<2)return!1;for(s%2&&(e.push(\"text\",\"\",0).content=i,s--),t=0;t<s;t+=2)e.push(\"text\",\"\",0).content=i+i,(o.can_open||o.can_close)&&e.delimiters.push({marker:l,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before(\"emphasis\",\"ins\",(function(e){var t,o=e.tokens_meta,s=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t<s;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}}));\n","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-ins.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-mark.js":{"text":"/*! markdown-it-mark 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */\n!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).markdownitMark=n()}(this,(function(){\"use strict\";return function(e){function n(e,n){var t,o,r,s,i,a=[],k=n.length;for(t=0;t<k;t++)61===(r=n[t]).marker&&-1!==r.end&&(s=n[r.end],(i=e.tokens[r.token]).type=\"mark_open\",i.tag=\"mark\",i.nesting=1,i.markup=\"==\",i.content=\"\",(i=e.tokens[s.token]).type=\"mark_close\",i.tag=\"mark\",i.nesting=-1,i.markup=\"==\",i.content=\"\",\"text\"===e.tokens[s.token-1].type&&\"=\"===e.tokens[s.token-1].content&&a.push(s.token-1));for(;a.length;){for(o=(t=a.pop())+1;o<e.tokens.length&&\"mark_close\"===e.tokens[o].type;)o++;t!==--o&&(i=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=i)}}e.inline.ruler.before(\"emphasis\",\"mark\",(function(e,n){var t,o,r,s,i=e.pos,a=e.src.charCodeAt(i);if(n)return!1;if(61!==a)return!1;if(r=(o=e.scanDelims(e.pos,!0)).length,s=String.fromCharCode(a),r<2)return!1;for(r%2&&(e.push(\"text\",\"\",0).content=s,r--),t=0;t<r;t+=2)e.push(\"text\",\"\",0).content=s+s,(o.can_open||o.can_close)&&e.delimiters.push({marker:a,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before(\"emphasis\",\"mark\",(function(e){var t,o=e.tokens_meta,r=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t<r;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}}));\n","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-mark.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-sub.js":{"text":"/*! markdown-it-sub 1.0.0 https://github.com//markdown-it/markdown-it-sub @license MIT */\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var r;r=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,r.markdownitSub=e()}}(function(){return function e(r,o,n){function t(i,u){if(!o[i]){if(!r[i]){var f=\"function\"==typeof require&&require;if(!u&&f)return f(i,!0);if(s)return s(i,!0);var p=new Error(\"Cannot find module '\"+i+\"'\");throw p.code=\"MODULE_NOT_FOUND\",p}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s=\"function\"==typeof require&&require,i=0;i<n.length;i++)t(n[i]);return t}({1:[function(e,r){\"use strict\";function o(e,r){var o,t,s,i=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(r)return!1;if(u+2>=i)return!1;for(e.pos=u+1;e.pos<i;){if(126===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&u+1!==e.pos?(t=e.src.slice(u+1,e.pos),t.match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=u,!1):(e.posMax=e.pos,e.pos=u+1,s=e.push(\"sub_open\",\"sub\",1),s.markup=\"~\",s=e.push(\"text\",\"\",0),s.content=t.replace(n,\"$1\"),s=e.push(\"sub_close\",\"sub\",-1),s.markup=\"~\",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=u,!1)}var n=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after(\"emphasis\",\"sub\",o)}},{}]},{},[1])(1)});","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-sub.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-sup.js":{"text":"/*! markdown-it-sup 1.0.0 https://github.com//markdown-it/markdown-it-sup @license MIT */\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var r;r=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,r.markdownitSup=e()}}(function(){return function e(r,o,n){function t(i,p){if(!o[i]){if(!r[i]){var u=\"function\"==typeof require&&require;if(!p&&u)return u(i,!0);if(s)return s(i,!0);var f=new Error(\"Cannot find module '\"+i+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s=\"function\"==typeof require&&require,i=0;i<n.length;i++)t(n[i]);return t}({1:[function(e,r){\"use strict\";function o(e,r){var o,t,s,i=e.posMax,p=e.pos;if(94!==e.src.charCodeAt(p))return!1;if(r)return!1;if(p+2>=i)return!1;for(e.pos=p+1;e.pos<i;){if(94===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&p+1!==e.pos?(t=e.src.slice(p+1,e.pos),t.match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=p,!1):(e.posMax=e.pos,e.pos=p+1,s=e.push(\"sup_open\",\"sup\",1),s.markup=\"^\",s=e.push(\"text\",\"\",0),s.content=t.replace(n,\"$1\"),s=e.push(\"sup_close\",\"sup\",-1),s.markup=\"^\",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=p,!1)}var n=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after(\"emphasis\",\"sup\",o)}},{}]},{},[1])(1)});","type":"application/javascript","title":"$:/plugins/tiddlywiki/markdown/markdown-it-sup.js","module-type":"library"},"$:/plugins/tiddlywiki/markdown/license":{"text":"Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n","type":"text/plain","title":"$:/plugins/tiddlywiki/markdown/license"},"$:/plugins/tiddlywiki/markdown/images/markdown-linkify":{"title":"$:/plugins/tiddlywiki/markdown/images/markdown-linkify","tags":"$:/tags/Image","text":"\\parameters (size:\"22pt\")\n<svg width=<<size>> height=<<size>> class=\"tc-markdown-linkify-button tc-image-button\" viewBox=\"0 0 128 128\">\n<path d=\"M17.031185,32.1989189 L9.04781705,32.1989189 L9.04781705,97.1303119 L17.031185,97.1303119 L17.031185,104.049231 L0,104.049231 L0,25.28 L17.031185,25.28 L17.031185,32.1989189 Z M93.6716009,24.75 C90.4007675,30.8326023 88.0193713,37.1590826 86.5274123,43.7294408 C85.0354532,50.299799 84.2894737,56.9705775 84.2894737,63.7417763 C84.2894737,70.6277412 85.0211075,77.3702485 86.484375,83.9692982 C87.9476425,90.568348 90.314693,96.9952485 93.5855263,103.25 L93.5855263,103.25 L83.4287281,103.25 C79.8135965,97.3395468 77.0161732,91.1134868 75.0364583,84.5718202 C73.0567434,78.0301535 72.066886,71.3737208 72.066886,64.6025219 C72.066886,61.3890716 72.3107639,58.017818 72.7985197,54.488761 C73.2862756,50.9597039 74.0035636,47.4449927 74.9503838,43.9446272 C75.8972039,40.4442617 77.0735563,37.0586623 78.4794408,33.7878289 C79.8853253,30.5169956 81.5350877,27.504386 83.4287281,24.75 L83.4287281,24.75 Z M116.638158,24.75 C120.253289,30.6604532 123.050713,36.9152047 125.030428,43.5142544 C127.010143,50.1133041 128,56.7984284 128,63.5696272 C128,66.7830775 127.770468,70.1543311 127.311404,73.6833882 C126.852339,77.2124452 126.149397,80.7128107 125.202577,84.1844846 C124.255757,87.6561586 123.065058,91.0274123 121.630482,94.2982456 C120.195906,97.5690789 118.531798,100.552997 116.638158,103.25 L116.638158,103.25 L106.48136,103.25 C109.637427,97.1673977 111.975786,90.8696089 113.496436,84.3566338 C115.017087,77.8436586 115.777412,71.2015716 115.777412,64.4303728 C115.777412,57.5444079 115.031433,50.7732091 113.539474,44.1167763 C112.047515,37.4603436 109.723501,31.0047515 106.567434,24.75 L106.567434,24.75 Z M37.1101871,44.1061384 L37.1101871,56.702119 L49.0852391,52.799139 L51.3915454,59.8954661 L39.3277893,63.798446 L46.956341,74.1768244 L40.8357588,78.6120289 L33.2072072,68.1449464 L25.7560638,78.3459166 L19.8128898,73.8220081 L27.4414414,63.798446 L15.2889813,59.6293539 L17.5952876,52.5330268 L29.6590437,56.702119 L29.6590437,44.1061384 L37.1101871,44.1061384 Z M49.6493416,97.1303119 L57.6327096,97.1303119 L57.6327096,32.1989189 L49.6493416,32.1989189 L49.6493416,25.28 L66.6805267,25.28 L66.6805267,104.049231 L49.6493416,104.049231 L49.6493416,97.1303119 Z\"></path>\n</svg>\n"},"$:/plugins/tiddlywiki/markdown/images/new-markdown-button":{"title":"$:/plugins/tiddlywiki/markdown/images/new-markdown-button","tags":"$:/tags/Image","text":"<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n </g>\n</svg>"},"$:/plugins/tiddlywiki/markdown/markdown-it-katex.js":{"title":"$:/plugins/tiddlywiki/markdown/markdown-it-katex.js","text":"/*\\\ntitle: $:/plugins/tiddlywiki/markdown/markdown-it-katex.js\ntype: application/javascript\nmodule-type: library\n\nBased on markdown-it-katex v2.0.0 by @waylonflinn https://github.com/waylonflinn/markdown-it-katex | MIT License\n\\*/\n(function(){\n/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\n\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n\n/*jslint node: true */\n'use strict';\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar, nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (prevChar === 0x20/* \" \" */ || prevChar === 0x09/* \\t */ ||\n prevChar === 0x0d/* \"\\r\" */ || prevChar === 0x0a/* \\n */ ||\n (nextChar >= 0x30/* \"0\" */ && nextChar <= 0x39/* \"9\" */)) {\n can_close = false;\n }\n if (nextChar === 0x20/* \" \" */ || nextChar === 0x09/* \\t */ ||\n nextChar === 0x0d/* \"\\r\" */ || nextChar === 0x0a/* \\ns */) {\n can_open = false;\n }\n\n if (state.src.substring(pos,pos+3) === \"$:/\") {\n can_open = false;\n can_close = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") { return false; }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) { state.pending += \"$\"; }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ( (match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline', '$latex', 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n token.attrs = [[\"displayMode\", \"false\"], [\"text\", token.content]];\n }\n\n state.pos = match + 1;\n return true;\n}\n\n/*! https://github.com/iktakahiro/markdown-it-katex/pull/2 by @shinhermit */\nfunction math_inline_block(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if(state.src.slice(state.pos, state.pos+2) !== \"$$\") { return false; }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 2;\n match = start;\n while ( (match = state.src.indexOf(\"$$\", match)) !== -1) {\n // Found potential $$, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 2;\n }\n\n // No closing delimter found. Consume $$ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$$$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$$$\"; }\n state.pos = start + 2;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline_block', '$latex', 0);\n token.block = true;\n token.markup = \"$$\";\n token.content = state.src.slice(start, match);\n token.attrs = [[\"displayMode\", \"true\"], [\"text\", token.content]];\n }\n\n state.pos = match + 2;\n return true;\n}\n\nmodule.exports = function math_plugin(md, options) {\n md.inline.ruler.after('escape', 'math_inline', math_inline);\n md.inline.ruler.after('escape', 'math_inline_block', math_inline_block);\n};\n})();","type":"application/javascript","module-type":"library"},"$:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js":{"title":"$:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js","text":"/*\\\ntitle: $:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js\ntype: application/javascript\nmodule-type: library\n\nWraps up the markdown-it parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar md;\nvar pluginOpts;\n\nvar TWMarkReplacements = {\n\t\"{\" : \"{\",\n\t\"[\" : \"[\",\n\t\"$\" : \"$\"\n};\n\nvar TWMarkRegEx = /[{[$]/g;\nfunction encodeTWMark(match) {\n\treturn TWMarkReplacements[match];\n}\n\n// escpae {, [ and $ in string s\nfunction escapeTWMarks(s) {\n\ts = String(s);\n\tTWMarkRegEx.lastIndex = 0;\n\treturn s.replace(TWMarkRegEx,encodeTWMark);\n}\n\n// escape anything that could be interpreted as transclusion or syslink\nfunction render_code_inline(tokens,idx,options,env,slf) {\n\ttokens[idx].attrJoin('class','_codified_');\n\treturn '<code' + slf.renderAttrs(tokens[idx]) + '>'\n\t\t+ escapeTWMarks(md.utils.escapeHtml(tokens[idx].content))\n\t\t+ '</code>';\n}\n\nfunction render_code_block(tokens,idx) {\n\treturn '<$codeblock code=e\"' + md.utils.escapeHtml(tokens[idx].content) + '\" language=\"\"/>\\n';\n}\n\nfunction render_fence(tokens,idx) {\n\tvar info = tokens[idx].info ? md.utils.unescapeAll(tokens[idx].info).trim() : '';\n\treturn '<$codeblock code=e\"' + md.utils.escapeHtml(tokens[idx].content) + '\" language=\"' + info.split(/(\\s+)/g)[0] + '\"/>\\n';\n}\n\n// add a blank line after opening tag to activate TW block parsing\nfunction render_paragraph_open(tokens,idx) {\n\treturn tokens[idx].hidden ? '' : '<p>\\n\\n';\n}\n\nfunction render_paragraph_close(tokens,idx) {\n\treturn tokens[idx].hidden ? '' : '\\n</p>\\n';\n}\n\n// Replace footnote links with \"qualified\" internal links\nfunction render_footnote_ref(tokens,idx,options,env,slf) {\n\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\n\tvar caption = slf.rules.footnote_caption(tokens,idx,options,env,slf);\n\tvar refid = id;\n\n\tif(tokens[idx].meta.subId > 0) {\n\t\trefid += ':' + tokens[idx].meta.subId;\n\t}\n\treturn '<a class=\"footnote-ref\" href=<<qualify \"##fn' + id + '\">> id=<<qualify \"#fnref' + refid + '\">>>' + caption + '</a>';\n}\n\nfunction render_footnote_open(tokens,idx,options,env,slf) {\n\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\n\n\tif(tokens[idx].meta.subId > 0) {\n\t\tid += ':' + tokens[idx].meta.subId;\n\t}\n\treturn '<li id=<<qualify \"#fn' + id + '\">> class=\"footnote-item\">';\n}\n\nfunction render_footnote_anchor(tokens,idx,options,env,slf) {\n\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\n\n\tif(tokens[idx].meta.subId > 0) {\n\t\tid += ':' + tokens[idx].meta.subId;\n\t}\n\n\t// append variation selector to prevent display as Apple Emoji on iOS\n\treturn '<a href=<<qualify \"##fnref' + id + '\">> class=\"footnote-backref\">\\u21A5\\uFE0E</a>';\n}\n\n// do not un-escape html entities and escape characters\nfunction render_text_special(tokens,idx) {\n\tif(tokens[idx].info === 'entity') {\n\t\treturn tokens[idx].markup;\n\t}\n\treturn escapeTWMarks(md.utils.escapeHtml(tokens[idx].content));\n}\n\nfunction render_tw_expr(tokens,idx) {\n\treturn tokens[idx].content;\n}\n\n// Overwrite default: attribute values can be either a string or {type;, value:}.\n// 1) string attr val: render in e\"...\" format so HTML entities can be decoded.\n// 2) object attr val: render value as is.\nfunction render_token_attrs(token) {\n\tvar i, l, result;\n\n\tif(!token.attrs) { return ''; }\n\n\tresult = '';\n\n\tfor(i=0, l=token.attrs.length; i<l; i++) {\n\t\tif(typeof token.attrs[i][1] === \"object\" && token.attrs[i][1] !== null) {\n\t\t\tresult += ' ' + md.utils.escapeHtml(token.attrs[i][0]) + '=' + token.attrs[i][1].value;\n\t\t} else {\n\t\t\tresult += ' ' + md.utils.escapeHtml(token.attrs[i][0]) + '=e\"' + md.utils.escapeHtml(token.attrs[i][1]) + '\"';\n\t\t}\n\t}\n\n\treturn result;\n}\n\n// given tw parsing rule and starting pos, returns match index or undefined\n// assumes pos >= 0\nfunction findNextMatch(ruleinfo,pos) {\n\t// ruleinfo.matchIndex needs to be -1 at the start of inline state\n\tif(ruleinfo.matchIndex < pos) {\n\t\truleinfo.matchIndex = ruleinfo.rule.findNextMatch(pos);\n\t}\n\n\treturn ruleinfo.matchIndex;\n}\n\n// Add inline rule \"macrocall\" to parse <<macroname ...>>\nvar MacroCallRegEx = /<<([^\\s>\"'=]+)[^>]*>>/g;\nfunction tw_macrocallinline(state,silent) {\n\tvar match, max, pos = state.pos;\n\n\t// Check start\n\tmax = state.posMax;\n\tif(state.src.charCodeAt(pos) !== 0x3C || state.src.charCodeAt(pos+1) !== 0x3C /* << */|| pos + 3 >= max) {\n\t\treturn false;\n\t}\n\n\tMacroCallRegEx.lastIndex = pos;\n\tmatch = MacroCallRegEx.exec(state.src);\n\tif(!match || match.index !== pos) { return false; }\n\n\tif(!silent) {\n\t\tvar token = state.push('tw_expr','',0);\n\t\ttoken.content = state.src.slice(pos,pos+match[0].length);\n\t}\n\tstate.pos = MacroCallRegEx.lastIndex;\n\treturn true;\n}\n\n// parse transclusion elements\nfunction tw_transcludeinline(state,silent) {\n\tvar ruleinfo = pluginOpts.inlineRules.transcludeinline;\n\n\tvar pos = state.pos;\n\tvar matchIndex = findNextMatch(ruleinfo,pos);\n\tif(matchIndex === undefined || matchIndex !== pos) {\n\t\treturn false;\n\t}\n\n\tif(!silent) {\n\t\tvar token = state.push('tw_expr','',0);\n\t\ttoken.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length);\n\t}\n\tstate.pos += ruleinfo.rule.match[0].length;\n\treturn true;\n}\n\n// parse filtered transclusion elements\nfunction tw_filteredtranscludeinline(state,silent) {\n\tvar ruleinfo = pluginOpts.inlineRules.filteredtranscludeinline;\n\n\tvar pos = state.pos;\n\tvar matchIndex = findNextMatch(ruleinfo,pos);\n\tif(matchIndex === undefined || matchIndex !== pos) {\n\t\treturn false;\n\t}\n\n\tif(!silent) {\n\t\tvar token = state.push('tw_expr','',0);\n\t\tif(state.linkLevel > 0) {\n\t\t\tvar filter = ruleinfo.rule.match[1];\n\t\t\ttoken.content = '<$text text={{{' + filter + '}}}/>';\n\t\t} else {\n\t\t\ttoken.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length);\n\t\t}\n\t}\n\tstate.pos += ruleinfo.rule.match[0].length;\n\treturn true;\n}\n\n// based on markdown-it html_block()\nvar WidgetTagRegEx = [/^<\\/?\\$[a-zA-Z0-9\\-\\$\\.]+(?=(\\s|\\/?>|$))/, /^$/];\nfunction tw_block(state,startLine,endLine,silent) {\n\tvar i, nextLine, token, lineText,\n\t\tpos = state.bMarks[startLine] + state.tShift[startLine],\n\t\tmax = state.eMarks[startLine];\n\n\t// if it's indented more than 3 spaces, it should be a code block\n\tif(state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n\tif(!state.md.options.html) { return false; }\n\n\tif(state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n\tlineText = state.src.slice(pos,max);\n\n\tif(!WidgetTagRegEx[0].test(lineText)) { return false; }\n\n\tif(silent) {\n\t\t// don't let widgets interrupt a paragrpah\n\t\treturn false;\n\t}\n\n\tnextLine = startLine + 1;\n\n\t// If we are here - we detected HTML block.\n\t// Let's roll down till block end.\n\tif(!WidgetTagRegEx[1].test(lineText)) {\n\t\tfor(; nextLine < endLine; nextLine++) {\n\t\t\tif(state.sCount[nextLine] < state.blkIndent) { break; }\n\n\t\t\tpos = state.bMarks[nextLine] + state.tShift[nextLine];\n\t\t\tmax = state.eMarks[nextLine];\n\t\t\tlineText = state.src.slice(pos,max);\n\n\t\t\tif(WidgetTagRegEx[1].test(lineText)) {\n\t\t\t\tif(lineText.length !== 0) { nextLine++; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstate.line = nextLine;\n\n\ttoken = state.push('html_block','',0);\n\ttoken.map = [ startLine, nextLine ];\n\ttoken.content = state.getLines(startLine,nextLine,state.blkIndent,true);\n\n\treturn true;\n}\n\n// parse [img[...]] elements\nfunction tw_image(state,silent) {\n\tvar ruleinfo = pluginOpts.inlineRules.image;\n\n\t// ignore at parseLinkLabel stage; will be recognized in tokenize()\n\tif(state.parsingLinkLabel > 0) {\n\t\treturn false;\n\t}\n\n\tvar pos = state.pos;\n\tvar matchIndex = findNextMatch(ruleinfo,pos);\n\tif(matchIndex === undefined || matchIndex !== pos) {\n\t\treturn false;\n\t}\n\n\tif(!silent) {\n\t\tvar twNode = ruleinfo.rule.parse()[0];\n\t\tvar token = state.push('$image','$image',0);\n\t\t$tw.utils.each(twNode.attributes,function(attr,id) {\n\t\t\tswitch(attr.type) {\n\t\t\t\tcase \"filtered\":\n\t\t\t\t\ttoken.attrSet(id,{ type: \"filtered\", value: \"{{{\" + attr.filter + \"}}}\" });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"indirect\":\n\t\t\t\t\ttoken.attrSet(id,{ type: \"indirect\", value: \"{{\" + attr.textReference + \"}}\" });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"macro\":\n\t\t\t\t\ttoken.attrSet(id,{ type: \"macro\", value: ruleinfo.rule.parser.source.substring(attr.value.start,attr.value.end) });\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\ttoken.attrSet(id,attr.value);\n\t\t\t}\n\t\t});\n\t\ttoken.markup = 'tw_image';\n\t}\n\tstate.pos = ruleinfo.rule.parser.pos;\n\treturn true;\n}\n\n// parse [[link]] elements\nfunction tw_prettylink(state,silent) {\n\tvar ruleinfo = pluginOpts.inlineRules.prettylink;\n\n\t// skip if in link label\n\tif(state.linkLevel > 0 || state.parsingLinkLabel > 0) {\n\t\treturn false;\n\t}\n\n\tvar pos = state.pos;\n\tvar matchIndex = findNextMatch(ruleinfo,pos);\n\tif(matchIndex === undefined || matchIndex !== pos) {\n\t\treturn false;\n\t}\n\n\tif(!silent) {\n\t\tvar twNode = ruleinfo.rule.parse()[0];\n\t\tvar tag = (twNode.type==='link' ? '$link' : 'a');\n\t\t// push a link_open token so markdown's core.linkify will ignore\n\t\tvar token = state.push('link_open',tag,1);\n\n\t\t$tw.utils.each(twNode.attributes,function(attr,id) {\n\t\t\ttoken.attrSet(id,attr.value);\n\t\t});\n\t\ttoken.attrJoin('class','_codified_');\n\t\ttoken.markup = 'tw_prettylink';\n\n\t\tstate.linkLevel++;\n\t\ttoken = state.push('text','',0);\n\t\ttoken.content = twNode.children[0].text;\n\t\tstate.linkLevel--;\n\n\t\ttoken = state.push('link_close',tag,-1);\n\t\ttoken.markup = 'tw_prettylink';\n\t}\n\tstate.pos = ruleinfo.rule.parser.pos;\n\treturn true;\n}\n\nfunction tw_prettyextlink(state,silent) {\n\tvar ruleinfo = pluginOpts.inlineRules.prettyextlink;\n\n\t// skip if in link label\n\tif(state.linkLevel > 0 || state.parsingLinkLabel > 0) {\n\t\treturn false;\n\t}\n\n\tvar pos = state.pos;\n\tvar matchIndex = findNextMatch(ruleinfo,pos);\n\tif(matchIndex === undefined || matchIndex !== pos) {\n\t\treturn false;\n\t}\n\n\tif(!silent) {\n\t\tvar twNode = ruleinfo.rule.parse()[0];\n\t\tvar token = state.push('link_open','a',1);\n\n\t\t$tw.utils.each(twNode.attributes,function(attr,id) {\n\t\t\ttoken.attrSet(id,attr.value);\n\t\t});\n\t\ttoken.attrJoin('class','_codified_');\n\t\ttoken.markup = 'tw_prettyextlink';\n\n\t\tstate.linkLevel++;\n\t\ttoken = state.push('text','',0);\n\t\ttoken.content = twNode.children[0].text;\n\t\tstate.linkLevel--;\n\n\t\ttoken = state.push('link_close','a',-1);\n\t\ttoken.markup = 'tw_prettyextlink';\n\t}\n\tstate.pos = ruleinfo.rule.parser.pos;\n\treturn true;\n}\n\nvar TWCloseTagRegEx = /<\\/\\$[A-Za-z0-9\\-\\$\\.]+\\s*>/gm;\nfunction extendHtmlInline(origRule) {\n\treturn function(state,silent) {\n\t\tif(origRule(state,silent)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tvar token, pos = state.pos;\n\t\tvar parseTag = $tw.Wiki.parsers['text/vnd.tiddlywiki'].prototype.inlineRuleClasses.html.prototype.parseTag;\n\t\tvar tag = parseTag(state.src,pos,{});\n\t\tif(tag) {\n\t\t\tif(!silent) {\n\t\t\t\ttoken = state.push('html_inline','',0);\n\t\t\t\ttoken.content = state.src.slice(pos,tag.end);\n\t\t\t}\n\t\t\tstate.pos = tag.end;\n\t\t\treturn true;\n\t\t}\n\n\t\tTWCloseTagRegEx.lastIndex = pos;\n\t\tvar match = TWCloseTagRegEx.exec(state.src);\n\t\tif(!match || match.index !== pos) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif(!silent) {\n\t\t\ttoken = state.push('html_inline','',0);\n\t\t\ttoken.content = state.src.slice(pos,pos + match[0].length);\n\t\t}\n\t\tstate.pos = TWCloseTagRegEx.lastIndex;\n\t\treturn true;\n\t};\n}\n\nfunction extendParseLinkLabel(origFunc) {\n\treturn function(state,start,disableNested) {\n\t\tif(state.parsingLinkLabel === undefined) {\n\t\t\tstate.parsingLinkLabel = 0;\n\t\t}\n\t\tstate.parsingLinkLabel++;\n\t\tvar labelEnd = origFunc(state,start,disableNested);\n\t\tstate.parsingLinkLabel--;\n\t\treturn labelEnd;\n\t};\n}\n\n// reset each tw inline rule to initial inline state\nfunction extendInlineParse(thisArg,origFunc,twInlineRules) {\n\treturn function(str,md,env,outTokens) {\n\t\tvar i, ruleinfo, key;\n\t\tfor(key in twInlineRules) {\n\t\t\truleinfo = twInlineRules[key];\n\t\t\truleinfo.rule.parser.source = str;\n\t\t\truleinfo.rule.parser.sourceLength = str.length;\n\t\t\truleinfo.rule.parser.pos = 0; // not used\n\t\t\truleinfo.matchIndex = -1;\n\t\t}\n\t\torigFunc.call(thisArg,str,md,env,outTokens);\n\t}\n}\n\n/// post processing ///\n\nfunction wikify(state) {\n\tvar href, title, src, alt;\n\tvar tagStack = [];\n\n\tstate.tokens.forEach(function(blockToken) {\n\t\tif(blockToken.type === 'inline' && blockToken.children) {\n\t\t\tblockToken.children.forEach(function(token) {\n\t\t\t\tswitch(token.type) {\n\t\t\t\tcase 'link_open':\n\t\t\t\t\tif(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\thref = token.attrGet('href');\n\t\t\t\t\tif(href[0] === '#') {\n\t\t\t\t\t\ttoken.tag = '$link';\n\t\t\t\t\t\thref = $tw.utils.decodeURIComponentSafe(href.substring(1));\n\t\t\t\t\t\ttitle = token.attrGet('title');\n\t\t\t\t\t\ttoken.attrs = [['to', href], ['class', '_codified_']];\n\t\t\t\t\t\tif(title) {\n\t\t\t\t\t\t\ttoken.attrSet('tooltip',title);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttoken.attrSet('target','_blank');\n\t\t\t\t\t\ttoken.attrJoin('class','tc-tiddlylink-external');\n\t\t\t\t\t\ttoken.attrJoin('class','_codified_');\n\t\t\t\t\t\ttoken.attrSet('rel','noopener noreferrer');\n\t\t\t\t\t}\n\t\t\t\t\ttagStack.push(token.tag);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'link_close':\n\t\t\t\t\tif(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttoken.tag = tagStack.pop();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'image':\n\t\t\t\t\ttoken.tag = '$image';\n\t\t\t\t\tsrc = token.attrGet('src');\n\t\t\t\t\talt = token.attrGet('alt');\n\t\t\t\t\ttitle = token.attrGet('title');\n\n\t\t\t\t\ttoken.attrs[token.attrIndex('src')][0] = 'source';\n\t\t\t\t\tif(src[0] === '#') {\n\t\t\t\t\t\tsrc = $tw.utils.decodeURIComponentSafe(src.substring(1));\n\t\t\t\t\t\ttoken.attrSet('source',src);\n\t\t\t\t\t}\n\t\t\t\t\tif(title) {\n\t\t\t\t\t\ttoken.attrs[token.attrIndex('title')][0] = 'tooltip';\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nmodule.exports = function tiddlyWikiPlugin(markdown,options) {\n\tvar defaults = {\n\t\trenderWikiText: false,\n\t\tblockRules: {},\n\t\tinlineRules: {}\n\t};\n\n\tmd = markdown;\n\tpluginOpts = md.utils.assign({},defaults,options||{});\n\n\tmd.renderer.rules.code_inline = render_code_inline;\n\tmd.renderer.rules.code_block = render_code_block;\n\tmd.renderer.rules.fence = render_fence;\n\tmd.renderer.rules.paragraph_open = render_paragraph_open;\n\tmd.renderer.rules.paragraph_close = render_paragraph_close;\n\tmd.renderer.rules.footnote_ref = render_footnote_ref;\n\tmd.renderer.rules.footnote_open = render_footnote_open;\n\tmd.renderer.rules.footnote_anchor = render_footnote_anchor;\n\tmd.renderer.rules.text_special = render_text_special;\n\tmd.renderer.rules.tw_expr = render_tw_expr;\n\tmd.renderer.renderAttrs = render_token_attrs;\n\n\tif(pluginOpts.renderWikiText) {\n\t\tmd.helpers.parseLinkLabel = extendParseLinkLabel(md.helpers.parseLinkLabel);\n\n\t\tif(pluginOpts.inlineRules.image) {\n\t\t\tmd.inline.ruler.after('link','tw_image',tw_image);\n\t\t}\n\t\tif(pluginOpts.inlineRules.prettyextlink) {\n\t\t\tmd.inline.ruler.after('link','tw_prettyextlink',tw_prettyextlink);\n\t\t}\n\t\tif(pluginOpts.inlineRules.prettylink) {\n\t\t\tmd.inline.ruler.after('link','tw_prettylink',tw_prettylink);\n\t\t}\n\t\tif(pluginOpts.inlineRules.filteredtranscludeinline) {\n\t\t\tmd.inline.ruler.before('html_inline','tw_filteredtranscludeinline',tw_filteredtranscludeinline);\n\t\t}\n\t\tif(pluginOpts.inlineRules.transcludeinline) {\n\t\t\tmd.inline.ruler.before('html_inline','tw_transcludeinline',tw_transcludeinline);\n\t\t}\n\n\t\tmd.inline.ruler.before('html_inline','tw_macrocallinline',tw_macrocallinline);\n\t\tmd.inline.ruler.at('html_inline',extendHtmlInline(md.inline.ruler.__rules__[md.inline.ruler.__find__('html_inline')].fn));\n\t\tmd.block.ruler.after('html_block','tw_block',tw_block,{\n\t\t\talt: [ 'paragraph', 'reference', 'blockquote' ]\n\t\t});\n\t\tmd.inline.parse = extendInlineParse(md.inline,md.inline.parse,options.inlineRules);\n\t}\n\n\tmd.core.ruler.disable('text_join');\n\tmd.core.ruler.push('wikify',wikify);\n};\n\n})();\n","type":"application/javascript","module-type":"library"},"$:/plugins/tiddlywiki/markdown/new-markdown-button":{"title":"$:/plugins/tiddlywiki/markdown/new-markdown-button","tags":"$:/tags/PageControls","caption":"{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}","description":"{{$:/language/Buttons/NewMarkdown/Hint}}","list-after":"$:/core/ui/Buttons/new-tiddler","text":"\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"},"$:/plugins/tiddlywiki/markdown/readme":{"title":"$:/plugins/tiddlywiki/markdown/readme","text":"This plugin provides Markdown support via the [[markdown-it|https://github.com/markdown-it/markdown-it]] parser and its associated plugins:\n\n* markdown-it-deflist\n* markdown-it-footnote\n* markdown-it-ins\n* markdown-it-mark\n* markdown-it-sub\n* markdown-it-sup\n\n!! Compatibility Notes\n\n* <p>A tab character in Markdown has a size of four spaces. Configure the tab size of your code editor accordingly. For example, if you use <$text text=\"CodeMirror\"/>, it is recommended that you set $:/config/codemirror/indentUnit and $:/config/codemirror/tabSize to `4` to avoid inconsistent indentations.</p>\n* <p>HTML blocks are ultimately parsed by the <$text text=WikiText/> parser: //an opening tag followed by a blank line will activate block-level parsing for its content//. When working with tags designed to contain literal content, such as `<pre>` and `<style>` tags, refrain from adding blank lines after the opening tags.</p>\n* <p>You must terminate a table with either a blank line or another block-level structure.</p>\n* <p>`latex-parser` in $:/config/markdown/renderWikiTextPragma is no longer required and will be ignored.</p>\n* <p>Config option `linkNewWindow` is removed.</p>\n\n!! Extending the Parser\n\nYou can extend the parser by loading additional markdown-it plugins this way:\n\n```js\nvar plugin1 = require(...);\nvar plugin2 = require(...);\n\nvar md = $tw.Wiki.parsers[\"text/markdown\"].prototype.md;\n\nmd.use(plugin1)\n .use(plugin2, opts, ...);\n```"},"$:/plugins/tiddlywiki/markdown/styles":{"title":"$:/plugins/tiddlywiki/markdown/styles","tags":"[[$:/tags/Stylesheet]]","code-body":"yes","text":".markdown {\n\tdisplay: block;\n\tmargin: 0px;\n}\n.markdown hr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid <<colour muted-foreground>>;\n}\n.markdown .footnotes {\n\tfont-size: 0.9em;\n\tline-height: 1.32;\n}\n.markdown a.footnote-ref {\n\tcolor: <<colour tiddler-link-foreground>>;\n\tfont-size: 0.75em;\n\ttext-decoration: none;\n\tvertical-align: super;\n\tpadding:0px 1px;\n}\n.markdown ol.footnotes-list {\n\tpadding-left: 2em;\n}\n.markdown .footnote-item p {\n\tmargin: 0.7em 0px;\n}\n.markdown a.footnote-backref {\n\tcolor: <<colour tiddler-link-foreground>>;\n\tfont-size: 0.8em;\n\ttext-decoration: none;\n\tmargin-left: 0.25em;\n}\n.markdown a.footnote-ref:target, .markdown .footnote-item:target {\n\tbackground-color: <<colour message-background>>;\n\tscroll-margin-top: {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[120px]else[60px]] }}};\n}\n.markdown li > p:first-child {\n\tmargin-top: 0px;\n}\n.markdown li + li {\n\tmargin-top: 2px;\n}\n.markdown mark {\n\tpadding: 1px 3px;\n}\n"},"$:/plugins/tiddlywiki/markdown/syntax":{"title":"$:/plugins/tiddlywiki/markdown/syntax","text":"To review standard Markdown syntax, see: [ext[CommonMark quick reference|https://commonmark.org/help/]]. For formal specification, consult the [ext[CommonMark Spec|https://spec.commonmark.org/current/]].\n\n! Linking to Tiddlers\n\nPrepend `#` to tiddler titles to form link addresses. If a tiddler title contains spaces or other special characters, you must either (1) URI-encode the title, or (2) surround the #title with `<` `>` and backslash-escape any `<` or `>` in the title.\n\n!! Links\n\n<pre><code>[link text](<strong>#</strong><$text text=\"TiddlerTitle\"/> \"optional tooltip\")\n\n[link text](<strong>#</strong>New<strong>%20</strong>Tiddler)\n\n[link text](<strong><#</strong>New Tiddler<strong>></strong>)\n\n[](<strong><#</strong>How to use <strong>\\</strong><$list<strong>\\</strong>> widget?<strong>></strong>)\n</code></pre>\n\nYou can also use the `<$link>` widget to generate links to tiddlers:\n\n```\n<$link to=\"Tiddler Title\">Displayed Link Title</$link>\n```\n\n!! Reference Style Links\n\n```\n[link text][1]\n[link text][2]\n\n[1]: #New%20Tiddler \"optional tooltip\"\n\n[2]: <#Another Tiddler>\n```\n\n!! Images\n\n```\n![alt text](#Motovun%20Jack.jpg \"optional tooltip\")\n\n![alt text](<#Motovun Jack.jpg>)\n```\n\n! Escaping Special Characters\n\nMarkdown allows you to escape ASCII punctuation characters with `\\`.\n\n! HTML Blocks\n\nAn [[HTML block|https://spec.commonmark.org/0.30/#html-blocks]] is a group of lines that starts with an HTML tag and is treated as raw HTML. Block-level tags such as `<div>` and `<p>` can interrupt a paragraph. Inline elements such as `<strong>` and `<em>` can start an HTML block if the //complete// tag begins on a new paragraph by itself. In most cases, an HTML block continues until a blank line is reached.\n\nA widget tag that begins on a new paragraph will also be treated as an HTML block. Markdown elements are not recognized inside the HTML block. For example:\n\n```\nsee\n\n<$link to=\"New Tiddler\">\n_New_ Tiddler\n</$link>\n```\n\nrendered as:\n\n```\n<p>see</p>\n<$link to=\"New Tiddler\">\n_New_ Tiddler\n</$link>\n```\n\nA widget tag not preceded by a blank line is an inline element.\n\n```\nsee\n<$link to=\"New Tiddler\">\n_New_ Tiddler\n</$link>\n```\n\nrendered as:\n\n```\n<p>see <$link to=\"New Tiddler\"><em>New</em> Tiddler</$link></p>\n```\n\n! Syntax Extensions\n\n!! <$text text=KaTeX/>\n\nYou need to install the <$text text=KaTeX/> plugin to activate this syntax extension.\n\nSurround your math expression with `$` for inline rendering. Whitespace characters cannot immediately follow the opening `$` or precede the closing `$`, and the closing delimiter must not immediately precede a digit. Furthermore, `$` followed by `:/` will not be recognized as a valid opening or closing delimiter either.\n\nHere's an example of an inline math expression:\n\n```\n$c = \\pm\\sqrt{a^2 + b^2}$\n```\n\nUse `$$` to center the math in display mode:\n\n```\n$$c = \\pm\\sqrt{a^2 + b^2}$$\n```\n\n!! Superscript and Subscript\n\n```\nX^2^\n```\nx<sup>2</sup>\n\n```\nH~2~O\n```\nH<sub>2</sub>O\n\n!! Marked Text\n\n```\n==marked text==\n```\n\n<mark>marked text</mark>\n\n!! Strikethrough\n\n```\n~~striked through text~~\n```\n\n<s>striked through text</s>\n\n!! Inserted Text\n\n```\n++inserted text++\n```\n\n<ins>inserted text</ins>\n\n!! Tables\n\nmarkdown-it supports <$text text=\"GitHub Flavored Markdown\"/> (GFM) [ext[table syntax|https://github.github.com/gfm/#tables-extension-]].\n\n```\n|Left Aligned |Centered |Right Aligned |\n|:--- | :---: | ---:|\n|apple |bat |candle |\n```\n\n<table>\n<thead>\n<tr><th style=\"text-align:left\">Left Aligned</th><th style=\"text-align:center\">Centered</th><th style=\"text-align:right\">Right Aligned</th></tr>\n</thead>\n<tbody>\n<tr><td style=\"text-align:left\">apple</td><td style=\"text-align:center\">bat</td><td style=\"text-align:right\">candle</td></tr>\n</tbody>\n</table>\n\n!! Definition Lists\n\n```\nTerm One\n: Definition with\nlazy continuation.\n\nTerm Two\n: Here is the first defintion.\n\n: Here is the second definition.\n\n As you can see. A definition can have\n more than one paragrpah. It can also have\n\n And indended code block...\n```\n\n<dl>\n<dt>Term One</dt>\n<dd><p>Definition with\nlazy continuation.\n</p></dd>\n<dt>Term Two</dt>\n<dd><p>Here is the first defintion.\n</p></dd>\n<dd><p>Here is the second definition.</p><p>As you can see. A definition can have\nmore than one paragrpah. It can also have\n<pre><code>And indended code block...\n</code></pre>\n</p></dd>\n</dl>\n\n!! Footnotes\n\nFor detailed explanation, see [[Creating Footnotes|https://www.markdownguide.org/extended-syntax/#footnotes]].\n\n```\nHere's a simple footnote,[^1] and here's a longer one.[^bignote]\n\n[^1]: This is the first footnote.\n\n[^bignote]: Here's one with multiple paragraphs and code.\n\n Indent paragraphs to include them in the footnote.\n\n `{ my code }`\n\n Add as many paragraphs as you like.\n```\n\n<div class=\"markdown\"><p>Here’s a simple footnote,<a class=\"footnote-ref\" href=\"##fn1--doc639182\" id=\"#fnref1--doc639182\">[1]</a> and here’s a longer one.<a class=\"footnote-ref\" href=\"##fn2--doc639182\" id=\"#fnref2--doc639182\">[2]</a>\n<hr class=\"footnotes-sep\">\n<section class=\"footnotes\">\n<ol class=\"footnotes-list\">\n<li id=\"#fn1--doc639182\" class=\"footnote-item\"><p>This is the first footnote. <a href=\"##fnref1--doc639182\" class=\"footnote-backref\">↥︎</a>\n</p></li>\n<li id=\"#fn2--doc639182\" class=\"footnote-item\"><p>Here’s one with multiple paragraphs and code.</p><p>Indent paragraphs to include them in the footnote.</p><p><code class=\"codified\">{ my code }</code></p><p>Add as many paragraphs as you like. <a href=\"##fnref2--doc639182\" class=\"footnote-backref\">↥︎</a>\n</p></li>\n</ol>\n</section>\n</p></div>"},"$:/plugins/tiddlywiki/markdown/wrapper.js":{"title":"$:/plugins/tiddlywiki/markdown/wrapper.js","text":"/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the markdown-it parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MarkdownIt = require(\"./markdown-it\");\n\nfunction parseAsBoolean(tiddlerName) {\n\treturn $tw.wiki.getTiddlerText(tiddlerName,\"false\").trim().toLowerCase() === \"true\";\n}\n\nvar pluginOpts = {\n\trenderWikiText: parseAsBoolean(\"$:/config/markdown/renderWikiText\"),\n\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\"$:/config/markdown/renderWikiTextPragma\").trim()\n};\n\nvar markdownOpts = {\n\thtml: true,\n\txhtmlOut: true,\n\tbreaks: parseAsBoolean(\"$:/config/markdown/breaks\"),\n\tquotes: $tw.wiki.getTiddlerText(\"$:/config/markdown/quotes\").trim(),\n\ttypographer: parseAsBoolean(\"$:/config/markdown/typographer\"),\n\tlinkify: parseAsBoolean(\"$:/config/markdown/linkify\")\n};\n\n// Retrieve needed TW rule classes and instantiated rules\nfunction setupWikiRules(pluginOptions) {\n\tvar results = {};\n\n\tfunction collectAllRules(classes,type) {\n\t\tvar rulesInfo = [], key,\n\t\t\tself = wikiParser;\n\t\tfor(key in classes) {\n\t\t\t// instantiate the rule\n\t\t\tvar RuleClass = classes[key];\n\t\t\tvar rule = new RuleClass(self);\n\t\t\trule.name = key;\n\t\t\trule.class = RuleClass;\n\t\t\trule.is = {};\n\t\t\trule.is[type] = true;\n\t\t\trule.init(self);\n\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: -1\n\t\t\t});\n\t\t};\n\t\treturn rulesInfo;\n\t}\n\n\tvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[\"text/vnd.tiddlywiki\"];\n\n\t// first pass: get all rule classes\n\tvar wikiParser = new WikiParser(null, '', {parseAsInline: true, wiki: $tw.wiki});\n\n\t// restore all possible rules from each rule class\n\twikiParser.pragmaRules = collectAllRules(wikiParser.pragmaRuleClasses,'pragma');\n\twikiParser.blockRules = collectAllRules(wikiParser.blockRuleClasses,'block');\n\twikiParser.inlineRules = collectAllRules(wikiParser.inlineRuleClasses,'inline');\n\n\tvar pragma = pluginOptions.renderWikiText\n\t\t\t? \"\\\\rules except latex-parser extlink\\n\" + pluginOptions.renderWikiTextPragma\n\t\t\t: \"\\\\rules only html entity commentinline commentblock\";\n\n\twikiParser.pos = 0;\n\twikiParser.source = pragma;\n\twikiParser.sourceLength = pragma.length;\n\n\t// second pass: remove uninterested rules based on \\rules pragma\n\twikiParser.parsePragmas();\n\n\tresults.blockRules = {};\n\tresults.inlineRules = {}\n\tresults.blockRuleClasses = {};\n\tresults.inlineRuleClasses = {};\n\n\t// save the rule sets for future markdown parsing\n\twikiParser.blockRules.forEach(function(ruleinfo) {\n\t\tresults.blockRules[ruleinfo.rule.name] = ruleinfo;\n\t\tresults.blockRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class;\n\t});\n\twikiParser.inlineRules.forEach(function(ruleinfo) {\n\t\tresults.inlineRules[ruleinfo.rule.name] = ruleinfo;\n\t\tresults.inlineRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class;\n\t});\n\treturn results;\n}\n\n// Creates markdown-it parser\nfunction createMarkdownEngine(markdownItOptions, pluginOptions) {\n\tvar md = new MarkdownIt(markdownItOptions)\n\t\t\t\t.use(require(\"./markdown-it-sub\"))\n\t\t\t\t.use(require(\"./markdown-it-sup\"))\n\t\t\t\t.use(require(\"./markdown-it-ins\"))\n\t\t\t\t.use(require(\"./markdown-it-mark\"))\n\t\t\t\t.use(require(\"./markdown-it-footnote\"))\n\t\t\t\t.use(require(\"./markdown-it-deflist\"));\n\n\tvar results = setupWikiRules(pluginOptions);\n\n\tMarkdownParser.prototype.blockRuleClasses = results.blockRuleClasses;\n\tMarkdownParser.prototype.blockRules = results.blockRules;\n\n\tMarkdownParser.prototype.inlineRuleClasses = results.inlineRuleClasses;\n\tMarkdownParser.prototype.inlineRules = results.inlineRules;\n\n\tif(pluginOptions.renderWikiText && $tw.modules.titles[\"$:/plugins/tiddlywiki/katex/katex.min.js\"]) {\n\t\tmd.use(require(\"./markdown-it-katex\"));\n\t}\n\n\tmd.use(require(\"./markdown-it-tiddlywiki\"),{\n\t\t\trenderWikiText: pluginOptions.renderWikiText,\n\t\t\tblockRules: results.blockRules,\n\t\t\tinlineRules: results.inlineRules\n\t\t});\n\n\t$tw.utils.each(['image','prettylink','prettyextlink'], function(rule) {\n\t\tif(MarkdownParser.prototype.inlineRules[rule]) {\n\t\t\t// delegate to md; ignore the rule class in WikiParser\n\t\t\tdelete MarkdownParser.prototype.inlineRuleClasses[rule];\n\t\t}\n\t});\n\treturn md;\n}\n\n/// Parse tree post processing ///\n\nfunction deactivateLinks(tree) {\n\t$tw.utils.each(tree,function(node) {\n\t\tif(node.type === \"link\") {\n\t\t\tnode.type = \"text\";\n\t\t\tnode.text = node.children[0].text;\n\t\t\tdelete node.attributes;\n\t\t\tdelete node.children;\n\t\t\tdelete node.attributes;\n\t\t} else {\n\t\t\tdeactivateLinks(node.children);\n\t\t}\n\t});\n}\n\n// true if the node contains \"_codified_\" class attribute\nfunction isCodified(node) {\n\treturn node.attributes\n\t\t&& node.attributes.class\n\t\t&& node.attributes.class.type === \"string\"\n\t\t&& (node.attributes.class.value.split(\" \").indexOf(\"_codified_\") !== -1);\n}\n\nfunction decodeEntities(s) {\n\treturn s.replace(/(&#?[a-zA-Z0-9]{2,8};)/g,$tw.utils.entityDecode);\n}\n\n// Add e\"...\" and e'....' syntax to enable decoding of HTML entities\n// in string literals.\nfunction parseStringLiteralExtended(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|e?\"([^\"]*)\")|(?:e?'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :\n\t\t\t(match[2] !== undefined ? match[2] : match[3]);\n\t\tnode.end = pos + match[0].length;\n\t\tif(match[0].charAt(0) === \"e\") {\n\t\t\tnode.value = decodeEntities(node.value);\n\t\t}\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n}\n\nfunction processWikiTree(tree,hasWikiLinkRule) {\n\tvar stack = [].concat(tree);\n\n\tvar mergeable = function(node) {\n\t\treturn node.type === \"element\" && node.tag === \"p\" && (!node.attributes || Object.keys(node.attributes).length === 0);\n\t};\n\n\twhile(stack.length) {\n\t\tvar node = stack.pop();\n\t\tif(node.type === \"element\" && node.tag === \"p\") {\n\t\t\t// reduce nested <p> nodes\n\t\t\twhile(node.children && node.children.length === 1 && mergeable(node.children[0])) {\n\t\t\t\tnode.children = node.children[0].children;\n\t\t\t}\n\t\t} else if(hasWikiLinkRule && isCodified(node)) {\n\t\t\tdeactivateLinks(node.children);\n\t\t\tcontinue;\n\t\t}\n\t\tif(node.children && node.children.length > 0) {\n\t\t\tstack.push.apply(stack,node.children);\n\t\t}\n\t}\n}\n\n// to extend MarkdownIt outside of this module, do:\n//\n// md = $tw.Wiki.parsers[\"text/markdown\"].prototype.md;\n// md.use(plugin[, options]);\nMarkdownParser.prototype.md = createMarkdownEngine(markdownOpts,pluginOpts);\n\nfunction MarkdownParser(type,text,options) {\n\tvar env = {}\n\tvar md = this.md;\n\tvar mdTree = md.parse(text,env);\n\tvar textToParse = '<div class=\"markdown\">\\n' + md.renderer.render(mdTree,md.options,env) + '</div>';\n\n\t//console.log(JSON.stringify(mdTree,null,2));\n\t//console.log(\"\\n----------------\\n\" + textToParse);\n\n\tvar wikiParser;\n\n\tvar origParseStringLiteral = $tw.utils.parseStringLiteral;\n\t$tw.utils.parseStringLiteral = parseStringLiteralExtended;\n\n\ttry {\n\t\twikiParser = new $tw.Wiki.parsers[\"text/vnd.tiddlywiki\"](null,textToParse,{\n\t\t\tparseAsInline: true,\n\t\t\twiki: options.wiki,\n\t\t\trules: { pragma: {}, block: this.blockRuleClasses, inline: this.inlineRuleClasses }\n\t\t});\n\t}\n\tcatch (err) {\n\t\twikiParser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\",\n\t\t\t\"<strong>Error encountered while parsing the tiddler:</strong><p>\" + err.message + \"</p>\",\n\t\t\t{parseAsInline: false, wiki: options.wiki});\n\t}\n\tfinally {\n\t\t$tw.utils.parseStringLiteral = origParseStringLiteral;\n\t}\n\tif(wikiParser.tree.length > 0) {\n\t\tvar hasWikiLinkRule = false;\n\t\t// see if wikilink rule has been invoked\n\t\t$tw.utils.each(wikiParser.inlineRules,function(ruleInfo) {\n\t\t\tif(ruleInfo.rule.name === \"wikilink\") {\n\t\t\t\thasWikiLinkRule = true;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tprocessWikiTree(wikiParser.tree,hasWikiLinkRule);\n\t}\n\tthis.tree = wikiParser.tree;\n\tthis.source = text;\n\tthis.type = type || \"text/markdown\";\n\tthis.wiki = options.wiki;\n}\n\nexports[\"text/markdown\"] = MarkdownParser;\nexports[\"text/x-markdown\"] = MarkdownParser;\n})();\n","type":"application/javascript","module-type":"parser"}}} \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json.meta b/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json.meta new file mode 100644 index 00000000..2e720d8d --- /dev/null +++ b/tiddlers/TCTSystem/plugins/tiddlywiki/markdown.json.meta @@ -0,0 +1,9 @@ +author: tiddlywiki +dependents: +description: Markdown parser based on markdown-it +list: readme config syntax license +name: Markdown +plugin-type: plugin +title: $:/plugins/tiddlywiki/markdown +type: application/json +version: 5.3.1 \ No newline at end of file diff --git a/tiddlers/TCTSystem/plugins/whitefall/obsidian-vault.json b/tiddlers/TCTSystem/plugins/whitefall/obsidian-vault.json new file mode 100644 index 00000000..d78cf155 --- /dev/null +++ b/tiddlers/TCTSystem/plugins/whitefall/obsidian-vault.json @@ -0,0 +1,16 @@ +[ + { + "text": "{\"tiddlers\":{\"$:/config/markdown/breaks\":{\"title\":\"$:/config/markdown/breaks\",\"created\":\"20230915033254554\",\"modified\":\"20230915033254554\",\"type\":\"text/vnd.tiddlywiki\",\"text\":\"true\"},\"$:/plugins/whitefall/obsidian-vault/readme\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/readme\",\"type\":\"text/vnd.tiddlywiki\",\"text\":\"! tw5-obsidian-vault\\n\\n使用方式请查看:[[参考手册|https://tiddly-gittly.github.io/tidgi-obsidian-manager/]]\\n\\nGithub Repo: https://github.com/tiddly-gittly/tidgi-obsidian-manager\"},\"$:/plugins/whitefall/obsidian-vault/router/get-obvault.js\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/router/get-obvault.js\",\"text\":\"!function(){\\\"use strict\\\";exports.method=\\\"GET\\\",exports.path=/^\\\\/obvault\\\\/(.+)$/,exports.handler=function(e,t,s){var i,a,r,n,p,o,d=require(\\\"path\\\"),l=require(\\\"fs\\\"),c=$tw.utils.decodeURIComponentSafe(s.params[0]),m=s.queryParameters,u=function(e,t){var t=t||[\\\".git\\\",\\\".obsidian\\\"],i=[];if(!l.lstatSync(e).isDirectory())return s.sendResponse(400,{\\\"Content-Type\\\":\\\"text/plain\\\"},\\\"Not folder: \\\"+e),!1;for(const r of l.readdirSync(e)){var a=d.join(e,r);l.statSync(a).isFile()?i.push(a):t.includes(r)||(a=u(a),i=i.concat(a))}return i},g=function(e,t){return e=e.replace(/\\\\\\\\/g,\\\"/\\\"),(t=t.replace(/\\\\\\\\/g,\\\"/\\\")).slice(e.length+1)},f=u(c,m.ignore);0!=f&&(i=f,a=m.regText,p={obVaultName:c.split(\\\"/\\\").pop()||\\\"-\\\",mdFiles:{},imgFiles:{},bp_peer:{}},o=a||\\\"\\\",i.forEach(e=>{r=d.basename(e),n=d.extname(r),p.bp_peer[r]?p.bp_peer[r].push(g(c,e)):p.bp_peer[r]=[g(c,e)];var t;-1!==[\\\".jpg\\\",\\\".jpeg\\\",\\\".png\\\",\\\".gif\\\",\\\".bmp\\\",\\\".svg\\\"].indexOf(n)?p.imgFiles[r]?p.imgFiles[r].push({path:g(c,e),data:l.readFileSync(e).toString(\\\"base64\\\")}):p.imgFiles[r]=[{path:g(c,e),data:l.readFileSync(e).toString(\\\"base64\\\")}]:\\\".md\\\"===n&&(n=l.readFileSync(e,\\\"utf8\\\"),t=l.statSync(e),RegExp(o).test(n))&&(p.mdFiles[r]?p.mdFiles[r].push({path:g(c,e),data:n,created:$tw.utils.stringifyDate(t.birthtime),modified:$tw.utils.stringifyDate(t.mtime)}):p.mdFiles[r]=[{path:g(c,e),data:n,created:$tw.utils.stringifyDate(t.birthtime),modified:$tw.utils.stringifyDate(t.mtime)}])}),f=p,m=JSON.stringify(f),s.sendResponse(200,{\\\"Content-Type\\\":\\\"application/json\\\"},m))}}();\",\"type\":\"application/javascript\",\"module-type\":\"route\"},\"$:/plugins/whitefall/obsidian-vault/stylesheet/obsidian-main-style\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/stylesheet/obsidian-main-style\",\"tags\":\"$:/tags/Stylesheet\",\"type\":\"text/css\",\"text\":\".obvault-control-panel td{padding:4px}.obvault-control-panel table,.obvault-control-panel table input,.obvault-control-panel table textarea{width:100%}.list-obvault-scroll-container{border:2px solid #ccc;border-radius:5px;height:100px;max-height:200px;overflow-y:scroll}\"},\"$:/plugins/whitefall/obsidian-vault/ui/Panel\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/ui/Panel\",\"type\":\"text/vnd.tiddlywiki\",\"tags\":\"$:/tags/ControlPanel/SettingsTab\",\"caption\":\"obvault-Panel\",\"text\":\"\\n<$obvault/>\\n<div class=\\\"obvault-control-panel\\\">\\n<table>\\n <tr>\\n <th>Vault 文件夹路径</th>\\n </tr>\\n <tr>\\n <td><$edit-text tiddler=\\\"$:/temp/obsidian-vault/input-box-path\\\" size=\\\"48\\\" type=\\\"text\\\" tag=\\\"input\\\" default=\\\"\\\" placeholder=\\\"请输入路径\\\" focus={{$:/plugins/whitefall/obsidian-vault/config/AutoFocus}} /></td>\\n </tr>\\n</table>\\n\\n<table>\\n <tr>\\n <th>选中文件</th>\\n <th>排除文件夹</th>\\n </tr>\\n <tr>\\n <td><$edit-text tiddler=\\\"$:/temp/obsidian-vault/input-box-reg\\\" type=\\\"text\\\" tag=\\\"input\\\" default=\\\"\\\" placeholder=\\\"请输入表达式\\\" focus={{$:/plugins/whitefall/obsidian-vault/config/AutoFocus}} /></td>\\n <td><$edit-text tiddler=\\\"$:/temp/obsidian-vault/input-box-ignore\\\" type=\\\"text\\\" tag=\\\"input\\\" default=\\\"\\\" placeholder=\\\"请输入表达式\\\" focus={{$:/plugins/whitefall/obsidian-vault/config/AutoFocus}} /></td>\\n </tr>\\n</table>\\n</div>\\n\\n\\n<$set name='path' tiddler='$:/temp/obsidian-vault/input-box-path'>\\n<$set name='reg' tiddler='$:/temp/obsidian-vault/input-box-reg'>\\n<$set name='ignore' tiddler='$:/temp/obsidian-vault/input-box-ignore'>\\n <$button><$action-sendmessage $message=\\\"tw-obsidian-add\\\" path=<<path>> reg=<<reg>> ignore=<<ignore>> />add</$button>\\n <$button><$action-sendmessage $message=\\\"tw-obsidian-purge\\\" />purge</$button>\\n</$set>\\n</$set>\\n</$set>\\n\\n<details>\\n <summary>Vault List</summary>\\n <div class=\\\"list-obvault-scroll-container\\\">\\n <$list filter=\\\"[get[obvault]unique[]]\\\" variable=\\\"list-obvault\\\">\\n <div class=\\\"list-obvault-container\\\">\\n <input type=\\\"text\\\" value=<<list-obvault>> disabled=\\\"disabled\\\">\\n <$button><$action-sendmessage $message=\\\"tw-obsidian-sync\\\" obvault=<<list-obvault>> />Sync</$button>\\n <$button><$action-sendmessage $message=\\\"tw-obsidian-delete\\\" obvault=<<list-obvault>> />Delete</$button>\\n </div>\\n </$list>\\n </div>\\n <$link to=\\\"$:/status/obsidian-vault/vault-rw-config\\\">vault-rw-config</$link>\\n</details>\\n\"},\"$:/plugins/whitefall/obsidian-vault/ui/displayCaption\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/ui/displayCaption\",\"text\":\"\\\\whitespace trim\\n<h2 class=\\\"tc-title\\\">\\n{{!!caption}}\\n</h2>\"},\"$:/plugins/whitefall/obsidian-vault/ui/displayCaptionFilter\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/ui/displayCaptionFilter\",\"tags\":\"$:/tags/ViewTemplateTitleFilter\",\"list-before\":\"$:/config/ViewTemplateTitleFilters/default\",\"text\":\"[<currentTiddler>has[obvault]has[caption]then[$:/plugins/whitefall/obsidian-vault/ui/displayCaption]]\"},\"$:/plugins/whitefall/obsidian-vault/ui/settings\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/ui/settings\",\"tags\":\"$:/tags/ControlPanel/SettingsTab\",\"caption\":\"obvault settings\",\"text\":\"<$checkbox tiddler=\\\"$:/config/markdown/breaks\\\" field=\\\"text\\\" checked=\\\"true\\\" unchecked=\\\"false\\\" default=\\\"true\\\"> [[Breaks|$:/config/markdown/breaks]], 适配obsidian风格硬换行格式, 需要刷新页面后生效。</$checkbox> \\n\"},\"$:/plugins/whitefall/obsidian-vault/ui/vaulttrees\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/ui/vaulttrees\",\"tags\":\"$:/tags/SideBar\",\"caption\":\"VaultTrees\",\"text\":\"\\n<div class=\\\"tc-tree-obv\\\">\\n<span><center><p>Obsidian Vault<sup><$link to=\\\"$:/plugins/whitefall/obsidian-vault/ui/Panel\\\">p</$link></sup> 文件列表</p></center></span>\\n<<tree prefix:\\\"λ:/\\\">>\\n</div>\\n\\n<!-- \\n[get[obvault]unique[]]\\n[field:obvault[Neural-Networks]get[vaulttree]]\\n条目名必须和字段路径中的名字一致。\\n-->\\n\"},\"$:/plugins/whitefall/obsidian-vault/obvault-main.js\":{\"title\":\"$:/plugins/whitefall/obsidian-vault/obvault-main.js\",\"type\":\"application/javascript\",\"module-type\":\"widget\",\"Modern.TiddlyDev#Origin\":\"obvault-main.ts\",\"text\":\"\\\"use strict\\\";var import_widget=require(\\\"$:/core/modules/widgets/widget.js\\\");function tm_notify(t,e){$tw.wiki.addTiddler({title:\\\"$:/state/notification/\\\"+t,text:t+\\\": \\\"+e}),$tw.notifier.display(\\\"$:/state/notification/\\\"+t)}async function fetchData(t,e,i){var a,r=[\\\".git\\\",\\\".obsidian\\\",\\\".stfolder\\\",\\\".stversions\\\"],r=(\\\"\\\"===i&&(a=JSON.stringify(r)),\\\"\\\"===i&&\\\"+\\\"!==i.at(0)||(n=i.substring(1).replace(/[ ]/g,\\\"\\\").split(\\\",\\\"),a=JSON.stringify(r.concat(n))),\\\"\\\"!==i&&\\\"+\\\"!==i.at(0)&&(n=i.replace(/[ ]/g,\\\"\\\").split(\\\",\\\"),a=JSON.stringify(n)),$tw.wiki.getTiddlerText(\\\"$:/info/url/full\\\")),n=r+\\\"obvault/\\\"+t+`?regText=${e}&ignore=`+a,r=(console.log(\\\"获取数据: \\\"+n),tm_notify(\\\"获取数据: \\\",`\\\"${n.toString()}\\\"`),await fetch(n));if(400!=r.status)return a=await r.json(),console.log(\\\"获取完成, 正在写入到wiki中。\\\"),tm_notify(\\\"获取数据: \\\",\\\"获取完成, 正在写入到wiki中\\\"),a;tm_notify(\\\"获取数据: \\\",\\\"Not Folder\\\")}function isUrl(t){return new RegExp(\\\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\\\\\S+(?::\\\\\\\\S*)?@)?(?:(?:(?:[1-9]\\\\\\\\d?|1\\\\\\\\d\\\\\\\\d|2[01]\\\\\\\\d|22[0-3])(?:\\\\\\\\.(?:1?\\\\\\\\d{1,2}|2[0-4]\\\\\\\\d|25[0-5])){2}(?:\\\\\\\\.(?:[0-9]\\\\\\\\d?|1\\\\\\\\d\\\\\\\\d|2[0-4]\\\\\\\\d|25[0-4]))|(?:(?:[a-z\\\\\\\\u00a1-\\\\\\\\uffff0-9]+-?)*[a-z\\\\\\\\u00a1-\\\\\\\\uffff0-9]+)(?:\\\\\\\\.(?:[a-z\\\\\\\\u00a1-\\\\\\\\uffff0-9]+-?)*[a-z\\\\\\\\u00a1-\\\\\\\\uffff0-9]+)*(?:\\\\\\\\.(?:[a-z\\\\\\\\u00a1-\\\\\\\\uffff]{2,})))|localhost)(?::\\\\\\\\d{2,5})?(?:(/|\\\\\\\\?|#)[^\\\\\\\\s]*)?$\\\",\\\"i\\\").test(t)}function unique_or_root_link(t,e){var i=t+\\\".md\\\";if(i in e){var a=e[i];if(1===a.length){i=a[0].replace(/.md$/,\\\"\\\");if(i)return i}if(1<a.length)for(const n in a){var r=a[n].replace(/.md$/,\\\"\\\");if(!r.includes(\\\"/\\\"))return r}}return\\\"\\\"}function links_wiki_syntax(t,e,i){var a={pattern:new RegExp(\\\"(?<!!)\\\\\\\\[\\\\\\\\[(.*?)\\\\\\\\]\\\\\\\\]\\\",\\\"g\\\"),target:\\\"[[$1]]\\\"},r=(new RegExp(\\\"(?<!!)\\\\\\\\[(.*?)\\\\\\\\]\\\\\\\\((.*?)\\\\\\\\)\\\",\\\"g\\\"),[...t.matchAll(a.pattern)]);for(const s in r){var n=r[s][1],l=r[s][0],n=n.split(\\\"|\\\"),o=n[0];if(1===n.length){if(isUrl(o))break;!isUrl(o)&&o.includes(\\\"/\\\")&&(t=t.replace(l,\\\"[[\\\"+n[0].split(\\\"/\\\").slice(-1)+\\\"|λ:/\\\"+i+\\\"/\\\"+n[0]+\\\"]]\\\"));var d=unique_or_root_link(o,e);\\\"\\\"!==d&&(t=t.replace(l,\\\"[[\\\"+n[0]+\\\"|λ:/\\\"+i+\\\"/\\\"+d+\\\"]]\\\"))}1<n.length&&(isUrl(o)&&(t=t.replace(l,\\\"[[\\\"+n[1]+\\\"|\\\"+n[0]+\\\"]]\\\")),!isUrl(o)&&o.includes(\\\"/\\\")&&(t=t.replace(l,\\\"[[\\\"+n[1]+\\\"|λ:/\\\"+i+\\\"/\\\"+n[0]+\\\"]]\\\")),\\\"\\\"!==(d=unique_or_root_link(o,e)))&&(t=t.replace(l,\\\"[[\\\"+n[1]+\\\"|λ:/\\\"+i+\\\"/\\\"+d+\\\"]]\\\"))}return t}function embeds_wiki_syntax(t,r,n){return t=(t=t.replace(/\\\\!\\\\[\\\\[(.*?)\\\\]\\\\]/g,(t,e)=>{var i=e.split(\\\"|\\\"),a=i[0].split(\\\".\\\").slice(-1)[0].trim();if(-1===[\\\"jpg\\\",\\\"jpeg\\\",\\\"png\\\",\\\"gif\\\",\\\"bmp\\\",\\\"svg\\\"].indexOf(a)){if(1===i.length){a=unique_or_root_link(i[0],r);if(\\\"\\\"!==a)return\\\"{{λ:/\\\"+n+\\\"/\\\"+a+\\\"}}\\\"}return\\\"{{\\\"+e+\\\"}}\\\"}if(1===i.length)return\\\"[img [\\\"+i[0].trim()+\\\"]]\\\";if(1<i.length){a=+i.slice(-1)[0];if(\\\"number\\\"==typeof a)return\\\"[img width=\\\"+a+\\\" [\\\"+i[0].trim()+\\\"]]\\\"}})).replace(/\\\\!\\\\[(.*?)\\\\]\\\\((.*?)\\\\)/g,(t,e,i)=>{var a=e.split(\\\"|\\\"),r=i,n=r.split(\\\".\\\").slice(-1)[0].trim();if(-1===[\\\"jpg\\\",\\\"jpeg\\\",\\\"png\\\",\\\"gif\\\",\\\"bmp\\\",\\\"svg\\\",\\\"ico\\\"].indexOf(n))return t;if(0===a.length||\\\"\\\"===a[0].trim())return\\\"[img [\\\"+r+\\\"]]\\\";if(1===a.length)return\\\"[img [\\\"+a[0].trim()+\\\"|\\\"+r+\\\"]]\\\";if(1<a.length){n=+a.slice(-1)[0].split(\\\"x\\\")[0];if(\\\"number\\\"==typeof n)return\\\"[img width=\\\"+n+\\\" [\\\"+a[0].trim()+\\\"|\\\"+r+\\\"]]\\\"}})}function bold_wiki_syntax(t){return t=t.replace(/\\\\x20*\\\\*\\\\*(.*?)\\\\*\\\\*\\\\x20*/g,\\\" **$1** \\\")}async function convert(t,e,i){return t=void 0!==t&&0!==t.length?bold_wiki_syntax(t=links_wiki_syntax(t=embeds_wiki_syntax(t,e,i),e,i)):t}async function addVault(t){console.log(\\\"vaultName: \\\"+t.obVaultName);var e=$tw.wiki.getTiddlerText(\\\"$:/status/UserName\\\");for(const w in t.mdFiles){var i=t.mdFiles[w];if(0!=i.length&&1==i.length){var a=await convert(i[0].data,t.bp_peer,t.obVaultName),r=\\\"λ:/\\\"+t.obVaultName+\\\"/\\\"+i[0].path.split(\\\".\\\")[0];$tw.wiki.addTiddler(new $tw.Tiddler({title:r,type:\\\"text/markdown\\\",caption:w.split(\\\".\\\")[0],created:i[0].created,modified:i[0].modified,modifier:e,text:a,obvault:t.obVaultName})),console.log(\\\"创建条目:\\\"+r)}else if(1<i.length)for(const p in i){var n=i[p],l=await convert(n.data,t.bp_peer,t.obVaultName),o=\\\"λ:/\\\"+t.obVaultName+\\\"/\\\"+n.path.split(\\\".\\\")[0];$tw.wiki.addTiddler(new $tw.Tiddler({title:o,type:\\\"text/markdown\\\",caption:n.path.split(\\\".\\\")[0].split(\\\"/\\\").slice(-1),created:n.created,modified:n.modified,modifier:e,text:l,obvault:t.obVaultName})),console.log(\\\"创建同名异径条目:\\\"+o)}}for(const m in t.imgFiles){var d=t.imgFiles[m];if(0!=d.length&&1==d.length){var s=m,u=\\\"image/\\\"+s.substring(s.lastIndexOf(\\\".\\\")+1);$tw.wiki.addTiddler(new $tw.Tiddler({title:s,type:u,text:d[0].data,obvault:t.obVaultName})),console.log(\\\"创建图片条目:\\\"+s)}else if(1<d.length)for(const v in d){var g=d[v],f=g.path,c=\\\"image/\\\"+f.substring(f.lastIndexOf(\\\".\\\")+1);$tw.wiki.addTiddler(new $tw.Tiddler({title:f,type:c,text:g.data,obvault:t.obVaultName})),console.log(\\\"创建图片条目:\\\"+f)}}console.log(\\\"addVault: 所有添加工作已完成。\\\"),tm_notify(\\\"addVault\\\",\\\"所有添加工作已完成,请等待【文件系统同步服务】完成任务。\\\")}async function purgeVault(t){var e;console.log(\\\"purgeVault: \\\"+t),\\\"\\\"!==t&&(e=$tw.wiki.filterTiddlers(`[field:obvault[${t}]]`),tm_notify(\\\"purgeVault\\\",`正在清空${t}Vault`),await deleteTiddler(e)),void 0!==t&&\\\"\\\"!==t||await deleteTiddler($tw.wiki.filterTiddlers(\\\"[has:field[obvault]]\\\"))}async function deleteTiddler(t){0!==t.length?(t.forEach(t=>{console.log(\\\"删除条目:\\\"+t),$tw.wiki.deleteTiddler(t)}),tm_notify(\\\"purgeVault\\\",\\\"所有删除工作已完成, 请等待【文件系统同步服务】完成任务。\\\")):tm_notify(\\\"purgeVault\\\",\\\"未曾添加Obsidian仓库, 写入记录为空。\\\")}var CONFIG_FILE=\\\"$:/status/obsidian-vault/vault-rw-config\\\";function _getConfig(){var t=$tw.wiki.getTiddlerText(CONFIG_FILE);if(void 0===t)return{};try{return JSON.parse(t)}catch(e){return console.log(\\\"解析JSON失败, 不是正确的JSON格式!\\\"),console.log(e),$tw.wiki.deleteTiddler(CONFIG_FILE),{}}}function addConfig(t){var e={..._getConfig(),...t};$tw.wiki.addTiddler(new $tw.Tiddler({title:CONFIG_FILE,text:JSON.stringify(e)}))}function getConfigJSON(){return _getConfig()}function deleteConfig(t){var e=$tw.wiki.getTiddlerText(CONFIG_FILE);void 0!==e&&(delete(e=JSON.parse(e))[t],$tw.wiki.addTiddler(new $tw.Tiddler({title:CONFIG_FILE,text:JSON.stringify(e)}))),void 0!==t&&\\\"\\\"!==t||$tw.wiki.deleteTiddler(CONFIG_FILE)}var ObVaultServer=class{constructor(){$tw.rootWidget.addEventListener(\\\"tw-obsidian-add\\\",async t=>{await this.getAndWrite(t.paramObject.path,t.paramObject.reg,t.paramObject.ignore)}),$tw.rootWidget.addEventListener(\\\"tw-obsidian-purge\\\",async t=>{purgeVault(),deleteConfig()}),$tw.rootWidget.addEventListener(\\\"tw-obsidian-sync\\\",async t=>{var e=t.paramObject.obvault,i=getConfigJSON();\\\"{}\\\"!==JSON.stringify(i)?(console.log(\\\"开始更新Vault。\\\"),tm_notify(\\\"Vault-Sync\\\",\\\"开始更新Vault。\\\"),purgeVault(e),await this.getAndWrite(i[e].path,i[e].reg,i[e].ignore)):(console.log(\\\"更新失败, CONFIG_FILE为空。重新添加Vault后, 将自动生成记录\\\"),tm_notify(\\\"Vault-Sync\\\",\\\"更新失败, CONFIG_FILE为空。重新添加Vault后, 将自动生成记录\\\"))}),$tw.rootWidget.addEventListener(\\\"tw-obsidian-delete\\\",async t=>{var e=t.paramObject.obvault;console.log(\\\"删除Vault: \\\"+e),tm_notify(\\\"Vault-Delete\\\",\\\"删除Vault: \\\"+e),purgeVault(e),deleteConfig(e)})}async getAndWrite(t,e,i){var a,r,n;this.isValidPath(t)&&(a=await fetchData(t,e,i),r={},n=this.getFolderName(t),void 0!==a)&&(r[n]={path:t,reg:e,ignore:i},addVault(a),addConfig(r))}isValidPath(t){return\\\"\\\"===t?(console.log(\\\"路径为空!\\\"),tm_notify(\\\"addVault\\\",\\\"路径为空!\\\"),!1):!!/^(\\\\/|\\\\.\\\\.?\\\\/|([A-Za-z]:)?[\\\\\\\\|\\\\/])[^\\\\\\\\|\\\\/]+([\\\\\\\\|\\\\/][^\\\\\\\\|\\\\/]+)*[\\\\\\\\|\\\\/]?$/.test(t)||(console.log(\\\"无效路径!\\\"),tm_notify(\\\"addVault\\\",\\\"无效路径!\\\"),!1)}getFolderName(t){var e=t.lastIndexOf(\\\"/\\\"),i=t.lastIndexOf(\\\"\\\\\\\\\\\"),e=Math.max(e,i);return e<0?t:t.substring(e+1)}},ObVaultWidget=class extends import_widget.widget{refresh(t){this.computeAttributes();return!1}async render(t,e){this.parentDomNode=t,this.execute();new ObVaultServer}};exports.obvault=ObVaultWidget;\"}}}", + "title": "$:/plugins/whitefall/obsidian-vault", + "type": "application/json", + "author": "whitefall", + "core-version": ">=5.2.0", + "dependents": "$:/plugins/tiddlywiki/markdown", + "description": "从 Obsidian 笔记库导入 Markdown 文件到 TiddlyWiki", + "list": "readme ui/Panel ui/settings", + "name": "Obsidian Vault", + "plugin-type": "plugin", + "version": "0.1.1", + "Modern.TiddlyDev#SHA256-Hashed": "a0209d5dc6a40496aae1013de54d548359cddf30d50a8b9d2585041f1b25c83f" + } +] \ No newline at end of file diff --git a/tiddlers/TCTSystem/themes/tiddlywiki/vanilla/metrics/sidebarwidth.tid b/tiddlers/TCTSystem/themes/tiddlywiki/vanilla/metrics/sidebarwidth.tid index b510a146..d2a10656 100644 --- a/tiddlers/TCTSystem/themes/tiddlywiki/vanilla/metrics/sidebarwidth.tid +++ b/tiddlers/TCTSystem/themes/tiddlywiki/vanilla/metrics/sidebarwidth.tid @@ -1,8 +1,8 @@ created: 20230228082610796 creator: 马不前 -modified: 20230814020218039 +modified: 20231019100315182 modifier: WhiteFall title: $:/themes/tiddlywiki/vanilla/metrics/sidebarwidth type: text/vnd.tiddlywiki -35vw \ No newline at end of file +33.19946452476573vw \ No newline at end of file diff --git a/tiddlers/header.tid b/tiddlers/header.tid new file mode 100644 index 00000000..0ae11b83 --- /dev/null +++ b/tiddlers/header.tid @@ -0,0 +1,29 @@ +created: 20211028175214742 +creator: 林一二 +modified: 20231019095949697 +modifier: 林一二 +tags: 欢迎来到太微! +title: header +type: text/vnd.tiddlywiki + +\define fb(label:label filter color:green) +<$image source={{{ [[]addprefix[https://img.shields.io/badge/]] [<__label__>addsuffix[-]] $filter$ [[-]addsuffix<__color__>] +[join[]] }}} /> +\end + +<center> +<<fb 文章 [!is[system]count[]] yellow>> +<<fb 更新 [!is[system]!has[draft.of]!sort[modified]limit[1]get[modified]format:relativedate[]] 9cf>> +<<fb 插件 [plugin-type[plugin]count[]] green>> +<a href="https://talk.tidgi.fun/" target="_blank"> +<img src="https://img.shields.io/badge/太微中文论坛-black.svg?style=flat-square&logo=tiddlywiki" alt="太微中文论坛" > +</a> +</center> + +<center> +<<fbox """ +https://cdn.jsdelivr.net/gh/tiddly-gittly/TiddlyWiki-Chinese-Tutorial@master/tiddlers/gallary-1.png +https://cdn.jsdelivr.net/gh/tiddly-gittly/TiddlyWiki-Chinese-Tutorial@master/tiddlers/gallary-2.png +""" +caption: "xxx" +width: 256>> +</center> \ No newline at end of file diff --git "a/tiddlers/\345\276\275\347\253\240\345\210\227\350\241\250.tid" "b/tiddlers/\345\276\275\347\253\240\345\210\227\350\241\250.tid" deleted file mode 100644 index 65a64866..00000000 --- "a/tiddlers/\345\276\275\347\253\240\345\210\227\350\241\250.tid" +++ /dev/null @@ -1,16 +0,0 @@ -created: 20211028175214742 -creator: 林一二 -modified: 20230113082027844 -modifier: 林一二 -tags: 欢迎来到太微! -title: 徽章列表 -type: text/vnd.tiddlywiki - -<<dbadge 笔记应用 "[[TGNote|https://github.com/tiddly-gittly/TiddlyGit-Desktop]]" info>> <<dbadge 部署 "[[Github Actions|https://github.com/tiddly-gittly/TiddlyWiki-Chinese-Tutorial/actions]]" success>> <<dbadge 双向链接 "[[支持|反向链接]]" "danger">> - -<a href="https://app.netlify.com/sites/tw-cn/deploys"> -<$image source="https://api.netlify.com/api/v1/badges/2d87784e-fe3b-47a2-ae73-7a2f266f74a8/deploy-status" /> -</a> -<a href="https://github.com/tiddly-gittly/TiddlyWiki-Chinese-Tutorial/discussions" target="_blank"> -<img src="https://img.shields.io/badge/太微中文讨论区-black.svg?style=flat-square&logo=tiddlywiki" alt="太微中文讨论区" > -</a> diff --git "a/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md" "b/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md" new file mode 100644 index 00000000..f38c419c --- /dev/null +++ "b/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md" @@ -0,0 +1,9 @@ +{{header}} + +## 介绍 + +:::abstract 太微 +**TiddlyWiki**, 中文名 **太微** +::: + +## 其他太微教程推荐 diff --git "a/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md.meta" "b/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md.meta" new file mode 100644 index 00000000..f6b1ef83 --- /dev/null +++ "b/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.md.meta" @@ -0,0 +1,10 @@ +class: autonumhead +created: 20210902044836979 +creator: 林一二 +icon: 🎉 +list: 太微背景介绍 幻灯片 如何保存 基础知识 高级知识 自动化 排查问题 资源链接 插件开发 插件使用 笔记思维 社区建设 header 使太微更易用 问题以及想法 欢迎来到太微! +modified: 20231019100421134 +modifier: 马不前 +page-cover: https://pic4.zhimg.com/v2-881f391ae052f85939fcfeb40bc2056c +title: 欢迎来到太微! +type: text/markdown \ No newline at end of file diff --git "a/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.tid" "b/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.tid" deleted file mode 100644 index fdc5c2d0..00000000 --- "a/tiddlers/\346\254\242\350\277\216\346\235\245\345\210\260\345\244\252\345\276\256\357\274\201.tid" +++ /dev/null @@ -1,48 +0,0 @@ -class: autonumhead -created: 20210902044836979 -creator: 林一二 -icon: 🎉 -list: 太微背景介绍 幻灯片 如何保存 基础知识 高级知识 自动化 排查问题 资源链接 插件开发 插件使用 笔记思维 社区建设 徽章列表 使太微更易用 问题以及想法 欢迎来到太微! -modified: 20230904042250782 -modifier: 马不前 -page-cover: https://pic4.zhimg.com/v2-881f391ae052f85939fcfeb40bc2056c -title: 欢迎来到太微! -type: text/vnd.tiddlywiki - -{{徽章列表}} -{{$:/config/oeyoews/info}} - -{{Gallary}} - -!! 如何浏览此知识库 - -# 可以翻阅右边的[[文档目录|TW-Locator例子:当前知识库的目录]],注意查看[[文档目录的使用帮助|$:/plugins/linonetwo/itonnote/Help/TW-Locator基于标签生成的文件夹目录结构使用方法]] -# 查看每个[[条目]]底部的[[反向链接]] -# 点击右边栏上的 {{$:/core/ui/Buttons/CommandPalette}} 按钮来打开搜索框(或直接点击 {{$:/core/ui/Buttons/CommandPalette}} !) - -!! 如何开始使用太微 - -# 查看[[如何保存]]来下载相关应用程序,创建你自己的知识库。 -# 访问 [ext[可离线版本|/offline.html]] 可以让你点击侧边栏上的下载按钮__把网页下载为单个HTML文件__离线阅读。也可以在网页上直接修改此知识库试试,放心,[[你不会真正修改到我们数据库里的内容|如何保存内容到社区仓库里]]。 -# 对TiddlyWiki进行功能分级,大概可以分成四个方面:[[开发框架/知识管理操作系统|太微与太记的区别]] > [[插件开发]] > [[Wiki编程|Wiki编程的定义]] > [[WikiText笔记与写作|WikiText笔记与写作(进一步的可能)]]。 -# 你可以在[[资源链接]]里找到''其它社区资源链接''、[[TiddlyWiki教程|教程链接]]、[[知识链接|知识链]]与正在使用的[[个人太微Wiki示例|TiddlyWiki中文网站示例]],还有常用的[[插件介绍|插件列表]](包括TidGi预制插件)、一份__TiddlyWiki游戏__和[[TiddlyWiki的全平台软件|全平台软件和存储方式]]以及工作流程。 - - -!! 背景介绍 - -<<reuse-tiddler "太微背景介绍">> - -!! 如何更新此文档 - -<<reuse-tiddler "如何保存内容到社区仓库里">> - -<<reuse-tiddler "快速创建新笔记按钮">> - -!! 我们的计划 - -<<reuse-tiddler "社区建设">> - - -[[中文教程最近更新动态|最近更新状态]] - - diff --git a/tiddlywiki.info b/tiddlywiki.info index f836adcd..509e1f98 100644 --- a/tiddlywiki.info +++ b/tiddlywiki.info @@ -1,6 +1,8 @@ { "description": "太微中文教程", "plugins": [ + "tiddlywiki/filesystem", + "tiddlywiki/tiddlyweb", "tiddlywiki/browser-sniff", "tiddlywiki/pluginlibrary", "tiddlywiki/highlight", @@ -56,4 +58,4 @@ "config": { "retain-original-tiddler-path": true } -} +} \ No newline at end of file