From aff3c348c4613e31bbbeb1224c32923a0ba34f55 Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Tue, 18 Mar 2025 22:46:53 -0700 Subject: [PATCH] reference --- app/404.html | 12 + app/course.html | 54 + app/index.html | 56 + database/courses.json | 50 + index.js | 86 + node_modules/.bin/.mime-EbN0JQTd | 1 + node_modules/.bin/.nodemon-uy95b7Vy | 1 + node_modules/.bin/.nodetouch-ig7IYS6V | 1 + node_modules/.bin/.semver-uYYV4CWo | 1 + node_modules/.bin/mime | 16 + node_modules/.bin/mime.cmd | 17 + node_modules/.bin/mime.ps1 | 28 + node_modules/.bin/nodemon | 16 + node_modules/.bin/nodemon.cmd | 17 + node_modules/.bin/nodemon.ps1 | 28 + node_modules/.bin/nodetouch | 16 + node_modules/.bin/nodetouch.cmd | 17 + node_modules/.bin/nodetouch.ps1 | 28 + node_modules/.bin/semver | 16 + node_modules/.bin/semver.cmd | 17 + node_modules/.bin/semver.ps1 | 28 + node_modules/.package-lock.json | 1182 +++ node_modules/accepts/HISTORY.md | 243 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 140 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 47 + node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 20 + node_modules/anymatch/index.js | 104 + node_modules/anymatch/package.json | 48 + node_modules/array-flatten/LICENSE | 21 + node_modules/array-flatten/README.md | 43 + node_modules/array-flatten/array-flatten.js | 64 + node_modules/array-flatten/package.json | 39 + .../balanced-match/.github/FUNDING.yml | 2 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 97 + node_modules/balanced-match/index.js | 62 + node_modules/balanced-match/package.json | 48 + .../binary-extensions/binary-extensions.json | 263 + .../binary-extensions.json.d.ts | 3 + node_modules/binary-extensions/index.d.ts | 14 + node_modules/binary-extensions/index.js | 1 + node_modules/binary-extensions/license | 10 + node_modules/binary-extensions/package.json | 40 + node_modules/binary-extensions/readme.md | 25 + node_modules/body-parser/HISTORY.md | 672 ++ node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 476 + node_modules/body-parser/SECURITY.md | 25 + node_modules/body-parser/index.js | 156 + node_modules/body-parser/lib/read.js | 205 + node_modules/body-parser/lib/types/json.js | 247 + node_modules/body-parser/lib/types/raw.js | 101 + node_modules/body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 307 + node_modules/body-parser/package.json | 56 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 586 ++ node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 60 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 331 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 122 + node_modules/braces/package.json | 77 + node_modules/bytes/History.md | 97 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 152 + node_modules/bytes/index.js | 170 + node_modules/bytes/package.json | 42 + .../call-bind-apply-helpers/.eslintrc | 17 + .../.github/FUNDING.yml | 12 + node_modules/call-bind-apply-helpers/.nycrc | 9 + .../call-bind-apply-helpers/CHANGELOG.md | 30 + node_modules/call-bind-apply-helpers/LICENSE | 21 + .../call-bind-apply-helpers/README.md | 62 + .../call-bind-apply-helpers/actualApply.d.ts | 1 + .../call-bind-apply-helpers/actualApply.js | 10 + .../call-bind-apply-helpers/applyBind.d.ts | 19 + .../call-bind-apply-helpers/applyBind.js | 10 + .../functionApply.d.ts | 1 + .../call-bind-apply-helpers/functionApply.js | 4 + .../call-bind-apply-helpers/functionCall.d.ts | 1 + .../call-bind-apply-helpers/functionCall.js | 4 + .../call-bind-apply-helpers/index.d.ts | 64 + node_modules/call-bind-apply-helpers/index.js | 15 + .../call-bind-apply-helpers/package.json | 85 + .../call-bind-apply-helpers/reflectApply.d.ts | 3 + .../call-bind-apply-helpers/reflectApply.js | 4 + .../call-bind-apply-helpers/test/index.js | 63 + .../call-bind-apply-helpers/tsconfig.json | 9 + node_modules/call-bound/.eslintrc | 13 + node_modules/call-bound/.github/FUNDING.yml | 12 + node_modules/call-bound/.nycrc | 9 + node_modules/call-bound/CHANGELOG.md | 34 + node_modules/call-bound/LICENSE | 21 + node_modules/call-bound/README.md | 53 + node_modules/call-bound/index.d.ts | 13 + node_modules/call-bound/index.js | 18 + node_modules/call-bound/package.json | 99 + node_modules/call-bound/test/index.js | 54 + node_modules/call-bound/tsconfig.json | 9 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 308 + node_modules/chokidar/index.js | 973 ++ node_modules/chokidar/lib/constants.js | 66 + node_modules/chokidar/lib/fsevents-handler.js | 526 + node_modules/chokidar/lib/nodefs-handler.js | 654 ++ node_modules/chokidar/package.json | 70 + node_modules/chokidar/types/index.d.ts | 192 + node_modules/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 43 + node_modules/concat-map/test/map.js | 39 + node_modules/content-disposition/HISTORY.md | 60 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 142 + node_modules/content-disposition/index.js | 458 + node_modules/content-disposition/package.json | 44 + node_modules/content-type/HISTORY.md | 29 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 94 + node_modules/content-type/index.js | 225 + node_modules/content-type/package.json | 42 + node_modules/cookie-signature/.npmignore | 4 + node_modules/cookie-signature/History.md | 38 + node_modules/cookie-signature/Readme.md | 42 + node_modules/cookie-signature/index.js | 51 + node_modules/cookie-signature/package.json | 18 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 317 + node_modules/cookie/SECURITY.md | 25 + node_modules/cookie/index.js | 334 + node_modules/cookie/package.json | 44 + node_modules/debug/.coveralls.yml | 1 + node_modules/debug/.eslintrc | 11 + node_modules/debug/.npmignore | 9 + node_modules/debug/.travis.yml | 14 + node_modules/debug/CHANGELOG.md | 362 + node_modules/debug/LICENSE | 19 + node_modules/debug/Makefile | 50 + node_modules/debug/README.md | 312 + node_modules/debug/component.json | 19 + node_modules/debug/karma.conf.js | 70 + node_modules/debug/node.js | 1 + node_modules/debug/package.json | 49 + node_modules/debug/src/browser.js | 185 + node_modules/debug/src/debug.js | 202 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/inspector-log.js | 15 + node_modules/debug/src/node.js | 248 + node_modules/depd/History.md | 103 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 538 ++ node_modules/depd/lib/browser/index.js | 77 + node_modules/depd/package.json | 45 + node_modules/destroy/LICENSE | 23 + node_modules/destroy/README.md | 63 + node_modules/destroy/index.js | 209 + node_modules/destroy/package.json | 48 + node_modules/dunder-proto/.eslintrc | 5 + node_modules/dunder-proto/.github/FUNDING.yml | 12 + node_modules/dunder-proto/.nycrc | 13 + node_modules/dunder-proto/CHANGELOG.md | 24 + node_modules/dunder-proto/LICENSE | 21 + node_modules/dunder-proto/README.md | 54 + node_modules/dunder-proto/get.d.ts | 5 + node_modules/dunder-proto/get.js | 30 + node_modules/dunder-proto/package.json | 76 + node_modules/dunder-proto/set.d.ts | 5 + node_modules/dunder-proto/set.js | 35 + node_modules/dunder-proto/test/get.js | 34 + node_modules/dunder-proto/test/index.js | 4 + node_modules/dunder-proto/test/set.js | 50 + node_modules/dunder-proto/tsconfig.json | 9 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 29 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 109 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 40 + node_modules/es-define-property/.eslintrc | 13 + .../es-define-property/.github/FUNDING.yml | 12 + node_modules/es-define-property/.nycrc | 9 + node_modules/es-define-property/CHANGELOG.md | 29 + node_modules/es-define-property/LICENSE | 21 + node_modules/es-define-property/README.md | 49 + node_modules/es-define-property/index.d.ts | 3 + node_modules/es-define-property/index.js | 14 + node_modules/es-define-property/package.json | 81 + node_modules/es-define-property/test/index.js | 56 + node_modules/es-define-property/tsconfig.json | 10 + node_modules/es-errors/.eslintrc | 5 + node_modules/es-errors/.github/FUNDING.yml | 12 + node_modules/es-errors/CHANGELOG.md | 40 + node_modules/es-errors/LICENSE | 21 + node_modules/es-errors/README.md | 55 + node_modules/es-errors/eval.d.ts | 3 + node_modules/es-errors/eval.js | 4 + node_modules/es-errors/index.d.ts | 3 + node_modules/es-errors/index.js | 4 + node_modules/es-errors/package.json | 80 + node_modules/es-errors/range.d.ts | 3 + node_modules/es-errors/range.js | 4 + node_modules/es-errors/ref.d.ts | 3 + node_modules/es-errors/ref.js | 4 + node_modules/es-errors/syntax.d.ts | 3 + node_modules/es-errors/syntax.js | 4 + node_modules/es-errors/test/index.js | 19 + node_modules/es-errors/tsconfig.json | 49 + node_modules/es-errors/type.d.ts | 3 + node_modules/es-errors/type.js | 4 + node_modules/es-errors/uri.d.ts | 3 + node_modules/es-errors/uri.js | 4 + node_modules/es-object-atoms/.eslintrc | 16 + .../es-object-atoms/.github/FUNDING.yml | 12 + node_modules/es-object-atoms/CHANGELOG.md | 37 + node_modules/es-object-atoms/LICENSE | 21 + node_modules/es-object-atoms/README.md | 63 + .../RequireObjectCoercible.d.ts | 3 + .../es-object-atoms/RequireObjectCoercible.js | 11 + node_modules/es-object-atoms/ToObject.d.ts | 7 + node_modules/es-object-atoms/ToObject.js | 10 + node_modules/es-object-atoms/index.d.ts | 3 + node_modules/es-object-atoms/index.js | 4 + node_modules/es-object-atoms/isObject.d.ts | 3 + node_modules/es-object-atoms/isObject.js | 6 + node_modules/es-object-atoms/package.json | 80 + node_modules/es-object-atoms/test/index.js | 38 + node_modules/es-object-atoms/tsconfig.json | 6 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 24 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 47 + node_modules/express/History.md | 3656 +++++++ node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 260 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 661 ++ node_modules/express/lib/express.js | 116 + node_modules/express/lib/middleware/init.js | 43 + node_modules/express/lib/middleware/query.js | 47 + node_modules/express/lib/request.js | 525 + node_modules/express/lib/response.js | 1179 +++ node_modules/express/lib/router/index.js | 673 ++ node_modules/express/lib/router/layer.js | 181 + node_modules/express/lib/router/route.js | 230 + node_modules/express/lib/utils.js | 303 + node_modules/express/lib/view.js | 182 + node_modules/express/package.json | 102 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 248 + node_modules/fill-range/package.json | 74 + node_modules/finalhandler/HISTORY.md | 210 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 147 + node_modules/finalhandler/SECURITY.md | 25 + node_modules/finalhandler/index.js | 341 + node_modules/finalhandler/package.json | 47 + node_modules/forwarded/HISTORY.md | 21 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 90 + node_modules/forwarded/package.json | 45 + node_modules/fresh/HISTORY.md | 70 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 119 + node_modules/fresh/index.js | 137 + node_modules/fresh/package.json | 46 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + node_modules/get-intrinsic/.eslintrc | 38 + .../get-intrinsic/.github/FUNDING.yml | 12 + node_modules/get-intrinsic/.nycrc | 9 + node_modules/get-intrinsic/CHANGELOG.md | 178 + node_modules/get-intrinsic/LICENSE | 21 + node_modules/get-intrinsic/README.md | 71 + node_modules/get-intrinsic/index.js | 377 + node_modules/get-intrinsic/package.json | 97 + .../get-intrinsic/test/GetIntrinsic.js | 274 + node_modules/get-proto/.eslintrc | 10 + node_modules/get-proto/.github/FUNDING.yml | 12 + node_modules/get-proto/.nycrc | 9 + node_modules/get-proto/CHANGELOG.md | 21 + node_modules/get-proto/LICENSE | 21 + .../get-proto/Object.getPrototypeOf.d.ts | 5 + .../get-proto/Object.getPrototypeOf.js | 6 + node_modules/get-proto/README.md | 50 + .../get-proto/Reflect.getPrototypeOf.d.ts | 3 + .../get-proto/Reflect.getPrototypeOf.js | 4 + node_modules/get-proto/index.d.ts | 5 + node_modules/get-proto/index.js | 27 + node_modules/get-proto/package.json | 81 + node_modules/get-proto/test/index.js | 68 + node_modules/get-proto/tsconfig.json | 9 + node_modules/glob-parent/CHANGELOG.md | 110 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 42 + node_modules/glob-parent/package.json | 48 + node_modules/gopd/.eslintrc | 16 + node_modules/gopd/.github/FUNDING.yml | 12 + node_modules/gopd/CHANGELOG.md | 45 + node_modules/gopd/LICENSE | 21 + node_modules/gopd/README.md | 40 + node_modules/gopd/gOPD.d.ts | 1 + node_modules/gopd/gOPD.js | 4 + node_modules/gopd/index.d.ts | 5 + node_modules/gopd/index.js | 15 + node_modules/gopd/package.json | 77 + node_modules/gopd/test/index.js | 36 + node_modules/gopd/tsconfig.json | 9 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 44 + node_modules/has-flag/readme.md | 70 + node_modules/has-symbols/.eslintrc | 11 + node_modules/has-symbols/.github/FUNDING.yml | 12 + node_modules/has-symbols/.nycrc | 9 + node_modules/has-symbols/CHANGELOG.md | 91 + node_modules/has-symbols/LICENSE | 21 + node_modules/has-symbols/README.md | 46 + node_modules/has-symbols/index.d.ts | 3 + node_modules/has-symbols/index.js | 14 + node_modules/has-symbols/package.json | 111 + node_modules/has-symbols/shams.d.ts | 3 + node_modules/has-symbols/shams.js | 45 + node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 29 + .../test/shams/get-own-property-symbols.js | 29 + node_modules/has-symbols/test/tests.js | 58 + node_modules/has-symbols/tsconfig.json | 10 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/http-errors/HISTORY.md | 180 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 169 + node_modules/http-errors/index.js | 289 + node_modules/http-errors/package.json | 50 + node_modules/iconv-lite/Changelog.md | 162 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 ++ .../iconv-lite/encodings/dbcs-data.js | 176 + node_modules/iconv-lite/encodings/index.js | 22 + node_modules/iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 177 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/extend-node.js | 217 + node_modules/iconv-lite/lib/index.d.ts | 24 + node_modules/iconv-lite/lib/index.js | 153 + node_modules/iconv-lite/lib/streams.js | 121 + node_modules/iconv-lite/package.json | 46 + node_modules/ignore-by-default/LICENSE | 14 + node_modules/ignore-by-default/README.md | 26 + node_modules/ignore-by-default/index.js | 12 + node_modules/ignore-by-default/package.json | 34 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 ++ node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 35 + node_modules/is-binary-path/index.d.ts | 17 + node_modules/is-binary-path/index.js | 7 + node_modules/is-binary-path/license | 9 + node_modules/is-binary-path/package.json | 40 + node_modules/is-binary-path/readme.md | 34 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/math-intrinsics/.eslintrc | 16 + .../math-intrinsics/.github/FUNDING.yml | 12 + node_modules/math-intrinsics/CHANGELOG.md | 24 + node_modules/math-intrinsics/LICENSE | 21 + node_modules/math-intrinsics/README.md | 50 + node_modules/math-intrinsics/abs.d.ts | 1 + node_modules/math-intrinsics/abs.js | 4 + .../constants/maxArrayLength.d.ts | 3 + .../constants/maxArrayLength.js | 4 + .../constants/maxSafeInteger.d.ts | 3 + .../constants/maxSafeInteger.js | 5 + .../math-intrinsics/constants/maxValue.d.ts | 3 + .../math-intrinsics/constants/maxValue.js | 5 + node_modules/math-intrinsics/floor.d.ts | 1 + node_modules/math-intrinsics/floor.js | 4 + node_modules/math-intrinsics/isFinite.d.ts | 3 + node_modules/math-intrinsics/isFinite.js | 12 + node_modules/math-intrinsics/isInteger.d.ts | 3 + node_modules/math-intrinsics/isInteger.js | 16 + node_modules/math-intrinsics/isNaN.d.ts | 1 + node_modules/math-intrinsics/isNaN.js | 6 + .../math-intrinsics/isNegativeZero.d.ts | 3 + .../math-intrinsics/isNegativeZero.js | 6 + node_modules/math-intrinsics/max.d.ts | 1 + node_modules/math-intrinsics/max.js | 4 + node_modules/math-intrinsics/min.d.ts | 1 + node_modules/math-intrinsics/min.js | 4 + node_modules/math-intrinsics/mod.d.ts | 3 + node_modules/math-intrinsics/mod.js | 9 + node_modules/math-intrinsics/package.json | 86 + node_modules/math-intrinsics/pow.d.ts | 1 + node_modules/math-intrinsics/pow.js | 4 + node_modules/math-intrinsics/round.d.ts | 1 + node_modules/math-intrinsics/round.js | 4 + node_modules/math-intrinsics/sign.d.ts | 3 + node_modules/math-intrinsics/sign.js | 11 + node_modules/math-intrinsics/test/index.js | 192 + node_modules/math-intrinsics/tsconfig.json | 3 + node_modules/media-typer/HISTORY.md | 22 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 81 + node_modules/media-typer/index.js | 270 + node_modules/media-typer/package.json | 26 + node_modules/merge-descriptors/HISTORY.md | 21 + node_modules/merge-descriptors/LICENSE | 23 + node_modules/merge-descriptors/README.md | 49 + node_modules/merge-descriptors/index.js | 60 + node_modules/merge-descriptors/package.json | 39 + node_modules/methods/HISTORY.md | 29 + node_modules/methods/LICENSE | 24 + node_modules/methods/README.md | 51 + node_modules/methods/index.js | 69 + node_modules/methods/package.json | 36 + node_modules/mime-db/HISTORY.md | 507 + node_modules/mime-db/LICENSE | 23 + node_modules/mime-db/README.md | 100 + node_modules/mime-db/db.json | 8519 +++++++++++++++++ node_modules/mime-db/index.js | 12 + node_modules/mime-db/package.json | 60 + node_modules/mime-types/HISTORY.md | 397 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 113 + node_modules/mime-types/index.js | 188 + node_modules/mime-types/package.json | 44 + node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 164 + node_modules/mime/LICENSE | 21 + node_modules/mime/README.md | 90 + node_modules/mime/cli.js | 8 + node_modules/mime/mime.js | 108 + node_modules/mime/package.json | 44 + node_modules/mime/src/build.js | 53 + node_modules/mime/src/test.js | 60 + node_modules/mime/types.json | 1 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 230 + node_modules/minimatch/minimatch.js | 947 ++ node_modules/minimatch/package.json | 33 + node_modules/ms/index.js | 152 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 51 + node_modules/negotiator/HISTORY.md | 108 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 203 + node_modules/negotiator/index.js | 82 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 184 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 42 + node_modules/nodemon/.prettierrc.json | 3 + node_modules/nodemon/LICENSE | 21 + node_modules/nodemon/README.md | 448 + node_modules/nodemon/bin/nodemon.js | 16 + node_modules/nodemon/bin/windows-kill.exe | Bin 0 -> 80384 bytes node_modules/nodemon/doc/cli/authors.txt | 8 + node_modules/nodemon/doc/cli/config.txt | 44 + node_modules/nodemon/doc/cli/help.txt | 29 + node_modules/nodemon/doc/cli/logo.txt | 20 + node_modules/nodemon/doc/cli/options.txt | 36 + node_modules/nodemon/doc/cli/topics.txt | 8 + node_modules/nodemon/doc/cli/usage.txt | 3 + node_modules/nodemon/doc/cli/whoami.txt | 9 + node_modules/nodemon/index.d.ts | 125 + node_modules/nodemon/jsconfig.json | 7 + node_modules/nodemon/lib/cli/index.js | 49 + node_modules/nodemon/lib/cli/parse.js | 230 + node_modules/nodemon/lib/config/command.js | 43 + node_modules/nodemon/lib/config/defaults.js | 34 + node_modules/nodemon/lib/config/exec.js | 234 + node_modules/nodemon/lib/config/index.js | 93 + node_modules/nodemon/lib/config/load.js | 225 + node_modules/nodemon/lib/help/index.js | 27 + node_modules/nodemon/lib/index.js | 1 + node_modules/nodemon/lib/monitor/index.js | 4 + node_modules/nodemon/lib/monitor/match.js | 287 + node_modules/nodemon/lib/monitor/run.js | 562 ++ node_modules/nodemon/lib/monitor/signals.js | 34 + node_modules/nodemon/lib/monitor/watch.js | 244 + node_modules/nodemon/lib/nodemon.js | 317 + node_modules/nodemon/lib/rules/add.js | 89 + node_modules/nodemon/lib/rules/index.js | 53 + node_modules/nodemon/lib/rules/parse.js | 43 + node_modules/nodemon/lib/spawn.js | 74 + node_modules/nodemon/lib/utils/bus.js | 44 + node_modules/nodemon/lib/utils/clone.js | 40 + node_modules/nodemon/lib/utils/colour.js | 26 + node_modules/nodemon/lib/utils/index.js | 103 + node_modules/nodemon/lib/utils/log.js | 82 + node_modules/nodemon/lib/utils/merge.js | 47 + node_modules/nodemon/lib/version.js | 100 + .../nodemon/node_modules/debug/LICENSE | 20 + .../nodemon/node_modules/debug/README.md | 481 + .../nodemon/node_modules/debug/package.json | 65 + .../nodemon/node_modules/debug/src/browser.js | 272 + .../nodemon/node_modules/debug/src/common.js | 292 + .../nodemon/node_modules/debug/src/index.js | 10 + .../nodemon/node_modules/debug/src/node.js | 263 + node_modules/nodemon/node_modules/ms/index.js | 162 + .../nodemon/node_modules/ms/license.md | 21 + .../nodemon/node_modules/ms/package.json | 38 + .../nodemon/node_modules/ms/readme.md | 59 + node_modules/nodemon/package.json | 75 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + node_modules/object-inspect/.nycrc | 13 + node_modules/object-inspect/CHANGELOG.md | 424 + node_modules/object-inspect/LICENSE | 21 + node_modules/object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + node_modules/object-inspect/index.js | 544 ++ .../object-inspect/package-support.json | 20 + node_modules/object-inspect/package.json | 105 + node_modules/object-inspect/readme.markdown | 84 + node_modules/object-inspect/test-core-js.js | 26 + node_modules/object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + node_modules/object-inspect/test/circular.js | 16 + node_modules/object-inspect/test/deep.js | 12 + node_modules/object-inspect/test/element.js | 53 + node_modules/object-inspect/test/err.js | 48 + node_modules/object-inspect/test/fakes.js | 29 + node_modules/object-inspect/test/fn.js | 76 + node_modules/object-inspect/test/global.js | 17 + node_modules/object-inspect/test/has.js | 15 + node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + node_modules/object-inspect/test/inspect.js | 139 + node_modules/object-inspect/test/lowbyte.js | 12 + node_modules/object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 26 + .../object-inspect/test/toStringTag.js | 40 + node_modules/object-inspect/test/undef.js | 12 + node_modules/object-inspect/test/values.js | 261 + node_modules/object-inspect/util.inspect.js | 1 + node_modules/on-finished/HISTORY.md | 98 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 162 + node_modules/on-finished/index.js | 234 + node_modules/on-finished/package.json | 39 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 40 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 35 + node_modules/path-to-regexp/index.js | 156 + node_modules/path-to-regexp/package.json | 30 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 ++ node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 +++ node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/proxy-addr/HISTORY.md | 161 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 139 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 47 + node_modules/pstree.remy/.travis.yml | 8 + node_modules/pstree.remy/LICENSE | 7 + node_modules/pstree.remy/README.md | 26 + node_modules/pstree.remy/lib/index.js | 37 + node_modules/pstree.remy/lib/tree.js | 37 + node_modules/pstree.remy/lib/utils.js | 53 + node_modules/pstree.remy/package.json | 33 + .../pstree.remy/tests/fixtures/index.js | 13 + node_modules/pstree.remy/tests/fixtures/out1 | 10 + node_modules/pstree.remy/tests/fixtures/out2 | 29 + node_modules/pstree.remy/tests/index.test.js | 51 + node_modules/qs/.editorconfig | 46 + node_modules/qs/.eslintrc | 38 + node_modules/qs/.github/FUNDING.yml | 12 + node_modules/qs/.nycrc | 13 + node_modules/qs/CHANGELOG.md | 600 ++ node_modules/qs/LICENSE.md | 29 + node_modules/qs/README.md | 709 ++ node_modules/qs/dist/qs.js | 90 + node_modules/qs/lib/formats.js | 23 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 296 + node_modules/qs/lib/stringify.js | 351 + node_modules/qs/lib/utils.js | 265 + node_modules/qs/package.json | 91 + node_modules/qs/test/empty-keys-cases.js | 267 + node_modules/qs/test/parse.js | 1170 +++ node_modules/qs/test/stringify.js | 1298 +++ node_modules/qs/test/utils.js | 136 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 44 + node_modules/raw-body/HISTORY.md | 308 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 223 + node_modules/raw-body/SECURITY.md | 24 + node_modules/raw-body/index.d.ts | 87 + node_modules/raw-body/index.js | 336 + node_modules/raw-body/package.json | 49 + node_modules/readdirp/LICENSE | 21 + node_modules/readdirp/README.md | 122 + node_modules/readdirp/index.d.ts | 43 + node_modules/readdirp/index.js | 287 + node_modules/readdirp/package.json | 122 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 ++ node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 65 + node_modules/safe-buffer/package.json | 51 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/semver/LICENSE | 15 + node_modules/semver/README.md | 664 ++ node_modules/semver/bin/semver.js | 189 + node_modules/semver/classes/comparator.js | 141 + node_modules/semver/classes/index.js | 5 + node_modules/semver/classes/range.js | 554 ++ node_modules/semver/classes/semver.js | 318 + node_modules/semver/functions/clean.js | 6 + node_modules/semver/functions/cmp.js | 52 + node_modules/semver/functions/coerce.js | 60 + .../semver/functions/compare-build.js | 7 + .../semver/functions/compare-loose.js | 3 + node_modules/semver/functions/compare.js | 5 + node_modules/semver/functions/diff.js | 58 + node_modules/semver/functions/eq.js | 3 + node_modules/semver/functions/gt.js | 3 + node_modules/semver/functions/gte.js | 3 + node_modules/semver/functions/inc.js | 19 + node_modules/semver/functions/lt.js | 3 + node_modules/semver/functions/lte.js | 3 + node_modules/semver/functions/major.js | 3 + node_modules/semver/functions/minor.js | 3 + node_modules/semver/functions/neq.js | 3 + node_modules/semver/functions/parse.js | 16 + node_modules/semver/functions/patch.js | 3 + node_modules/semver/functions/prerelease.js | 6 + node_modules/semver/functions/rcompare.js | 3 + node_modules/semver/functions/rsort.js | 3 + node_modules/semver/functions/satisfies.js | 10 + node_modules/semver/functions/sort.js | 3 + node_modules/semver/functions/valid.js | 6 + node_modules/semver/index.js | 89 + node_modules/semver/internal/constants.js | 35 + node_modules/semver/internal/debug.js | 9 + node_modules/semver/internal/identifiers.js | 23 + node_modules/semver/internal/lrucache.js | 40 + node_modules/semver/internal/parse-options.js | 15 + node_modules/semver/internal/re.js | 219 + node_modules/semver/package.json | 78 + node_modules/semver/preload.js | 2 + node_modules/semver/range.bnf | 16 + node_modules/semver/ranges/gtr.js | 4 + node_modules/semver/ranges/intersects.js | 7 + node_modules/semver/ranges/ltr.js | 4 + node_modules/semver/ranges/max-satisfying.js | 25 + node_modules/semver/ranges/min-satisfying.js | 24 + node_modules/semver/ranges/min-version.js | 61 + node_modules/semver/ranges/outside.js | 80 + node_modules/semver/ranges/simplify.js | 47 + node_modules/semver/ranges/subset.js | 247 + node_modules/semver/ranges/to-comparators.js | 8 + node_modules/semver/ranges/valid.js | 11 + node_modules/send/HISTORY.md | 526 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 327 + node_modules/send/SECURITY.md | 24 + node_modules/send/index.js | 1142 +++ .../send/node_modules/encodeurl/HISTORY.md | 14 + .../send/node_modules/encodeurl/LICENSE | 22 + .../send/node_modules/encodeurl/README.md | 128 + .../send/node_modules/encodeurl/index.js | 60 + .../send/node_modules/encodeurl/package.json | 40 + node_modules/send/node_modules/ms/index.js | 162 + node_modules/send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + node_modules/send/node_modules/ms/readme.md | 59 + node_modules/send/package.json | 62 + node_modules/serve-static/HISTORY.md | 487 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 257 + node_modules/serve-static/index.js | 209 + node_modules/serve-static/package.json | 42 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 38 + node_modules/setprototypeof/test/index.js | 24 + node_modules/side-channel-list/.editorconfig | 9 + node_modules/side-channel-list/.eslintrc | 11 + .../side-channel-list/.github/FUNDING.yml | 12 + node_modules/side-channel-list/.nycrc | 13 + node_modules/side-channel-list/CHANGELOG.md | 15 + node_modules/side-channel-list/LICENSE | 21 + node_modules/side-channel-list/README.md | 62 + node_modules/side-channel-list/index.d.ts | 13 + node_modules/side-channel-list/index.js | 113 + node_modules/side-channel-list/list.d.ts | 14 + node_modules/side-channel-list/package.json | 77 + node_modules/side-channel-list/test/index.js | 104 + node_modules/side-channel-list/tsconfig.json | 9 + node_modules/side-channel-map/.editorconfig | 9 + node_modules/side-channel-map/.eslintrc | 11 + .../side-channel-map/.github/FUNDING.yml | 12 + node_modules/side-channel-map/.nycrc | 13 + node_modules/side-channel-map/CHANGELOG.md | 22 + node_modules/side-channel-map/LICENSE | 21 + node_modules/side-channel-map/README.md | 62 + node_modules/side-channel-map/index.d.ts | 15 + node_modules/side-channel-map/index.js | 68 + node_modules/side-channel-map/package.json | 80 + node_modules/side-channel-map/test/index.js | 114 + node_modules/side-channel-map/tsconfig.json | 9 + .../side-channel-weakmap/.editorconfig | 9 + node_modules/side-channel-weakmap/.eslintrc | 12 + .../side-channel-weakmap/.github/FUNDING.yml | 12 + node_modules/side-channel-weakmap/.nycrc | 13 + .../side-channel-weakmap/CHANGELOG.md | 28 + node_modules/side-channel-weakmap/LICENSE | 21 + node_modules/side-channel-weakmap/README.md | 62 + node_modules/side-channel-weakmap/index.d.ts | 15 + node_modules/side-channel-weakmap/index.js | 84 + .../side-channel-weakmap/package.json | 87 + .../side-channel-weakmap/test/index.js | 114 + .../side-channel-weakmap/tsconfig.json | 9 + node_modules/side-channel/.editorconfig | 9 + node_modules/side-channel/.eslintrc | 12 + node_modules/side-channel/.github/FUNDING.yml | 12 + node_modules/side-channel/.nycrc | 13 + node_modules/side-channel/CHANGELOG.md | 110 + node_modules/side-channel/LICENSE | 21 + node_modules/side-channel/README.md | 61 + node_modules/side-channel/index.d.ts | 14 + node_modules/side-channel/index.js | 43 + node_modules/side-channel/package.json | 85 + node_modules/side-channel/test/index.js | 104 + node_modules/side-channel/tsconfig.json | 9 + node_modules/simple-update-notifier/LICENSE | 21 + node_modules/simple-update-notifier/README.md | 82 + .../simple-update-notifier/build/index.d.ts | 13 + .../simple-update-notifier/build/index.js | 210 + .../simple-update-notifier/package.json | 100 + .../src/borderedText.ts | 12 + .../simple-update-notifier/src/cache.spec.ts | 17 + .../simple-update-notifier/src/cache.ts | 44 + .../src/getDistVersion.spec.ts | 35 + .../src/getDistVersion.ts | 29 + .../src/hasNewVersion.spec.ts | 82 + .../src/hasNewVersion.ts | 40 + .../simple-update-notifier/src/index.spec.ts | 27 + .../simple-update-notifier/src/index.ts | 34 + .../simple-update-notifier/src/isNpmOrYarn.ts | 12 + .../simple-update-notifier/src/types.ts | 8 + node_modules/statuses/HISTORY.md | 82 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 136 + node_modules/statuses/codes.json | 65 + node_modules/statuses/index.js | 146 + node_modules/statuses/package.json | 49 + node_modules/supports-color/browser.js | 5 + node_modules/supports-color/index.js | 131 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 53 + node_modules/supports-color/readme.md | 66 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/toidentifier/HISTORY.md | 9 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 32 + node_modules/toidentifier/package.json | 38 + node_modules/touch/LICENSE | 15 + node_modules/touch/README.md | 52 + node_modules/touch/bin/nodetouch.js | 112 + node_modules/touch/index.js | 224 + node_modules/touch/package.json | 25 + node_modules/type-is/HISTORY.md | 259 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 170 + node_modules/type-is/index.js | 266 + node_modules/type-is/package.json | 45 + .../undefsafe/.github/workflows/release.yml | 25 + node_modules/undefsafe/.jscsrc | 13 + node_modules/undefsafe/.jshintrc | 16 + node_modules/undefsafe/.travis.yml | 18 + node_modules/undefsafe/LICENSE | 22 + node_modules/undefsafe/README.md | 63 + node_modules/undefsafe/example.js | 14 + node_modules/undefsafe/lib/undefsafe.js | 125 + node_modules/undefsafe/package.json | 34 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 27 + node_modules/utils-merge/.npmignore | 9 + node_modules/utils-merge/LICENSE | 20 + node_modules/utils-merge/README.md | 34 + node_modules/utils-merge/index.js | 23 + node_modules/utils-merge/package.json | 40 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 43 + package-lock.json | 1208 +++ package.json | 18 + public/css/course.css | 135 + public/css/style.css | 144 + public/images/IMG_1114.jpg | Bin 0 -> 5231182 bytes public/scripts/client.js | 17 + public/scripts/loadCourse.js | 18 + 908 files changed, 93185 insertions(+) create mode 100644 app/404.html create mode 100644 app/course.html create mode 100644 app/index.html create mode 100644 database/courses.json create mode 100644 index.js create mode 120000 node_modules/.bin/.mime-EbN0JQTd create mode 120000 node_modules/.bin/.nodemon-uy95b7Vy create mode 120000 node_modules/.bin/.nodetouch-ig7IYS6V create mode 120000 node_modules/.bin/.semver-uYYV4CWo create mode 100644 node_modules/.bin/mime create mode 100644 node_modules/.bin/mime.cmd create mode 100644 node_modules/.bin/mime.ps1 create mode 100644 node_modules/.bin/nodemon create mode 100644 node_modules/.bin/nodemon.cmd create mode 100644 node_modules/.bin/nodemon.ps1 create mode 100644 node_modules/.bin/nodetouch create mode 100644 node_modules/.bin/nodetouch.cmd create mode 100644 node_modules/.bin/nodetouch.ps1 create mode 100644 node_modules/.bin/semver create mode 100644 node_modules/.bin/semver.cmd create mode 100644 node_modules/.bin/semver.ps1 create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/anymatch/LICENSE create mode 100644 node_modules/anymatch/README.md create mode 100644 node_modules/anymatch/index.d.ts create mode 100644 node_modules/anymatch/index.js create mode 100644 node_modules/anymatch/package.json create mode 100644 node_modules/array-flatten/LICENSE create mode 100644 node_modules/array-flatten/README.md create mode 100644 node_modules/array-flatten/array-flatten.js create mode 100644 node_modules/array-flatten/package.json create mode 100644 node_modules/balanced-match/.github/FUNDING.yml create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/package.json create mode 100644 node_modules/binary-extensions/binary-extensions.json create mode 100644 node_modules/binary-extensions/binary-extensions.json.d.ts create mode 100644 node_modules/binary-extensions/index.d.ts create mode 100644 node_modules/binary-extensions/index.js create mode 100644 node_modules/binary-extensions/license create mode 100644 node_modules/binary-extensions/package.json create mode 100644 node_modules/binary-extensions/readme.md create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/SECURITY.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/call-bind-apply-helpers/.eslintrc create mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml create mode 100644 node_modules/call-bind-apply-helpers/.nycrc create mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md create mode 100644 node_modules/call-bind-apply-helpers/LICENSE create mode 100644 node_modules/call-bind-apply-helpers/README.md create mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/actualApply.js create mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts create mode 100644 node_modules/call-bind-apply-helpers/applyBind.js create mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionApply.js create mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionCall.js create mode 100644 node_modules/call-bind-apply-helpers/index.d.ts create mode 100644 node_modules/call-bind-apply-helpers/index.js create mode 100644 node_modules/call-bind-apply-helpers/package.json create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js create mode 100644 node_modules/call-bind-apply-helpers/test/index.js create mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json create mode 100644 node_modules/call-bound/.eslintrc create mode 100644 node_modules/call-bound/.github/FUNDING.yml create mode 100644 node_modules/call-bound/.nycrc create mode 100644 node_modules/call-bound/CHANGELOG.md create mode 100644 node_modules/call-bound/LICENSE create mode 100644 node_modules/call-bound/README.md create mode 100644 node_modules/call-bound/index.d.ts create mode 100644 node_modules/call-bound/index.js create mode 100644 node_modules/call-bound/package.json create mode 100644 node_modules/call-bound/test/index.js create mode 100644 node_modules/call-bound/tsconfig.json create mode 100644 node_modules/chokidar/LICENSE create mode 100644 node_modules/chokidar/README.md create mode 100644 node_modules/chokidar/index.js create mode 100644 node_modules/chokidar/lib/constants.js create mode 100644 node_modules/chokidar/lib/fsevents-handler.js create mode 100644 node_modules/chokidar/lib/nodefs-handler.js create mode 100644 node_modules/chokidar/package.json create mode 100644 node_modules/chokidar/types/index.d.ts create mode 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-signature/.npmignore create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/SECURITY.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/debug/.coveralls.yml create mode 100644 node_modules/debug/.eslintrc create mode 100644 node_modules/debug/.npmignore create mode 100644 node_modules/debug/.travis.yml create mode 100644 node_modules/debug/CHANGELOG.md create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/Makefile create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/component.json create mode 100644 node_modules/debug/karma.conf.js create mode 100644 node_modules/debug/node.js create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/debug.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/inspector-log.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/destroy/LICENSE create mode 100644 node_modules/destroy/README.md create mode 100644 node_modules/destroy/index.js create mode 100644 node_modules/destroy/package.json create mode 100644 node_modules/dunder-proto/.eslintrc create mode 100644 node_modules/dunder-proto/.github/FUNDING.yml create mode 100644 node_modules/dunder-proto/.nycrc create mode 100644 node_modules/dunder-proto/CHANGELOG.md create mode 100644 node_modules/dunder-proto/LICENSE create mode 100644 node_modules/dunder-proto/README.md create mode 100644 node_modules/dunder-proto/get.d.ts create mode 100644 node_modules/dunder-proto/get.js create mode 100644 node_modules/dunder-proto/package.json create mode 100644 node_modules/dunder-proto/set.d.ts create mode 100644 node_modules/dunder-proto/set.js create mode 100644 node_modules/dunder-proto/test/get.js create mode 100644 node_modules/dunder-proto/test/index.js create mode 100644 node_modules/dunder-proto/test/set.js create mode 100644 node_modules/dunder-proto/tsconfig.json create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/es-define-property/.eslintrc create mode 100644 node_modules/es-define-property/.github/FUNDING.yml create mode 100644 node_modules/es-define-property/.nycrc create mode 100644 node_modules/es-define-property/CHANGELOG.md create mode 100644 node_modules/es-define-property/LICENSE create mode 100644 node_modules/es-define-property/README.md create mode 100644 node_modules/es-define-property/index.d.ts create mode 100644 node_modules/es-define-property/index.js create mode 100644 node_modules/es-define-property/package.json create mode 100644 node_modules/es-define-property/test/index.js create mode 100644 node_modules/es-define-property/tsconfig.json create mode 100644 node_modules/es-errors/.eslintrc create mode 100644 node_modules/es-errors/.github/FUNDING.yml create mode 100644 node_modules/es-errors/CHANGELOG.md create mode 100644 node_modules/es-errors/LICENSE create mode 100644 node_modules/es-errors/README.md create mode 100644 node_modules/es-errors/eval.d.ts create mode 100644 node_modules/es-errors/eval.js create mode 100644 node_modules/es-errors/index.d.ts create mode 100644 node_modules/es-errors/index.js create mode 100644 node_modules/es-errors/package.json create mode 100644 node_modules/es-errors/range.d.ts create mode 100644 node_modules/es-errors/range.js create mode 100644 node_modules/es-errors/ref.d.ts create mode 100644 node_modules/es-errors/ref.js create mode 100644 node_modules/es-errors/syntax.d.ts create mode 100644 node_modules/es-errors/syntax.js create mode 100644 node_modules/es-errors/test/index.js create mode 100644 node_modules/es-errors/tsconfig.json create mode 100644 node_modules/es-errors/type.d.ts create mode 100644 node_modules/es-errors/type.js create mode 100644 node_modules/es-errors/uri.d.ts create mode 100644 node_modules/es-errors/uri.js create mode 100644 node_modules/es-object-atoms/.eslintrc create mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml create mode 100644 node_modules/es-object-atoms/CHANGELOG.md create mode 100644 node_modules/es-object-atoms/LICENSE create mode 100644 node_modules/es-object-atoms/README.md create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js create mode 100644 node_modules/es-object-atoms/ToObject.d.ts create mode 100644 node_modules/es-object-atoms/ToObject.js create mode 100644 node_modules/es-object-atoms/index.d.ts create mode 100644 node_modules/es-object-atoms/index.js create mode 100644 node_modules/es-object-atoms/isObject.d.ts create mode 100644 node_modules/es-object-atoms/isObject.js create mode 100644 node_modules/es-object-atoms/package.json create mode 100644 node_modules/es-object-atoms/test/index.js create mode 100644 node_modules/es-object-atoms/tsconfig.json create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/middleware/init.js create mode 100644 node_modules/express/lib/middleware/query.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/router/index.js create mode 100644 node_modules/express/lib/router/layer.js create mode 100644 node_modules/express/lib/router/route.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/package.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/SECURITY.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/get-intrinsic/.eslintrc create mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 node_modules/get-intrinsic/.nycrc create mode 100644 node_modules/get-intrinsic/CHANGELOG.md create mode 100644 node_modules/get-intrinsic/LICENSE create mode 100644 node_modules/get-intrinsic/README.md create mode 100644 node_modules/get-intrinsic/index.js create mode 100644 node_modules/get-intrinsic/package.json create mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 node_modules/get-proto/.eslintrc create mode 100644 node_modules/get-proto/.github/FUNDING.yml create mode 100644 node_modules/get-proto/.nycrc create mode 100644 node_modules/get-proto/CHANGELOG.md create mode 100644 node_modules/get-proto/LICENSE create mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Object.getPrototypeOf.js create mode 100644 node_modules/get-proto/README.md create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js create mode 100644 node_modules/get-proto/index.d.ts create mode 100644 node_modules/get-proto/index.js create mode 100644 node_modules/get-proto/package.json create mode 100644 node_modules/get-proto/test/index.js create mode 100644 node_modules/get-proto/tsconfig.json create mode 100644 node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/gopd/.eslintrc create mode 100644 node_modules/gopd/.github/FUNDING.yml create mode 100644 node_modules/gopd/CHANGELOG.md create mode 100644 node_modules/gopd/LICENSE create mode 100644 node_modules/gopd/README.md create mode 100644 node_modules/gopd/gOPD.d.ts create mode 100644 node_modules/gopd/gOPD.js create mode 100644 node_modules/gopd/index.d.ts create mode 100644 node_modules/gopd/index.js create mode 100644 node_modules/gopd/package.json create mode 100644 node_modules/gopd/test/index.js create mode 100644 node_modules/gopd/tsconfig.json create mode 100644 node_modules/has-flag/index.js create mode 100644 node_modules/has-flag/license create mode 100644 node_modules/has-flag/package.json create mode 100644 node_modules/has-flag/readme.md create mode 100644 node_modules/has-symbols/.eslintrc create mode 100644 node_modules/has-symbols/.github/FUNDING.yml create mode 100644 node_modules/has-symbols/.nycrc create mode 100644 node_modules/has-symbols/CHANGELOG.md create mode 100644 node_modules/has-symbols/LICENSE create mode 100644 node_modules/has-symbols/README.md create mode 100644 node_modules/has-symbols/index.d.ts create mode 100644 node_modules/has-symbols/index.js create mode 100644 node_modules/has-symbols/package.json create mode 100644 node_modules/has-symbols/shams.d.ts create mode 100644 node_modules/has-symbols/shams.js create mode 100644 node_modules/has-symbols/test/index.js create mode 100644 node_modules/has-symbols/test/shams/core-js.js create mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 node_modules/has-symbols/test/tests.js create mode 100644 node_modules/has-symbols/tsconfig.json create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/extend-node.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/ignore-by-default/LICENSE create mode 100644 node_modules/ignore-by-default/README.md create mode 100644 node_modules/ignore-by-default/index.js create mode 100644 node_modules/ignore-by-default/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/is-binary-path/index.d.ts create mode 100644 node_modules/is-binary-path/index.js create mode 100644 node_modules/is-binary-path/license create mode 100644 node_modules/is-binary-path/package.json create mode 100644 node_modules/is-binary-path/readme.md create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/math-intrinsics/.eslintrc create mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml create mode 100644 node_modules/math-intrinsics/CHANGELOG.md create mode 100644 node_modules/math-intrinsics/LICENSE create mode 100644 node_modules/math-intrinsics/README.md create mode 100644 node_modules/math-intrinsics/abs.d.ts create mode 100644 node_modules/math-intrinsics/abs.js create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js create mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxValue.js create mode 100644 node_modules/math-intrinsics/floor.d.ts create mode 100644 node_modules/math-intrinsics/floor.js create mode 100644 node_modules/math-intrinsics/isFinite.d.ts create mode 100644 node_modules/math-intrinsics/isFinite.js create mode 100644 node_modules/math-intrinsics/isInteger.d.ts create mode 100644 node_modules/math-intrinsics/isInteger.js create mode 100644 node_modules/math-intrinsics/isNaN.d.ts create mode 100644 node_modules/math-intrinsics/isNaN.js create mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts create mode 100644 node_modules/math-intrinsics/isNegativeZero.js create mode 100644 node_modules/math-intrinsics/max.d.ts create mode 100644 node_modules/math-intrinsics/max.js create mode 100644 node_modules/math-intrinsics/min.d.ts create mode 100644 node_modules/math-intrinsics/min.js create mode 100644 node_modules/math-intrinsics/mod.d.ts create mode 100644 node_modules/math-intrinsics/mod.js create mode 100644 node_modules/math-intrinsics/package.json create mode 100644 node_modules/math-intrinsics/pow.d.ts create mode 100644 node_modules/math-intrinsics/pow.js create mode 100644 node_modules/math-intrinsics/round.d.ts create mode 100644 node_modules/math-intrinsics/round.js create mode 100644 node_modules/math-intrinsics/sign.d.ts create mode 100644 node_modules/math-intrinsics/sign.js create mode 100644 node_modules/math-intrinsics/test/index.js create mode 100644 node_modules/math-intrinsics/tsconfig.json create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/merge-descriptors/HISTORY.md create mode 100644 node_modules/merge-descriptors/LICENSE create mode 100644 node_modules/merge-descriptors/README.md create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/methods/HISTORY.md create mode 100644 node_modules/methods/LICENSE create mode 100644 node_modules/methods/README.md create mode 100644 node_modules/methods/index.js create mode 100644 node_modules/methods/package.json create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/mime/.npmignore create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100644 node_modules/mime/cli.js create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100644 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types.json create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/nodemon/.prettierrc.json create mode 100644 node_modules/nodemon/LICENSE create mode 100644 node_modules/nodemon/README.md create mode 100644 node_modules/nodemon/bin/nodemon.js create mode 100644 node_modules/nodemon/bin/windows-kill.exe create mode 100644 node_modules/nodemon/doc/cli/authors.txt create mode 100644 node_modules/nodemon/doc/cli/config.txt create mode 100644 node_modules/nodemon/doc/cli/help.txt create mode 100644 node_modules/nodemon/doc/cli/logo.txt create mode 100644 node_modules/nodemon/doc/cli/options.txt create mode 100644 node_modules/nodemon/doc/cli/topics.txt create mode 100644 node_modules/nodemon/doc/cli/usage.txt create mode 100644 node_modules/nodemon/doc/cli/whoami.txt create mode 100644 node_modules/nodemon/index.d.ts create mode 100644 node_modules/nodemon/jsconfig.json create mode 100644 node_modules/nodemon/lib/cli/index.js create mode 100644 node_modules/nodemon/lib/cli/parse.js create mode 100644 node_modules/nodemon/lib/config/command.js create mode 100644 node_modules/nodemon/lib/config/defaults.js create mode 100644 node_modules/nodemon/lib/config/exec.js create mode 100644 node_modules/nodemon/lib/config/index.js create mode 100644 node_modules/nodemon/lib/config/load.js create mode 100644 node_modules/nodemon/lib/help/index.js create mode 100644 node_modules/nodemon/lib/index.js create mode 100644 node_modules/nodemon/lib/monitor/index.js create mode 100644 node_modules/nodemon/lib/monitor/match.js create mode 100644 node_modules/nodemon/lib/monitor/run.js create mode 100644 node_modules/nodemon/lib/monitor/signals.js create mode 100644 node_modules/nodemon/lib/monitor/watch.js create mode 100644 node_modules/nodemon/lib/nodemon.js create mode 100644 node_modules/nodemon/lib/rules/add.js create mode 100644 node_modules/nodemon/lib/rules/index.js create mode 100644 node_modules/nodemon/lib/rules/parse.js create mode 100644 node_modules/nodemon/lib/spawn.js create mode 100644 node_modules/nodemon/lib/utils/bus.js create mode 100644 node_modules/nodemon/lib/utils/clone.js create mode 100644 node_modules/nodemon/lib/utils/colour.js create mode 100644 node_modules/nodemon/lib/utils/index.js create mode 100644 node_modules/nodemon/lib/utils/log.js create mode 100644 node_modules/nodemon/lib/utils/merge.js create mode 100644 node_modules/nodemon/lib/version.js create mode 100644 node_modules/nodemon/node_modules/debug/LICENSE create mode 100644 node_modules/nodemon/node_modules/debug/README.md create mode 100644 node_modules/nodemon/node_modules/debug/package.json create mode 100644 node_modules/nodemon/node_modules/debug/src/browser.js create mode 100644 node_modules/nodemon/node_modules/debug/src/common.js create mode 100644 node_modules/nodemon/node_modules/debug/src/index.js create mode 100644 node_modules/nodemon/node_modules/debug/src/node.js create mode 100644 node_modules/nodemon/node_modules/ms/index.js create mode 100644 node_modules/nodemon/node_modules/ms/license.md create mode 100644 node_modules/nodemon/node_modules/ms/package.json create mode 100644 node_modules/nodemon/node_modules/ms/readme.md create mode 100644 node_modules/nodemon/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/object-inspect/.eslintrc create mode 100644 node_modules/object-inspect/.github/FUNDING.yml create mode 100644 node_modules/object-inspect/.nycrc create mode 100644 node_modules/object-inspect/CHANGELOG.md create mode 100644 node_modules/object-inspect/LICENSE create mode 100644 node_modules/object-inspect/example/all.js create mode 100644 node_modules/object-inspect/example/circular.js create mode 100644 node_modules/object-inspect/example/fn.js create mode 100644 node_modules/object-inspect/example/inspect.js create mode 100644 node_modules/object-inspect/index.js create mode 100644 node_modules/object-inspect/package-support.json create mode 100644 node_modules/object-inspect/package.json create mode 100644 node_modules/object-inspect/readme.markdown create mode 100644 node_modules/object-inspect/test-core-js.js create mode 100644 node_modules/object-inspect/test/bigint.js create mode 100644 node_modules/object-inspect/test/browser/dom.js create mode 100644 node_modules/object-inspect/test/circular.js create mode 100644 node_modules/object-inspect/test/deep.js create mode 100644 node_modules/object-inspect/test/element.js create mode 100644 node_modules/object-inspect/test/err.js create mode 100644 node_modules/object-inspect/test/fakes.js create mode 100644 node_modules/object-inspect/test/fn.js create mode 100644 node_modules/object-inspect/test/global.js create mode 100644 node_modules/object-inspect/test/has.js create mode 100644 node_modules/object-inspect/test/holes.js create mode 100644 node_modules/object-inspect/test/indent-option.js create mode 100644 node_modules/object-inspect/test/inspect.js create mode 100644 node_modules/object-inspect/test/lowbyte.js create mode 100644 node_modules/object-inspect/test/number.js create mode 100644 node_modules/object-inspect/test/quoteStyle.js create mode 100644 node_modules/object-inspect/test/toStringTag.js create mode 100644 node_modules/object-inspect/test/undef.js create mode 100644 node_modules/object-inspect/test/values.js create mode 100644 node_modules/object-inspect/util.inspect.js create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/index.js create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/pstree.remy/.travis.yml create mode 100644 node_modules/pstree.remy/LICENSE create mode 100644 node_modules/pstree.remy/README.md create mode 100644 node_modules/pstree.remy/lib/index.js create mode 100644 node_modules/pstree.remy/lib/tree.js create mode 100644 node_modules/pstree.remy/lib/utils.js create mode 100644 node_modules/pstree.remy/package.json create mode 100644 node_modules/pstree.remy/tests/fixtures/index.js create mode 100644 node_modules/pstree.remy/tests/fixtures/out1 create mode 100644 node_modules/pstree.remy/tests/fixtures/out2 create mode 100644 node_modules/pstree.remy/tests/index.test.js create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.eslintrc create mode 100644 node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/qs/.nycrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE.md create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/HISTORY.md create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/SECURITY.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/readdirp/LICENSE create mode 100644 node_modules/readdirp/README.md create mode 100644 node_modules/readdirp/index.d.ts create mode 100644 node_modules/readdirp/index.js create mode 100644 node_modules/readdirp/package.json create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/semver/LICENSE create mode 100644 node_modules/semver/README.md create mode 100644 node_modules/semver/bin/semver.js create mode 100644 node_modules/semver/classes/comparator.js create mode 100644 node_modules/semver/classes/index.js create mode 100644 node_modules/semver/classes/range.js create mode 100644 node_modules/semver/classes/semver.js create mode 100644 node_modules/semver/functions/clean.js create mode 100644 node_modules/semver/functions/cmp.js create mode 100644 node_modules/semver/functions/coerce.js create mode 100644 node_modules/semver/functions/compare-build.js create mode 100644 node_modules/semver/functions/compare-loose.js create mode 100644 node_modules/semver/functions/compare.js create mode 100644 node_modules/semver/functions/diff.js create mode 100644 node_modules/semver/functions/eq.js create mode 100644 node_modules/semver/functions/gt.js create mode 100644 node_modules/semver/functions/gte.js create mode 100644 node_modules/semver/functions/inc.js create mode 100644 node_modules/semver/functions/lt.js create mode 100644 node_modules/semver/functions/lte.js create mode 100644 node_modules/semver/functions/major.js create mode 100644 node_modules/semver/functions/minor.js create mode 100644 node_modules/semver/functions/neq.js create mode 100644 node_modules/semver/functions/parse.js create mode 100644 node_modules/semver/functions/patch.js create mode 100644 node_modules/semver/functions/prerelease.js create mode 100644 node_modules/semver/functions/rcompare.js create mode 100644 node_modules/semver/functions/rsort.js create mode 100644 node_modules/semver/functions/satisfies.js create mode 100644 node_modules/semver/functions/sort.js create mode 100644 node_modules/semver/functions/valid.js create mode 100644 node_modules/semver/index.js create mode 100644 node_modules/semver/internal/constants.js create mode 100644 node_modules/semver/internal/debug.js create mode 100644 node_modules/semver/internal/identifiers.js create mode 100644 node_modules/semver/internal/lrucache.js create mode 100644 node_modules/semver/internal/parse-options.js create mode 100644 node_modules/semver/internal/re.js create mode 100644 node_modules/semver/package.json create mode 100644 node_modules/semver/preload.js create mode 100644 node_modules/semver/range.bnf create mode 100644 node_modules/semver/ranges/gtr.js create mode 100644 node_modules/semver/ranges/intersects.js create mode 100644 node_modules/semver/ranges/ltr.js create mode 100644 node_modules/semver/ranges/max-satisfying.js create mode 100644 node_modules/semver/ranges/min-satisfying.js create mode 100644 node_modules/semver/ranges/min-version.js create mode 100644 node_modules/semver/ranges/outside.js create mode 100644 node_modules/semver/ranges/simplify.js create mode 100644 node_modules/semver/ranges/subset.js create mode 100644 node_modules/semver/ranges/to-comparators.js create mode 100644 node_modules/semver/ranges/valid.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/SECURITY.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/node_modules/encodeurl/HISTORY.md create mode 100644 node_modules/send/node_modules/encodeurl/LICENSE create mode 100644 node_modules/send/node_modules/encodeurl/README.md create mode 100644 node_modules/send/node_modules/encodeurl/index.js create mode 100644 node_modules/send/node_modules/encodeurl/package.json create mode 100644 node_modules/send/node_modules/ms/index.js create mode 100644 node_modules/send/node_modules/ms/license.md create mode 100644 node_modules/send/node_modules/ms/package.json create mode 100644 node_modules/send/node_modules/ms/readme.md create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/side-channel-list/.editorconfig create mode 100644 node_modules/side-channel-list/.eslintrc create mode 100644 node_modules/side-channel-list/.github/FUNDING.yml create mode 100644 node_modules/side-channel-list/.nycrc create mode 100644 node_modules/side-channel-list/CHANGELOG.md create mode 100644 node_modules/side-channel-list/LICENSE create mode 100644 node_modules/side-channel-list/README.md create mode 100644 node_modules/side-channel-list/index.d.ts create mode 100644 node_modules/side-channel-list/index.js create mode 100644 node_modules/side-channel-list/list.d.ts create mode 100644 node_modules/side-channel-list/package.json create mode 100644 node_modules/side-channel-list/test/index.js create mode 100644 node_modules/side-channel-list/tsconfig.json create mode 100644 node_modules/side-channel-map/.editorconfig create mode 100644 node_modules/side-channel-map/.eslintrc create mode 100644 node_modules/side-channel-map/.github/FUNDING.yml create mode 100644 node_modules/side-channel-map/.nycrc create mode 100644 node_modules/side-channel-map/CHANGELOG.md create mode 100644 node_modules/side-channel-map/LICENSE create mode 100644 node_modules/side-channel-map/README.md create mode 100644 node_modules/side-channel-map/index.d.ts create mode 100644 node_modules/side-channel-map/index.js create mode 100644 node_modules/side-channel-map/package.json create mode 100644 node_modules/side-channel-map/test/index.js create mode 100644 node_modules/side-channel-map/tsconfig.json create mode 100644 node_modules/side-channel-weakmap/.editorconfig create mode 100644 node_modules/side-channel-weakmap/.eslintrc create mode 100644 node_modules/side-channel-weakmap/.github/FUNDING.yml create mode 100644 node_modules/side-channel-weakmap/.nycrc create mode 100644 node_modules/side-channel-weakmap/CHANGELOG.md create mode 100644 node_modules/side-channel-weakmap/LICENSE create mode 100644 node_modules/side-channel-weakmap/README.md create mode 100644 node_modules/side-channel-weakmap/index.d.ts create mode 100644 node_modules/side-channel-weakmap/index.js create mode 100644 node_modules/side-channel-weakmap/package.json create mode 100644 node_modules/side-channel-weakmap/test/index.js create mode 100644 node_modules/side-channel-weakmap/tsconfig.json create mode 100644 node_modules/side-channel/.editorconfig create mode 100644 node_modules/side-channel/.eslintrc create mode 100644 node_modules/side-channel/.github/FUNDING.yml create mode 100644 node_modules/side-channel/.nycrc create mode 100644 node_modules/side-channel/CHANGELOG.md create mode 100644 node_modules/side-channel/LICENSE create mode 100644 node_modules/side-channel/README.md create mode 100644 node_modules/side-channel/index.d.ts create mode 100644 node_modules/side-channel/index.js create mode 100644 node_modules/side-channel/package.json create mode 100644 node_modules/side-channel/test/index.js create mode 100644 node_modules/side-channel/tsconfig.json create mode 100644 node_modules/simple-update-notifier/LICENSE create mode 100644 node_modules/simple-update-notifier/README.md create mode 100644 node_modules/simple-update-notifier/build/index.d.ts create mode 100644 node_modules/simple-update-notifier/build/index.js create mode 100644 node_modules/simple-update-notifier/package.json create mode 100644 node_modules/simple-update-notifier/src/borderedText.ts create mode 100644 node_modules/simple-update-notifier/src/cache.spec.ts create mode 100644 node_modules/simple-update-notifier/src/cache.ts create mode 100644 node_modules/simple-update-notifier/src/getDistVersion.spec.ts create mode 100644 node_modules/simple-update-notifier/src/getDistVersion.ts create mode 100644 node_modules/simple-update-notifier/src/hasNewVersion.spec.ts create mode 100644 node_modules/simple-update-notifier/src/hasNewVersion.ts create mode 100644 node_modules/simple-update-notifier/src/index.spec.ts create mode 100644 node_modules/simple-update-notifier/src/index.ts create mode 100644 node_modules/simple-update-notifier/src/isNpmOrYarn.ts create mode 100644 node_modules/simple-update-notifier/src/types.ts create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/supports-color/browser.js create mode 100644 node_modules/supports-color/index.js create mode 100644 node_modules/supports-color/license create mode 100644 node_modules/supports-color/package.json create mode 100644 node_modules/supports-color/readme.md create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/toidentifier/HISTORY.md create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/touch/LICENSE create mode 100644 node_modules/touch/README.md create mode 100644 node_modules/touch/bin/nodetouch.js create mode 100644 node_modules/touch/index.js create mode 100644 node_modules/touch/package.json create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/undefsafe/.github/workflows/release.yml create mode 100644 node_modules/undefsafe/.jscsrc create mode 100644 node_modules/undefsafe/.jshintrc create mode 100644 node_modules/undefsafe/.travis.yml create mode 100644 node_modules/undefsafe/LICENSE create mode 100644 node_modules/undefsafe/README.md create mode 100644 node_modules/undefsafe/example.js create mode 100644 node_modules/undefsafe/lib/undefsafe.js create mode 100644 node_modules/undefsafe/package.json create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/utils-merge/.npmignore create mode 100644 node_modules/utils-merge/LICENSE create mode 100644 node_modules/utils-merge/README.md create mode 100644 node_modules/utils-merge/index.js create mode 100644 node_modules/utils-merge/package.json create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/css/course.css create mode 100644 public/css/style.css create mode 100644 public/images/IMG_1114.jpg create mode 100644 public/scripts/client.js create mode 100644 public/scripts/loadCourse.js diff --git a/app/404.html b/app/404.html new file mode 100644 index 0000000..00eae06 --- /dev/null +++ b/app/404.html @@ -0,0 +1,12 @@ + + + + CST Courses + + + + + +

404 not found!

+ + \ No newline at end of file diff --git a/app/course.html b/app/course.html new file mode 100644 index 0000000..9fd7ab2 --- /dev/null +++ b/app/course.html @@ -0,0 +1,54 @@ + + + + CST Course + + + + +
+
+ +
+ +
+
+ +
+ +
+

+

Credits

+

+

+
+ + +
+ +
+ +
+
+ + + + diff --git a/app/index.html b/app/index.html new file mode 100644 index 0000000..8d313e9 --- /dev/null +++ b/app/index.html @@ -0,0 +1,56 @@ + + + + CST Courses + + + + + +
+
+ +
+ + + +
+
+ +
+
+

CST Courses - Term 1

+
+
+
+ +
+ +
+
+ + + + \ No newline at end of file diff --git a/database/courses.json b/database/courses.json new file mode 100644 index 0000000..acef03a --- /dev/null +++ b/database/courses.json @@ -0,0 +1,50 @@ +[ + { + "id": "1510", + "department": "comp", + "name": "Programming Methods", + "description": "This hands-on course is the foundation for all future programming courses and complements COMP 1537 and COMP 1800. This course introduces the fundamental concepts of programming including design, development, testing, debugging simple programs, as well as error-handling, and problem solving.", + "term": 1, + "credits": 7.0 + }, + { + "id": "1116", + "department": "comm", + "name": "Business Communication", + "description": "Information technology professionals spend time each day communicating orally and in writing with their supervisors, colleagues and clients. As problem-solvers and entrepreneurs in industry, you need to communicate quickly, clearly, and effectively. This course will teach you how to be a professional and efficient communicator at work. You will write effective business correspondence and instructions and deliver a formal oral presentation to your set. The first term establishes the principles and basic patterns on which you will build more advanced applications in the second term.", + "term": 1, + "credits": 4.0 + }, + { + "id": "1113", + "department": "comp", + "name": "Applied Mathematics", + "description": "Comp 1113 is partially discrete mathematics, partially an introduction to linear equations. The purpose of this course is to give a strong foundation for future technical and programming courses. The course is divided into three parts: (1) Boolean algebra and design of logic circuits; (2) number systems and data representation; and (3) functions, linear equations, vectors and matrices.", + "term": 1, + "credits": 4.0 + }, + { + "id": "1537", + "department": "comp", + "name": "Web Development 1", + "description": "This course focuses on programming both front and back end for web application development using JavaScript on both front-end and back-end development. Topics include AJAX, DOM editing with JavaScript & jQuery, and JSON.", + "term": 1, + "credits": 4.0 + }, + { + "id": "1800", + "department": "comp", + "name": "Projects 1", + "description": "Students learn to work in a collaborative environment and complete a small-scale software project: a mobile-friendly web application. The course is focused on developing the essential technical skills that will allow a student to develop a functional web application project. The course takes students through the UX design process which includes creating and administering surveys & interviews, creating personas and user stories, designing wireframes, and performing user tests with a developed implementation that is based on the UX design process. Students will use the Agile methodology to manage the software process. Software management workflow also includes using Git from the command-line for version control basics in a collaborative workflow. Students will apply web technologies such as JavaScript, CSS, and HTML. Data persistence may be optionally achieved using NoSQL data technology solution.", + "term": 1, + "credits": 4.0 + }, + { + "id": "1712", + "department": "comp", + "name": "Business Analysis & System Design", + "description": "Business Analysis and Systems Design is the study of concepts, processes and tools that professionals use to plan and develop information systems to industry standards. Students learn how to ask implicit questions, to create and document communication plans and to make better decisions prior to creating a software system. Beginning with an introduction to the Software Development Life Cycle (SDLC), students work in teams to initiate the system process, analyze problems, discover requirements and create a logical design. Topics include: techniques used in the discovery of business requirements, traditional approaches to data and process modelling, entity-relationship diagrams, and an introduction to relational database normalization. Agile life cycles such as Scrum are also introduced and compared to more planned life cycles such as waterfall. By the end of this course, successful participants will be able to use tools and methods commonly used in industry to analyze, design, and implement information systems as confirmed by a term project.", + "term": 1, + "credits": 4.0 + } +] diff --git a/index.js b/index.js new file mode 100644 index 0000000..23144aa --- /dev/null +++ b/index.js @@ -0,0 +1,86 @@ +const express = require("express"); +const path = require("path"); + +const app = express(); +const port = 8000; + +const courses = require("./database/courses.json"); + +app.use("/static", express.static(path.join(__dirname, "./public"))); +app.use(express.json()); + +app.get("/", (req, res) => { + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(__dirname, "./app/index.html")); + return res.status(200); +}); + +/*** API STUFF ***/ + +app.get("/course/:id", (req, res) => { + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(__dirname, "./app/course.html")); + return res.status(200); +}); + +app.get("/api/course/:id", (req, res) => { + res.set('Content-Type', 'text/json'); + for (let i = 0; i < courses.length; i++) { + if (courses[i].id === req.params.id) { + res.send(courses[i]); + return res.status(200); + } + } + res.send({ + "success": false, + "message": `course not found.` + }); + return res.status(404); +}); + +app.get("/api/courses", (req, res) => { + res.set('Content-Type', 'text/html'); + let table = ` +
+ + + + + + + + + + `; + + for (let i = 0; i < courses.length; i++) { + let course = ` + + + + + + `; + table = table + course; + } + table = table + ` + +
Crs. NameCrs. NumberCrs. Credits
${courses[i].name}${courses[i].department} ${courses[i].id}${courses[i].credits}
+
+ `; + + res.send(table); + return res.status(200); +}); + +/*** 404 page ***/ + +app.get("*", (req, res) => { + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(__dirname, "./app/404.html")); + return res.status(404); +}); + +app.listen(port, () => { + console.log(`Server listening on port ${port}`); +}); diff --git a/node_modules/.bin/.mime-EbN0JQTd b/node_modules/.bin/.mime-EbN0JQTd new file mode 120000 index 0000000..fbb7ee0 --- /dev/null +++ b/node_modules/.bin/.mime-EbN0JQTd @@ -0,0 +1 @@ +../mime/cli.js \ No newline at end of file diff --git a/node_modules/.bin/.nodemon-uy95b7Vy b/node_modules/.bin/.nodemon-uy95b7Vy new file mode 120000 index 0000000..1056ddc --- /dev/null +++ b/node_modules/.bin/.nodemon-uy95b7Vy @@ -0,0 +1 @@ +../nodemon/bin/nodemon.js \ No newline at end of file diff --git a/node_modules/.bin/.nodetouch-ig7IYS6V b/node_modules/.bin/.nodetouch-ig7IYS6V new file mode 120000 index 0000000..3409fdb --- /dev/null +++ b/node_modules/.bin/.nodetouch-ig7IYS6V @@ -0,0 +1 @@ +../touch/bin/nodetouch.js \ No newline at end of file diff --git a/node_modules/.bin/.semver-uYYV4CWo b/node_modules/.bin/.semver-uYYV4CWo new file mode 120000 index 0000000..5aaadf4 --- /dev/null +++ b/node_modules/.bin/.semver-uYYV4CWo @@ -0,0 +1 @@ +../semver/bin/semver.js \ No newline at end of file diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 100644 index 0000000..7751de3 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mime/cli.js" "$@" +else + exec node "$basedir/../mime/cli.js" "$@" +fi diff --git a/node_modules/.bin/mime.cmd b/node_modules/.bin/mime.cmd new file mode 100644 index 0000000..a9e48f1 --- /dev/null +++ b/node_modules/.bin/mime.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* diff --git a/node_modules/.bin/mime.ps1 b/node_modules/.bin/mime.ps1 new file mode 100644 index 0000000..2222f40 --- /dev/null +++ b/node_modules/.bin/mime.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mime/cli.js" $args + } else { + & "node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/nodemon b/node_modules/.bin/nodemon new file mode 100644 index 0000000..c477a18 --- /dev/null +++ b/node_modules/.bin/nodemon @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" +else + exec node "$basedir/../nodemon/bin/nodemon.js" "$@" +fi diff --git a/node_modules/.bin/nodemon.cmd b/node_modules/.bin/nodemon.cmd new file mode 100644 index 0000000..98e1b95 --- /dev/null +++ b/node_modules/.bin/nodemon.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* diff --git a/node_modules/.bin/nodemon.ps1 b/node_modules/.bin/nodemon.ps1 new file mode 100644 index 0000000..d4e3f5d --- /dev/null +++ b/node_modules/.bin/nodemon.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } else { + & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } else { + & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/nodetouch b/node_modules/.bin/nodetouch new file mode 100644 index 0000000..3e146b4 --- /dev/null +++ b/node_modules/.bin/nodetouch @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" +else + exec node "$basedir/../touch/bin/nodetouch.js" "$@" +fi diff --git a/node_modules/.bin/nodetouch.cmd b/node_modules/.bin/nodetouch.cmd new file mode 100644 index 0000000..426bfc3 --- /dev/null +++ b/node_modules/.bin/nodetouch.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* diff --git a/node_modules/.bin/nodetouch.ps1 b/node_modules/.bin/nodetouch.ps1 new file mode 100644 index 0000000..5f68b4c --- /dev/null +++ b/node_modules/.bin/nodetouch.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } else { + & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } else { + & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 100644 index 0000000..97c5327 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..7d4c104 --- /dev/null +++ b/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/node_modules/.bin/semver.ps1 b/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..314717a --- /dev/null +++ b/node_modules/.bin/semver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args + } else { + & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args + } else { + & "node$exe" "$basedir/../semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..7a9ac85 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,1182 @@ +{ + "name": "assignment5", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + } + } +} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000..cb5990c --- /dev/null +++ b/node_modules/accepts/HISTORY.md @@ -0,0 +1,243 @@ +1.3.8 / 2022-02-02 +================== + + * deps: mime-types@~2.1.34 + - deps: mime-db@~1.51.0 + * deps: negotiator@0.6.3 + +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/accepts/README.md b/node_modules/accepts/README.md new file mode 100644 index 0000000..82680c5 --- /dev/null +++ b/node_modules/accepts/README.md @@ -0,0 +1,140 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js new file mode 100644 index 0000000..e9b2f63 --- /dev/null +++ b/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json new file mode 100644 index 0000000..0f2d15d --- /dev/null +++ b/node_modules/accepts/package.json @@ -0,0 +1,47 @@ +{ + "name": "accepts", + "description": "Higher-level content negotiation", + "version": "1.3.8", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/accepts", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ] +} diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE new file mode 100644 index 0000000..491766c --- /dev/null +++ b/node_modules/anymatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/anymatch/README.md b/node_modules/anymatch/README.md new file mode 100644 index 0000000..1dd67f5 --- /dev/null +++ b/node_modules/anymatch/README.md @@ -0,0 +1,87 @@ +anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) +====== +Javascript module to match a string against a regular expression, glob, string, +or function that takes the string as an argument and returns a truthy or falsy +value. The matcher can also be an array of any or all of these. Useful for +allowing a very flexible user-defined config to define things like file paths. + +__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ + + +Usage +----- +```sh +npm install anymatch +``` + +#### anymatch(matchers, testString, [returnIndex], [options]) +* __matchers__: (_Array|String|RegExp|Function_) +String to be directly matched, string with glob patterns, regular expression +test, function that takes the testString as an argument and returns a truthy +value if it should be matched, or an array of any number and mix of these types. +* __testString__: (_String|Array_) The string to test against the matchers. If +passed as an array, the first element of the array will be used as the +`testString` for non-function matchers, while the entire array will be applied +as the arguments for function matchers. +* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. + * __returnIndex__: (_Boolean [optional]_) If true, return the array index of +the first matcher that that testString matched, or -1 if no match, instead of a +boolean result. + +```js +const anymatch = require('anymatch'); + +const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; + +anymatch(matchers, 'path/to/file.js'); // true +anymatch(matchers, 'path/anyjs/baz.js'); // true +anymatch(matchers, 'path/to/foo.js'); // true +anymatch(matchers, 'path/to/bar.js'); // true +anymatch(matchers, 'bar.js'); // false + +// returnIndex = true +anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 +anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 + +// any picomatc + +// using globs to match directories and their children +anymatch('node_modules', 'node_modules'); // true +anymatch('node_modules', 'node_modules/somelib/index.js'); // false +anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true +anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false +anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true + +const matcher = anymatch(matchers); +['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] +anymatch master* ❯ + +``` + +#### anymatch(matchers) +You can also pass in only your matcher(s) to get a curried function that has +already been bound to the provided matching criteria. This can be used as an +`Array#filter` callback. + +```js +var matcher = anymatch(matchers); + +matcher('path/to/file.js'); // true +matcher('path/anyjs/baz.js', true); // 1 + +['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] +``` + +Changelog +---------- +[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) + +- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. +- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). +- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) +for glob pattern matching. Issues with glob pattern matching should be +reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). + +License +------- +[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/node_modules/anymatch/index.d.ts b/node_modules/anymatch/index.d.ts new file mode 100644 index 0000000..3ef7eaa --- /dev/null +++ b/node_modules/anymatch/index.d.ts @@ -0,0 +1,20 @@ +type AnymatchFn = (testString: string) => boolean; +type AnymatchPattern = string|RegExp|AnymatchFn; +type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] +type AnymatchTester = { + (testString: string|any[], returnIndex: true): number; + (testString: string|any[]): boolean; +} + +type PicomatchOptions = {dot: boolean}; + +declare const anymatch: { + (matchers: AnymatchMatcher): AnymatchTester; + (matchers: AnymatchMatcher, testString: null, returnIndex: true | PicomatchOptions): AnymatchTester; + (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; + (matchers: AnymatchMatcher, testString: string|any[]): boolean; +} + +export {AnymatchMatcher as Matcher} +export {AnymatchTester as Tester} +export default anymatch diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js new file mode 100644 index 0000000..8eb73e9 --- /dev/null +++ b/node_modules/anymatch/index.js @@ -0,0 +1,104 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { value: true }); + +const picomatch = require('picomatch'); +const normalizePath = require('normalize-path'); + +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify = (item) => Array.isArray(item) ? item : [item]; + +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; + } + if (typeof matcher === 'string') { + const glob = picomatch(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; + +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) + } + const path = normalizePath(_path, false); + + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } + } + + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; + } + } + + return returnIndex ? -1 : false; +}; + +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; + + // Early cache for matchers. + const mtchers = arrify(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG) + .map(item => item.slice(1)) + .map(item => picomatch(item, opts)); + const patterns = mtchers + .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) + .map(matcher => createPattern(matcher, opts)); + + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } + } + + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; + +anymatch.default = anymatch; +module.exports = anymatch; diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json new file mode 100644 index 0000000..2cb2307 --- /dev/null +++ b/node_modules/anymatch/package.json @@ -0,0 +1,48 @@ +{ + "name": "anymatch", + "version": "3.1.3", + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "files": [ + "index.js", + "index.d.ts" + ], + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "author": { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + "license": "ISC", + "homepage": "https://github.com/micromatch/anymatch", + "repository": { + "type": "git", + "url": "https://github.com/micromatch/anymatch" + }, + "keywords": [ + "match", + "any", + "string", + "file", + "fs", + "list", + "glob", + "regex", + "regexp", + "regular", + "expression", + "function" + ], + "scripts": { + "test": "nyc mocha", + "mocha": "mocha" + }, + "devDependencies": { + "mocha": "^6.1.3", + "nyc": "^14.0.0" + }, + "engines": { + "node": ">= 8" + } +} diff --git a/node_modules/array-flatten/LICENSE b/node_modules/array-flatten/LICENSE new file mode 100644 index 0000000..983fbe8 --- /dev/null +++ b/node_modules/array-flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/array-flatten/README.md b/node_modules/array-flatten/README.md new file mode 100644 index 0000000..91fa5b6 --- /dev/null +++ b/node_modules/array-flatten/README.md @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```javascript +var flatten = require('array-flatten') + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) +//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] + +(function () { + flatten(arguments) //=> [1, 2, 3] +})(1, [2, 3]) +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/node_modules/array-flatten/array-flatten.js b/node_modules/array-flatten/array-flatten.js new file mode 100644 index 0000000..089117b --- /dev/null +++ b/node_modules/array-flatten/array-flatten.js @@ -0,0 +1,64 @@ +'use strict' + +/** + * Expose `arrayFlatten`. + */ +module.exports = arrayFlatten + +/** + * Recursive flatten function with depth. + * + * @param {Array} array + * @param {Array} result + * @param {Number} depth + * @return {Array} + */ +function flattenWithDepth (array, result, depth) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (depth > 0 && Array.isArray(value)) { + flattenWithDepth(value, result, depth - 1) + } else { + result.push(value) + } + } + + return result +} + +/** + * Recursive flatten function. Omitting depth is slightly faster. + * + * @param {Array} array + * @param {Array} result + * @return {Array} + */ +function flattenForever (array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (Array.isArray(value)) { + flattenForever(value, result) + } else { + result.push(value) + } + } + + return result +} + +/** + * Flatten an array, with the ability to define a depth. + * + * @param {Array} array + * @param {Number} depth + * @return {Array} + */ +function arrayFlatten (array, depth) { + if (depth == null) { + return flattenForever(array, []) + } + + return flattenWithDepth(array, [], depth) +} diff --git a/node_modules/array-flatten/package.json b/node_modules/array-flatten/package.json new file mode 100644 index 0000000..1a24e2a --- /dev/null +++ b/node_modules/array-flatten/package.json @@ -0,0 +1,39 @@ +{ + "name": "array-flatten", + "version": "1.1.1", + "description": "Flatten an array of nested arrays into a single flat array", + "main": "array-flatten.js", + "files": [ + "array-flatten.js", + "LICENSE" + ], + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "homepage": "https://github.com/blakeembrey/array-flatten", + "devDependencies": { + "istanbul": "^0.3.13", + "mocha": "^2.2.4", + "pre-commit": "^1.0.7", + "standard": "^3.7.3" + } +} diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000..cea8b16 --- /dev/null +++ b/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000..2cdc8e4 --- /dev/null +++ b/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md new file mode 100644 index 0000000..d2a48b6 --- /dev/null +++ b/node_modules/balanced-match/README.md @@ -0,0 +1,97 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js new file mode 100644 index 0000000..c67a646 --- /dev/null +++ b/node_modules/balanced-match/index.js @@ -0,0 +1,62 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if(a===b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json new file mode 100644 index 0000000..ce6073e --- /dev/null +++ b/node_modules/balanced-match/package.json @@ -0,0 +1,48 @@ +{ + "name": "balanced-match", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "version": "1.0.2", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "main": "index.js", + "scripts": { + "test": "tape test/test.js", + "bench": "matcha test/bench.js" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 0000000..ac08048 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,263 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "afdesign", + "afphoto", + "afpub", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +] diff --git a/node_modules/binary-extensions/binary-extensions.json.d.ts b/node_modules/binary-extensions/binary-extensions.json.d.ts new file mode 100644 index 0000000..94a248c --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json.d.ts @@ -0,0 +1,3 @@ +declare const binaryExtensionsJson: readonly string[]; + +export = binaryExtensionsJson; diff --git a/node_modules/binary-extensions/index.d.ts b/node_modules/binary-extensions/index.d.ts new file mode 100644 index 0000000..f469ac5 --- /dev/null +++ b/node_modules/binary-extensions/index.d.ts @@ -0,0 +1,14 @@ +/** +List of binary file extensions. + +@example +``` +import binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` +*/ +declare const binaryExtensions: readonly string[]; + +export = binaryExtensions; diff --git a/node_modules/binary-extensions/index.js b/node_modules/binary-extensions/index.js new file mode 100644 index 0000000..d46e468 --- /dev/null +++ b/node_modules/binary-extensions/index.js @@ -0,0 +1 @@ +module.exports = require('./binary-extensions.json'); diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license new file mode 100644 index 0000000..5493a1a --- /dev/null +++ b/node_modules/binary-extensions/license @@ -0,0 +1,10 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +Copyright (c) Paul Miller (https://paulmillr.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/binary-extensions/package.json b/node_modules/binary-extensions/package.json new file mode 100644 index 0000000..4710c33 --- /dev/null +++ b/node_modules/binary-extensions/package.json @@ -0,0 +1,40 @@ +{ + "name": "binary-extensions", + "version": "2.3.0", + "description": "List of binary file extensions", + "license": "MIT", + "repository": "sindresorhus/binary-extensions", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "sideEffects": false, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md new file mode 100644 index 0000000..88519b3 --- /dev/null +++ b/node_modules/binary-extensions/readme.md @@ -0,0 +1,25 @@ +# binary-extensions + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + +## Install + +```sh +npm install binary-extensions +``` + +## Usage + +```js +const binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` + +## Related + +- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file +- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions diff --git a/node_modules/body-parser/HISTORY.md b/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000..81d23e0 --- /dev/null +++ b/node_modules/body-parser/HISTORY.md @@ -0,0 +1,672 @@ +1.20.3 / 2024-09-10 +=================== + + * deps: qs@6.13.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + +1.20.2 / 2023-02-21 +=================== + + * Fix strict json error message on Node.js 19+ + * deps: content-type@~1.0.5 + - perf: skip value escaping when unnecessary + * deps: raw-body@2.5.2 + +1.20.1 / 2022-10-06 +=================== + + * deps: qs@6.11.0 + * perf: remove unnecessary object clone + +1.20.0 / 2022-04-02 +=================== + + * Fix error message for json parse whitespace in `strict` + * Fix internal error when inflated body exceeds limit + * Prevent loss of async hooks context + * Prevent hanging when request already read + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: qs@6.10.3 + * deps: raw-body@2.5.1 + - deps: http-errors@2.0.0 + +1.19.2 / 2022-02-15 +=================== + + * deps: bytes@3.1.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * deps: raw-body@2.4.3 + - deps: bytes@3.1.2 + +1.19.1 / 2021-12-10 +=================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: qs@6.9.6 + * deps: raw-body@2.4.2 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + * deps: safe-buffer@5.2.1 + * deps: type-is@~1.6.18 + +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/body-parser/README.md b/node_modules/body-parser/README.md new file mode 100644 index 0000000..f6661b7 --- /dev/null +++ b/node_modules/body-parser/README.md @@ -0,0 +1,476 @@ +# body-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +#### depth + +The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. + +## Errors + +The middlewares provided by this module create errors using the +[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors +will typically have a `status`/`statusCode` property that contains the suggested +HTTP response code, an `expose` property to determine if the `message` property +should be displayed to the client, a `type` property to determine the type of +error without matching against the `message`, and a `body` property containing +the read body, if available. + +The following are the common errors created, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### entity parse failed + +This error will occur when the request contained an entity that could not be +parsed by the middleware. The `status` property is set to `400`, the `type` +property is set to `'entity.parse.failed'`, and the `body` property is set to +the entity value that failed parsing. + +### entity verify failed + +This error will occur when the request contained an entity that could not be +failed verification by the defined `verify` option. The `status` property is +set to `403`, the `type` property is set to `'entity.verify.failed'`, and the +`body` property is set to the entity value that failed verification. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### stream is not readable + +This error will occur when the request is no longer readable when this middleware +attempts to read it. This typically means something other than a middleware from +this module read the request body already and the middleware was also configured to +read the same request. The `status` property is set to `500` and the `type` +property is set to `'stream.not.readable'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +### The input exceeded the depth + +This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci +[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[node-version-image]: https://badgen.net/npm/node/body-parser +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/body-parser +[npm-url]: https://npmjs.org/package/body-parser +[npm-version-image]: https://badgen.net/npm/v/body-parser +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/node_modules/body-parser/SECURITY.md b/node_modules/body-parser/SECURITY.md new file mode 100644 index 0000000..9694d42 --- /dev/null +++ b/node_modules/body-parser/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The Express team and community take all security bugs seriously. Thank you +for improving the security of Express. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `body-parser`. This +information can be found in the npm registry using the command +`npm owner ls body-parser`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/expressjs/body-parser/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js new file mode 100644 index 0000000..bb24d73 --- /dev/null +++ b/node_modules/body-parser/index.js @@ -0,0 +1,156 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + // use default type for parsers + var opts = Object.create(options || null, { + type: { + configurable: true, + enumerable: true, + value: undefined, + writable: true + } + }) + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000..fce6283 --- /dev/null +++ b/node_modules/body-parser/lib/read.js @@ -0,0 +1,205 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var destroy = require('destroy') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var unpipe = require('unpipe') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // unpipe from stream and destroy + if (stream !== req) { + unpipe(req) + destroy(stream, true) + } + + // read off entire request + dump(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} + +/** + * Dump the contents of a request. + * + * @param {object} req + * @param {function} callback + * @api private + */ + +function dump (req, callback) { + if (onFinished.isFinished(req)) { + callback(null) + } else { + onFinished(req, callback) + req.resume() + } +} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000..59f3f7e --- /dev/null +++ b/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,247 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex + +var JSON_SYNTAX_CHAR = '#' +var JSON_SYNTAX_REGEXP = /#+/g + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.slice(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = '' + + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR + + for (var i = index + 1; i < str.length; i++) { + partial += JSON_SYNTAX_CHAR + } + } + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { + return str.substring(index, index + placeholder.length) + }), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + var match = FIRST_CHAR_REGEXP.exec(str) + + return match + ? match[1] + : undefined +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000..f5d1b67 --- /dev/null +++ b/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000..083a009 --- /dev/null +++ b/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000..2bd4485 --- /dev/null +++ b/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,307 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + var depth = typeof opts.depth !== 'number' + ? Number(opts.depth || 32) + : opts.depth + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify, + depth: depth + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + + var depth = typeof options.depth !== 'number' + ? Number(options.depth || 32) + : options.depth + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isNaN(depth) || depth < 0) { + throw new TypeError('option depth must be a zero or a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + try { + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: depth, + strictDepth: true, + parameterLimit: parameterLimit + }) + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, 'The input exceeded the depth', { + type: 'querystring.parse.rangeError' + }) + } else { + throw err + } + } + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json new file mode 100644 index 0000000..3c9926f --- /dev/null +++ b/node_modules/body-parser/package.json @@ -0,0 +1,56 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "1.20.3", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "devDependencies": { + "eslint": "8.34.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "methods": "1.1.2", + "mocha": "10.2.0", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.3.3" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "SECURITY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000..de32266 --- /dev/null +++ b/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Julian Gruber + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/brace-expansion/README.md b/node_modules/brace-expansion/README.md new file mode 100644 index 0000000..6b4e0e1 --- /dev/null +++ b/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# brace-expansion + +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +as known from sh/bash, in JavaScript. + +[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) +[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) + +[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) + +## Example + +```js +var expand = require('brace-expansion'); + +expand('file-{a,b,c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('-v{,,}') +// => ['-v', '-v', '-v'] + +expand('file{0..2}.jpg') +// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] + +expand('file-{a..c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('file{2..0}.jpg') +// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] + +expand('file{0..4..2}.jpg') +// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] + +expand('file-{a..e..2}.jpg') +// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] + +expand('file{00..10..5}.jpg') +// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] + +expand('{{A..C},{a..c}}') +// => ['A', 'B', 'C', 'a', 'b', 'c'] + +expand('ppp{,config,oe{,conf}}') +// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] +``` + +## API + +```js +var expand = require('brace-expansion'); +``` + +### var expanded = expand(str) + +Return an array of all possible and valid expansions of `str`. If none are +found, `[str]` is returned. + +Valid expansions are: + +```js +/^(.*,)+(.+)?$/ +// {a,b,...} +``` + +A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +A numeric sequence from `x` to `y` inclusive, with optional increment. +If `x` or `y` start with a leading `0`, all the numbers will be padded +to have equal length. Negative numbers and backwards iteration work too. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +An alphabetic sequence from `x` to `y` inclusive, with optional increment. +`x` and `y` must be exactly one character, and if given, `incr` must be a +number. + +For compatibility reasons, the string `${` is not eligible for brace expansion. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install brace-expansion +``` + +## Contributors + +- [Julian Gruber](https://github.com/juliangruber) +- [Isaac Z. Schlueter](https://github.com/isaacs) + +## Sponsors + +This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! + +Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/brace-expansion/index.js b/node_modules/brace-expansion/index.js new file mode 100644 index 0000000..0478be8 --- /dev/null +++ b/node_modules/brace-expansion/index.js @@ -0,0 +1,201 @@ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} + diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json new file mode 100644 index 0000000..a18faa8 --- /dev/null +++ b/node_modules/brace-expansion/package.json @@ -0,0 +1,47 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.11", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "main": "index.js", + "scripts": { + "test": "tape test/*.js", + "gentest": "bash test/generate.sh", + "bench": "matcha test/perf/bench.js" + }, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/braces/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/braces/README.md b/node_modules/braces/README.md new file mode 100644 index 0000000..f59dd60 --- /dev/null +++ b/node_modules/braces/README.md @@ -0,0 +1,586 @@ +# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) + +> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save braces +``` + +## v3.0.0 Released!! + +See the [changelog](CHANGELOG.md) for details. + +## Why use braces? + +Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. + +- **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) +- **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. +- **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. +- **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). +- **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). +- [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` +- [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` +- [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` +- [Supports escaping](#escaping) - To prevent evaluation of special characters. + +## Usage + +The main export is a function that takes one or more brace `patterns` and `options`. + +```js +const braces = require('braces'); +// braces(patterns[, options]); + +console.log(braces(['{01..05}', '{a..e}'])); +//=> ['(0[1-5])', '([a-e])'] + +console.log(braces(['{01..05}', '{a..e}'], { expand: true })); +//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] +``` + +### Brace Expansion vs. Compilation + +By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. + +**Compiled** + +```js +console.log(braces('a/{x,y,z}/b')); +//=> ['a/(x|y|z)/b'] +console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); +//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] +``` + +**Expanded** + +Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): + +```js +console.log(braces('a/{x,y,z}/b', { expand: true })); +//=> ['a/x/b', 'a/y/b', 'a/z/b'] + +console.log(braces.expand('{01..10}')); +//=> ['01','02','03','04','05','06','07','08','09','10'] +``` + +### Lists + +Expand lists (like Bash "sets"): + +```js +console.log(braces('a/{foo,bar,baz}/*.js')); +//=> ['a/(foo|bar|baz)/*.js'] + +console.log(braces.expand('a/{foo,bar,baz}/*.js')); +//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] +``` + +### Sequences + +Expand ranges of characters (like Bash "sequences"): + +```js +console.log(braces.expand('{1..3}')); // ['1', '2', '3'] +console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] +console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] +console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] + +// supports zero-padded ranges +console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] +console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] +``` + +See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. + +### Steppped ranges + +Steps, or increments, may be used with ranges: + +```js +console.log(braces.expand('{2..10..2}')); +//=> ['2', '4', '6', '8', '10'] + +console.log(braces('{2..10..2}')); +//=> ['(2|4|6|8|10)'] +``` + +When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. + +### Nesting + +Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. + +**"Expanded" braces** + +```js +console.log(braces.expand('a{b,c,/{x,y}}/e')); +//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] + +console.log(braces.expand('a/{x,{1..5},y}/c')); +//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] +``` + +**"Optimized" braces** + +```js +console.log(braces('a{b,c,/{x,y}}/e')); +//=> ['a(b|c|/(x|y))/e'] + +console.log(braces('a/{x,{1..5},y}/c')); +//=> ['a/(x|([1-5])|y)/c'] +``` + +### Escaping + +**Escaping braces** + +A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: + +```js +console.log(braces.expand('a\\{d,c,b}e')); +//=> ['a{d,c,b}e'] + +console.log(braces.expand('a{d,c,b\\}e')); +//=> ['a{d,c,b}e'] +``` + +**Escaping commas** + +Commas inside braces may also be escaped: + +```js +console.log(braces.expand('a{b\\,c}d')); +//=> ['a{b,c}d'] + +console.log(braces.expand('a{d\\,c,b}e')); +//=> ['ad,ce', 'abe'] +``` + +**Single items** + +Following bash conventions, a brace pattern is also not expanded when it contains a single character: + +```js +console.log(braces.expand('a{b}c')); +//=> ['a{b}c'] +``` + +## Options + +### options.maxLength + +**Type**: `Number` + +**Default**: `10,000` + +**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. + +```js +console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error +``` + +### options.expand + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). + +```js +console.log(braces('a/{b,c}/d', { expand: true })); +//=> [ 'a/b/d', 'a/c/d' ] +``` + +### options.nodupes + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Remove duplicates from the returned array. + +### options.rangeLimit + +**Type**: `Number` + +**Default**: `1000` + +**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. + +You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. + +**Examples** + +```js +// pattern exceeds the "rangeLimit", so it's optimized automatically +console.log(braces.expand('{1..1000}')); +//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] + +// pattern does not exceed "rangeLimit", so it's NOT optimized +console.log(braces.expand('{1..100}')); +//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] +``` + +### options.transform + +**Type**: `Function` + +**Default**: `undefined` + +**Description**: Customize range expansion. + +**Example: Transforming non-numeric values** + +```js +const alpha = braces.expand('x/{a..e}/y', { + transform(value, index) { + // When non-numeric values are passed, "value" is a character code. + return 'foo/' + String.fromCharCode(value) + '-' + index; + }, +}); +console.log(alpha); +//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] +``` + +**Example: Transforming numeric values** + +```js +const numeric = braces.expand('{1..5}', { + transform(value) { + // when numeric values are passed, "value" is a number + return 'foo/' + value * 2; + }, +}); +console.log(numeric); +//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] +``` + +### options.quantifiers + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. + +Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) + +The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. + +**Examples** + +```js +const braces = require('braces'); +console.log(braces('a/b{1,3}/{x,y,z}')); +//=> [ 'a/b(1|3)/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true })); +//=> [ 'a/b{1,3}/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', { quantifiers: true, expand: true })); +//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] +``` + +### options.keepEscaping + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Do not strip backslashes that were used for escaping from the result. + +## What is "brace expansion"? + +Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). + +In addition to "expansion", braces are also used for matching. In other words: + +- [brace expansion](#brace-expansion) is for generating new lists +- [brace matching](#brace-matching) is for filtering existing lists + +
+More about brace expansion (click to expand) + +There are two main types of brace expansion: + +1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` +2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". + +Here are some example brace patterns to illustrate how they work: + +**Sets** + +``` +{a,b,c} => a b c +{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 +``` + +**Sequences** + +``` +{1..9} => 1 2 3 4 5 6 7 8 9 +{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 +{1..20..3} => 1 4 7 10 13 16 19 +{a..j} => a b c d e f g h i j +{j..a} => j i h g f e d c b a +{a..z..3} => a d g j m p s v y +``` + +**Combination** + +Sets and sequences can be mixed together or used along with any other strings. + +``` +{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 +foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar +``` + +The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. + +## Brace matching + +In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. + +For example, the pattern `foo/{1..3}/bar` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +``` + +But not: + +``` +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +## Brace matching pitfalls + +Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. + +### tldr + +**"brace bombs"** + +- brace expansion can eat up a huge amount of processing resources +- as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially +- users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) + +For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. + +### The solution + +Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. + +### Geometric complexity + +At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. + +For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: + +``` +{1,2}{3,4} => (2X2) => 13 14 23 24 +{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 +``` + +But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: + +``` +{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 + 249 257 258 259 267 268 269 347 348 349 357 + 358 359 367 368 369 +``` + +Now, imagine how this complexity grows given that each element is a n-tuple: + +``` +{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) +{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) +``` + +Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. + +**More information** + +Interested in learning more about brace expansion? + +- [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) +- [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) +- [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) + +
+ +## Performance + +Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. + +### Better algorithms + +Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. + +Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. + +**The proof is in the numbers** + +Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. + +| **Pattern** | **braces** | **[minimatch][]** | +| --------------------------- | ------------------- | ---------------------------- | +| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs) | N/A (freezes) | +| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | +| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | +| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | +| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | +| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | +| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | +| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | +| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | +| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | +| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | +| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | +| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | +| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | +| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | +| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | +| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | + +### Faster algorithms + +When you need expansion, braces is still much faster. + +_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ + +| **Pattern** | **braces** | **[minimatch][]** | +| --------------- | --------------------------- | ---------------------------- | +| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | +| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | +| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | +| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | +| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | +| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | +| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | +| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | + +If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). + +## Benchmarks + +### Running benchmarks + +Install dev dependencies: + +```bash +npm i -d && npm benchmark +``` + +### Latest results + +Braces is more accurate, without sacrificing performance. + +```bash +● expand - range (expanded) + braces x 53,167 ops/sec ±0.12% (102 runs sampled) + minimatch x 11,378 ops/sec ±0.10% (102 runs sampled) +● expand - range (optimized for regex) + braces x 373,442 ops/sec ±0.04% (100 runs sampled) + minimatch x 3,262 ops/sec ±0.18% (100 runs sampled) +● expand - nested ranges (expanded) + braces x 33,921 ops/sec ±0.09% (99 runs sampled) + minimatch x 10,855 ops/sec ±0.28% (100 runs sampled) +● expand - nested ranges (optimized for regex) + braces x 287,479 ops/sec ±0.52% (98 runs sampled) + minimatch x 3,219 ops/sec ±0.28% (101 runs sampled) +● expand - set (expanded) + braces x 238,243 ops/sec ±0.19% (97 runs sampled) + minimatch x 538,268 ops/sec ±0.31% (96 runs sampled) +● expand - set (optimized for regex) + braces x 321,844 ops/sec ±0.10% (97 runs sampled) + minimatch x 140,600 ops/sec ±0.15% (100 runs sampled) +● expand - nested sets (expanded) + braces x 165,371 ops/sec ±0.42% (96 runs sampled) + minimatch x 337,720 ops/sec ±0.28% (100 runs sampled) +● expand - nested sets (optimized for regex) + braces x 242,948 ops/sec ±0.12% (99 runs sampled) + minimatch x 87,403 ops/sec ±0.79% (96 runs sampled) +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| ----------- | ------------------------------------------------------------- | +| 197 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [doowb](https://github.com/doowb) | +| 1 | [es128](https://github.com/es128) | +| 1 | [eush77](https://github.com/eush77) | +| 1 | [hemanth](https://github.com/hemanth) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +- [GitHub Profile](https://github.com/jonschlinkert) +- [Twitter Profile](https://twitter.com/jonschlinkert) +- [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +--- + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js new file mode 100644 index 0000000..d222c13 --- /dev/null +++ b/node_modules/braces/index.js @@ -0,0 +1,170 @@ +'use strict'; + +const stringify = require('./lib/stringify'); +const compile = require('./lib/compile'); +const expand = require('./lib/expand'); +const parse = require('./lib/parse'); + +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ + +const braces = (input, options = {}) => { + let output = []; + + if (Array.isArray(input)) { + for (const pattern of input) { + const result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; + +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ + +braces.parse = (input, options = {}) => parse(input, options); + +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); +}; + +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile(input, options); +}; + +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + + let result = expand(input, options); + + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } + + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } + + return result; +}; + +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + + return options.expand !== true + ? braces.compile(input, options) + : braces.expand(input, options); +}; + +/** + * Expose "braces" + */ + +module.exports = braces; diff --git a/node_modules/braces/lib/compile.js b/node_modules/braces/lib/compile.js new file mode 100644 index 0000000..dce69be --- /dev/null +++ b/node_modules/braces/lib/compile.js @@ -0,0 +1,60 @@ +'use strict'; + +const fill = require('fill-range'); +const utils = require('./utils'); + +const compile = (ast, options = {}) => { + const walk = (node, parent = {}) => { + const invalidBlock = utils.isInvalidBrace(parent); + const invalidNode = node.invalid === true && options.escapeInvalid === true; + const invalid = invalidBlock === true || invalidNode === true; + const prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + + if (node.isClose === true) { + console.log('node.isClose', prefix, node.value); + return prefix + node.value; + } + + if (node.type === 'open') { + return invalid ? prefix + node.value : '('; + } + + if (node.type === 'close') { + return invalid ? prefix + node.value : ')'; + } + + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; + } + + if (node.value) { + return node.value; + } + + if (node.nodes && node.ranges > 0) { + const args = utils.reduce(node.nodes); + const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (const child of node.nodes) { + output += walk(child, node); + } + } + + return output; + }; + + return walk(ast); +}; + +module.exports = compile; diff --git a/node_modules/braces/lib/constants.js b/node_modules/braces/lib/constants.js new file mode 100644 index 0000000..2bb3b88 --- /dev/null +++ b/node_modules/braces/lib/constants.js @@ -0,0 +1,57 @@ +'use strict'; + +module.exports = { + MAX_LENGTH: 10000, + + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ + + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ + + CHAR_ASTERISK: '*', /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ +}; diff --git a/node_modules/braces/lib/expand.js b/node_modules/braces/lib/expand.js new file mode 100644 index 0000000..35b2c41 --- /dev/null +++ b/node_modules/braces/lib/expand.js @@ -0,0 +1,113 @@ +'use strict'; + +const fill = require('fill-range'); +const stringify = require('./stringify'); +const utils = require('./utils'); + +const append = (queue = '', stash = '', enclose = false) => { + const result = []; + + queue = [].concat(queue); + stash = [].concat(stash); + + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (const item of queue) { + if (Array.isArray(item)) { + for (const value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + } + } + } + return utils.flatten(result); +}; + +const expand = (ast, options = {}) => { + const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit; + + const walk = (node, parent = {}) => { + node.queue = []; + + let p = parent; + let q = parent.queue; + + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } + + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } + + if (node.nodes && node.ranges > 0) { + const args = utils.reduce(node.nodes); + + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + + let range = fill(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + + const enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } + + for (let i = 0; i < node.nodes.length; i++) { + const child = node.nodes[i]; + + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } + + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } + + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; + }; + + return utils.flatten(walk(ast)); +}; + +module.exports = expand; diff --git a/node_modules/braces/lib/parse.js b/node_modules/braces/lib/parse.js new file mode 100644 index 0000000..3a6988e --- /dev/null +++ b/node_modules/braces/lib/parse.js @@ -0,0 +1,331 @@ +'use strict'; + +const stringify = require('./stringify'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET, /* ] */ + CHAR_DOUBLE_QUOTE, /* " */ + CHAR_SINGLE_QUOTE, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = require('./constants'); + +/** + * parse + */ + +const parse = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + const opts = options || {}; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + + const ast = { type: 'root', input, nodes: [] }; + const stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + const length = input.length; + let index = 0; + let depth = 0; + let value; + + /** + * Helpers + */ + + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } + + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } + + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + + push({ type: 'bos' }); + + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + + /** + * Invalid chars + */ + + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + + /** + * Escaped chars + */ + + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } + + /** + * Right square bracket (literal): ']' + */ + + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ type: 'text', value: '\\' + value }); + continue; + } + + /** + * Left square bracket: '[' + */ + + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + + let next; + + while (index < length && (next = advance())) { + value += next; + + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + + if (brackets === 0) { + break; + } + } + } + + push({ type: 'text', value }); + continue; + } + + /** + * Parentheses + */ + + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } + + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } + + /** + * Quotes: '|"|` + */ + + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + const open = value; + let next; + + if (options.keepQuotes !== true) { + value = ''; + } + + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } + + value += next; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Left curly brace: '{' + */ + + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + + const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + const brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } + + /** + * Right curly brace: '}' + */ + + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } + + const type = 'close'; + block = stack.pop(); + block.close = true; + + push({ type, value }); + depth--; + + block = stack[stack.length - 1]; + continue; + } + + /** + * Comma: ',' + */ + + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + const open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify(block) }]; + } + + push({ type: 'comma', value }); + block.commas++; + continue; + } + + /** + * Dot: '.' + */ + + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + const siblings = block.nodes; + + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } + + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; + + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } + + block.ranges++; + block.args = []; + continue; + } + + if (prev.type === 'range') { + siblings.pop(); + + const before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ type: 'dot', value }); + continue; + } + + /** + * Text + */ + + push({ type: 'text', value }); + } + + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); + + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); + + // get the location of the block on parent.nodes (block's siblings) + const parent = stack[stack.length - 1]; + const index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); + + push({ type: 'eos' }); + return ast; +}; + +module.exports = parse; diff --git a/node_modules/braces/lib/stringify.js b/node_modules/braces/lib/stringify.js new file mode 100644 index 0000000..8bcf872 --- /dev/null +++ b/node_modules/braces/lib/stringify.js @@ -0,0 +1,32 @@ +'use strict'; + +const utils = require('./utils'); + +module.exports = (ast, options = {}) => { + const stringify = (node, parent = {}) => { + const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + const invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; + + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } + + if (node.value) { + return node.value; + } + + if (node.nodes) { + for (const child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + + return stringify(ast); +}; + diff --git a/node_modules/braces/lib/utils.js b/node_modules/braces/lib/utils.js new file mode 100644 index 0000000..d19311f --- /dev/null +++ b/node_modules/braces/lib/utils.js @@ -0,0 +1,122 @@ +'use strict'; + +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; + +/** + * Find a node of the given type + */ + +exports.find = (node, type) => node.nodes.find(node => node.type === type); + +/** + * Find a node of the given type + */ + +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; + +/** + * Escape the given node with '\\' before node.value + */ + +exports.escapeNode = (block, n = 0, type) => { + const node = block.nodes[n]; + if (!node) return; + + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; + +/** + * Returns true if the given brace node should be enclosed in literal braces + */ + +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a brace node is invalid. + */ + +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a node is an open or close node + */ + +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; + +/** + * Reduce an array of text nodes. + */ + +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + const ele = arr[i]; + + if (Array.isArray(ele)) { + flat(ele); + continue; + } + + if (ele !== undefined) { + result.push(ele); + } + } + return result; + }; + + flat(args); + return result; +}; diff --git a/node_modules/braces/package.json b/node_modules/braces/package.json new file mode 100644 index 0000000..c3c056e --- /dev/null +++ b/node_modules/braces/package.json @@ -0,0 +1,77 @@ +{ + "name": "braces", + "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", + "version": "3.0.3", + "homepage": "https://github.com/micromatch/braces", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Elan Shanker (https://github.com/es128)", + "Eugene Sharygin (https://github.com/eush77)", + "hemanth.hm (http://h3manth.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/braces", + "bugs": { + "url": "https://github.com/micromatch/braces/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha", + "benchmark": "node benchmark" + }, + "dependencies": { + "fill-range": "^7.1.1" + }, + "devDependencies": { + "ansi-colors": "^3.2.4", + "bash-path": "^2.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "bash", + "brace", + "braces", + "expand", + "expansion", + "filepath", + "fill", + "fs", + "glob", + "globbing", + "letter", + "match", + "matches", + "matching", + "number", + "numerical", + "path", + "range", + "ranges", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "lint": { + "reflinks": true + }, + "plugins": [ + "gulp-format-md" + ] + } +} diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md new file mode 100644 index 0000000..d60ce0e --- /dev/null +++ b/node_modules/bytes/History.md @@ -0,0 +1,97 @@ +3.1.2 / 2022-01-27 +================== + + * Fix return value for un-parsable strings + +3.1.1 / 2021-11-15 +================== + + * Fix "thousandsSeparator" incorrecting formatting fractional part + +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git a/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE new file mode 100644 index 0000000..63e95a9 --- /dev/null +++ b/node_modules/bytes/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/bytes/Readme.md b/node_modules/bytes/Readme.md new file mode 100644 index 0000000..5790e23 --- /dev/null +++ b/node_modules/bytes/Readme.md @@ -0,0 +1,152 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes(number|string value, [options]): number|string|null + +Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number`|`string` | Number value to format or string value to parse | +| options | `Object` | Conversion options for `format` | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes('1KB'); +// output: 1024 +``` + +#### bytes.format(number value, [options]): string|null + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | +| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes.format(1024); +// output: '1KB' + +bytes.format(1000); +// output: '1000B' + +bytes.format(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes.format(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes.format(1024, {unitSeparator: ' '}); +// output: '1 KB' +``` + +#### bytes.parse(string|number value): number|null + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`|`number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes.parse('1KB'); +// output: 1024 + +bytes.parse('1024'); +// output: 1024 + +bytes.parse(1024); +// output: 1024 +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci +[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/v/bytes +[npm-url]: https://npmjs.org/package/bytes diff --git a/node_modules/bytes/index.js b/node_modules/bytes/index.js new file mode 100644 index 0000000..6f2d0f8 --- /dev/null +++ b/node_modules/bytes/index.js @@ -0,0 +1,170 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} diff --git a/node_modules/bytes/package.json b/node_modules/bytes/package.json new file mode 100644 index 0000000..f2b6a8b --- /dev/null +++ b/node_modules/bytes/package.json @@ -0,0 +1,42 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc new file mode 100644 index 0000000..201e859 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.eslintrc @@ -0,0 +1,17 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-extra-parens": 0, + "no-magic-numbers": 0, + }, +} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml new file mode 100644 index 0000000..0011e9d --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bind-apply-helpers +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md new file mode 100644 index 0000000..2484942 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 + +### Commits + +- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) + +## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 + +### Commits + +- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) +- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) +- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) + +## v1.0.0 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) +- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) +- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) +- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md new file mode 100644 index 0000000..8fc0dae --- /dev/null +++ b/node_modules/call-bind-apply-helpers/README.md @@ -0,0 +1,62 @@ +# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Helper functions around Function call/apply/bind, for use in `call-bind`. + +The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. +Please use `call-bind` unless you have a very good reason not to. + +## Getting started + +```sh +npm install --save call-bind-apply-helpers +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBindBasic = require('call-bind-apply-helpers'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBindBasic([f, 1]); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(2, 3); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind-apply-helpers +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg +[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers +[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers +[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts new file mode 100644 index 0000000..b87286a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.d.ts @@ -0,0 +1 @@ +export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts new file mode 100644 index 0000000..d176c1a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.d.ts @@ -0,0 +1,19 @@ +import actualApply from './actualApply'; + +type TupleSplitHead = T['length'] extends N + ? T + : T extends [...infer R, any] + ? TupleSplitHead + : never + +type TupleSplitTail = O['length'] extends N + ? T + : T extends [infer F, ...infer R] + ? TupleSplitTail<[...R], N, [...O, F]> + : never + +type TupleSplit = [TupleSplitHead, TupleSplitTail] + +declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; + +export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js new file mode 100644 index 0000000..d2b7723 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); +var $apply = require('./functionApply'); +var actualApply = require('./actualApply'); + +/** @type {import('./applyBind')} */ +module.exports = function applyBind() { + return actualApply(bind, $apply, arguments); +}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts new file mode 100644 index 0000000..1f6e11b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.d.ts @@ -0,0 +1 @@ +export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts new file mode 100644 index 0000000..15e93df --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.d.ts @@ -0,0 +1 @@ +export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts new file mode 100644 index 0000000..541516b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.d.ts @@ -0,0 +1,64 @@ +type RemoveFromTuple< + Tuple extends readonly unknown[], + RemoveCount extends number, + Index extends 1[] = [] +> = Index["length"] extends RemoveCount + ? Tuple + : Tuple extends [infer First, ...infer Rest] + ? RemoveFromTuple + : Tuple; + +type ConcatTuples< + Prefix extends readonly unknown[], + Suffix extends readonly unknown[] +> = [...Prefix, ...Suffix]; + +type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R + ? { thisArg: TThis; params: P; returnType: R } + : never; + +type BindFunction< + T extends (this: any, ...args: any[]) => any, + TThis, + TBoundArgs extends readonly unknown[], + ReceiverBound extends boolean +> = ExtractFunctionParams extends { + thisArg: infer OrigThis; + params: infer P extends readonly unknown[]; + returnType: infer R; +} + ? ReceiverBound extends true + ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] + ? [TThis, ...Rest] // Replace `this` with `thisArg` + : R + : >>( + thisArg: U, + ...args: RemainingArgs + ) => R extends [OrigThis, ...infer Rest] + ? [U, ...ConcatTuples] // Preserve bound args in return type + : R + : never; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[], + const TThis extends Extracted["thisArg"] +>( + args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[] +>( + args: [fn: T, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind( + args: [fn: Exclude, ...rest: TArgs] +): never; + +// export as namespace callBind; +export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..2f6dab4 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..923b8be --- /dev/null +++ b/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,85 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.3", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts new file mode 100644 index 0000000..6b2ae76 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.d.ts @@ -0,0 +1,3 @@ +declare const reflectApply: false | typeof Reflect.apply; + +export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js new file mode 100644 index 0000000..1cdc89e --- /dev/null +++ b/node_modules/call-bind-apply-helpers/test/index.js @@ -0,0 +1,63 @@ +'use strict'; + +var callBind = require('../'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +test('callBindBasic', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + // @ts-expect-error + function () { callBind([nonFunction]); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + + /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ + var bound = callBind([func]); + /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ + var boundR = callBind([func, sentinel]); + /** type {((b: number) => [typeof sentinel, number, typeof b])} */ + var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); + + // @ts-expect-error + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); + + // @ts-expect-error + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + // @ts-expect-error + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); + // @ts-expect-error + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + // @ts-expect-error + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + + // @ts-expect-error + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + // @ts-expect-error + t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + // @ts-expect-error + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + // @ts-expect-error + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.end(); +}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} \ No newline at end of file diff --git a/node_modules/call-bound/.eslintrc b/node_modules/call-bound/.eslintrc new file mode 100644 index 0000000..2612ed8 --- /dev/null +++ b/node_modules/call-bound/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/call-bound/.github/FUNDING.yml b/node_modules/call-bound/.github/FUNDING.yml new file mode 100644 index 0000000..2a2a135 --- /dev/null +++ b/node_modules/call-bound/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bound +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bound/.nycrc b/node_modules/call-bound/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bound/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bound/CHANGELOG.md b/node_modules/call-bound/CHANGELOG.md new file mode 100644 index 0000000..25fa7a5 --- /dev/null +++ b/node_modules/call-bound/CHANGELOG.md @@ -0,0 +1,34 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 + +### Commits + +- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) +- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) +- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) +- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) + +## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) +- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) +- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) + +## v1.0.1 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) +- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) +- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) +- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) +- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) +- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/node_modules/call-bound/LICENSE b/node_modules/call-bound/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bound/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/call-bound/README.md b/node_modules/call-bound/README.md new file mode 100644 index 0000000..a44e43e --- /dev/null +++ b/node_modules/call-bound/README.md @@ -0,0 +1,53 @@ +# call-bound [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. + +## Getting started + +```sh +npm install --save call-bound +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBound = require('call-bound'); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; +delete Array.prototype.slice; + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bound +[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg +[deps-svg]: https://david-dm.org/ljharb/call-bound.svg +[deps-url]: https://david-dm.org/ljharb/call-bound +[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bound.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bound +[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound +[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/node_modules/call-bound/index.d.ts b/node_modules/call-bound/index.d.ts new file mode 100644 index 0000000..e3d772c --- /dev/null +++ b/node_modules/call-bound/index.d.ts @@ -0,0 +1,13 @@ +import callBind from 'call-bind-apply-helpers'; + +declare function callBoundIntrinsic( + name: string, + allowMissing?: false +): ReturnType; + +declare function callBoundIntrinsic( + name: string, + allowMissing: true +): undefined | ReturnType; + +export = callBoundIntrinsic; \ No newline at end of file diff --git a/node_modules/call-bound/index.js b/node_modules/call-bound/index.js new file mode 100644 index 0000000..3bb4012 --- /dev/null +++ b/node_modules/call-bound/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + // eslint-disable-next-line no-extra-parens + var intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic([intrinsic]); + } + return intrinsic; +}; diff --git a/node_modules/call-bound/package.json b/node_modules/call-bound/package.json new file mode 100644 index 0000000..2893ed1 --- /dev/null +++ b/node_modules/call-bound/package.json @@ -0,0 +1,99 @@ +{ + "name": "call-bound", + "version": "1.0.3", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bound/test/index.js b/node_modules/call-bound/test/index.js new file mode 100644 index 0000000..36f5f0b --- /dev/null +++ b/node_modules/call-bound/test/index.js @@ -0,0 +1,54 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../'); + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + // prototype function + t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/call-bound/tsconfig.json b/node_modules/call-bound/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/call-bound/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/chokidar/LICENSE b/node_modules/chokidar/LICENSE new file mode 100644 index 0000000..fa9162b --- /dev/null +++ b/node_modules/chokidar/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/chokidar/README.md b/node_modules/chokidar/README.md new file mode 100644 index 0000000..8e25dec --- /dev/null +++ b/node_modules/chokidar/README.md @@ -0,0 +1,308 @@ +# Chokidar [![Weekly downloads](https://img.shields.io/npm/dw/chokidar.svg)](https://github.com/paulmillr/chokidar) [![Yearly downloads](https://img.shields.io/npm/dy/chokidar.svg)](https://github.com/paulmillr/chokidar) + +> Minimal and efficient cross-platform file watching library + +[![NPM](https://nodei.co/npm/chokidar.png)](https://www.npmjs.com/package/chokidar) + +## Why? + +Node.js `fs.watch`: + +* Doesn't report filenames on MacOS. +* Doesn't report events at all when using editors like Sublime on MacOS. +* Often reports events twice. +* Emits most changes as `rename`. +* Does not provide an easy way to recursively watch file trees. +* Does not support recursive watching on Linux. + +Node.js `fs.watchFile`: + +* Almost as bad at event handling. +* Also does not provide any recursive watching. +* Results in high CPU utilization. + +Chokidar resolves these problems. + +Initially made for **[Brunch](https://brunch.io/)** (an ultra-swift web app build tool), it is now used in +[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode), +[gulp](https://github.com/gulpjs/gulp/), +[karma](https://karma-runner.github.io/), +[PM2](https://github.com/Unitech/PM2), +[browserify](http://browserify.org/), +[webpack](https://webpack.github.io/), +[BrowserSync](https://www.browsersync.io/), +and [many others](https://www.npmjs.com/browse/depended/chokidar). +It has proven itself in production environments. + +Version 3 is out! Check out our blog post about it: [Chokidar 3: How to save 32TB of traffic every week](https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/) + +## How? + +Chokidar does still rely on the Node.js core `fs` module, but when using +`fs.watch` and `fs.watchFile` for watching, it normalizes the events it +receives, often checking for truth by getting file stats and/or dir contents. + +On MacOS, chokidar by default uses a native extension exposing the Darwin +`FSEvents` API. This provides very efficient recursive watching compared with +implementations like `kqueue` available on most \*nix platforms. Chokidar still +does have to do some work to normalize the events received that way as well. + +On most other platforms, the `fs.watch`-based implementation is the default, which +avoids polling and keeps CPU usage down. Be advised that chokidar will initiate +watchers recursively for everything within scope of the paths that have been +specified, so be judicious about not wasting system resources by watching much +more than needed. + +## Getting started + +Install with npm: + +```sh +npm install chokidar +``` + +Then `require` and use it in your code: + +```javascript +const chokidar = require('chokidar'); + +// One-liner for current directory +chokidar.watch('.').on('all', (event, path) => { + console.log(event, path); +}); +``` + +## API + +```javascript +// Example of a more typical implementation structure + +// Initialize watcher. +const watcher = chokidar.watch('file, dir, glob, or array', { + ignored: /(^|[\/\\])\../, // ignore dotfiles + persistent: true +}); + +// Something to use when events are received. +const log = console.log.bind(console); +// Add event listeners. +watcher + .on('add', path => log(`File ${path} has been added`)) + .on('change', path => log(`File ${path} has been changed`)) + .on('unlink', path => log(`File ${path} has been removed`)); + +// More possible events. +watcher + .on('addDir', path => log(`Directory ${path} has been added`)) + .on('unlinkDir', path => log(`Directory ${path} has been removed`)) + .on('error', error => log(`Watcher error: ${error}`)) + .on('ready', () => log('Initial scan complete. Ready for changes')) + .on('raw', (event, path, details) => { // internal + log('Raw event info:', event, path, details); + }); + +// 'add', 'addDir' and 'change' events also receive stat() results as second +// argument when available: https://nodejs.org/api/fs.html#fs_class_fs_stats +watcher.on('change', (path, stats) => { + if (stats) console.log(`File ${path} changed size to ${stats.size}`); +}); + +// Watch new files. +watcher.add('new-file'); +watcher.add(['new-file-2', 'new-file-3', '**/other-file*']); + +// Get list of actual paths being watched on the filesystem +var watchedPaths = watcher.getWatched(); + +// Un-watch some files. +await watcher.unwatch('new-file*'); + +// Stop watching. +// The method is async! +watcher.close().then(() => console.log('closed')); + +// Full list of options. See below for descriptions. +// Do not use this example! +chokidar.watch('file', { + persistent: true, + + ignored: '*.txt', + ignoreInitial: false, + followSymlinks: true, + cwd: '.', + disableGlobbing: false, + + usePolling: false, + interval: 100, + binaryInterval: 300, + alwaysStat: false, + depth: 99, + awaitWriteFinish: { + stabilityThreshold: 2000, + pollInterval: 100 + }, + + ignorePermissionErrors: false, + atomic: true // or a custom 'atomicity delay', in milliseconds (default 100) +}); + +``` + +`chokidar.watch(paths, [options])` + +* `paths` (string or array of strings). Paths to files, dirs to be watched +recursively, or glob patterns. + - Note: globs must not contain windows separators (`\`), + because that's how they work by the standard — + you'll need to replace them with forward slashes (`/`). + - Note 2: for additional glob documentation, check out low-level + library: [picomatch](https://github.com/micromatch/picomatch). +* `options` (object) Options object as defined below: + +#### Persistence + +* `persistent` (default: `true`). Indicates whether the process +should continue to run as long as files are being watched. If set to +`false` when using `fsevents` to watch, no more events will be emitted +after `ready`, even if the process continues to run. + +#### Path filtering + +* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition) +Defines files/paths to be ignored. The whole relative or absolute path is +tested, not just filename. If a function with two arguments is provided, it +gets called twice per path - once with a single argument (the path), second +time with two arguments (the path and the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object of that path). +* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while +instantiating the watching as chokidar discovers these file paths (before the `ready` event). +* `followSymlinks` (default: `true`). When `false`, only the +symlinks themselves will be watched for changes instead of following +the link references and bubbling events through the link's path. +* `cwd` (no default). The base directory from which watch `paths` are to be +derived. Paths emitted with events will be relative to this. +* `disableGlobbing` (default: `false`). If set to `true` then the strings passed to `.watch()` and `.add()` are treated as +literal path names, even if they look like globs. + +#### Performance + +* `usePolling` (default: `false`). +Whether to use fs.watchFile (backed by polling), or fs.watch. If polling +leads to high CPU utilization, consider setting this to `false`. It is +typically necessary to **set this to `true` to successfully watch files over +a network**, and it may be necessary to successfully watch files in other +non-standard situations. Setting to `true` explicitly on MacOS overrides the +`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable +to true (1) or false (0) in order to override this option. +* _Polling-specific settings_ (effective when `usePolling: true`) + * `interval` (default: `100`). Interval of file system polling, in milliseconds. You may also + set the CHOKIDAR_INTERVAL env variable to override this option. + * `binaryInterval` (default: `300`). Interval of file system + polling for binary files. + ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) +* `useFsEvents` (default: `true` on MacOS). Whether to use the +`fsevents` watching interface if available. When set to `true` explicitly +and `fsevents` is available this supercedes the `usePolling` setting. When +set to `false` on MacOS, `usePolling: true` becomes the default. +* `alwaysStat` (default: `false`). If relying upon the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object that may get passed with `add`, `addDir`, and `change` events, set +this to `true` to ensure it is provided even in cases where it wasn't +already available from the underlying watch events. +* `depth` (default: `undefined`). If set, limits how many levels of +subdirectories will be traversed. +* `awaitWriteFinish` (default: `false`). +By default, the `add` event will fire when a file first appears on disk, before +the entire file has been written. Furthermore, in some cases some `change` +events will be emitted while the file is being written. In some cases, +especially when watching for large files there will be a need to wait for the +write operation to finish before responding to a file creation or modification. +Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size, +holding its `add` and `change` events until the size does not change for a +configurable amount of time. The appropriate duration setting is heavily +dependent on the OS and hardware. For accurate detection this parameter should +be relatively high, making file watching much less responsive. +Use with caution. + * *`options.awaitWriteFinish` can be set to an object in order to adjust + timing params:* + * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in + milliseconds for a file size to remain constant before emitting its event. + * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval, in milliseconds. + +#### Errors + +* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files +that don't have read permissions if possible. If watching fails due to `EPERM` +or `EACCES` with this set to `true`, the errors will be suppressed silently. +* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`). +Automatically filters out artifacts that occur when using editors that use +"atomic writes" instead of writing directly to the source file. If a file is +re-added within 100 ms of being deleted, Chokidar emits a `change` event +rather than `unlink` then `add`. If the default of 100 ms does not work well +for you, you can override it by setting `atomic` to a custom value, in +milliseconds. + +### Methods & Events + +`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`: + +* `.add(path / paths)`: Add files, directories, or glob patterns for tracking. +Takes an array of strings or just one string. +* `.on(event, callback)`: Listen for an FS event. +Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`, +`raw`, `error`. +Additionally `all` is available which gets emitted with the underlying event +name and path for every event other than `ready`, `raw`, and `error`. `raw` is internal, use it carefully. +* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns. +Takes an array of strings or just one string. +* `.close()`: **async** Removes all listeners from watched files. Asynchronous, returns Promise. Use with `await` to ensure bugs don't happen. +* `.getWatched()`: Returns an object representing all the paths on the file +system being watched by this `FSWatcher` instance. The object's keys are all the +directories (using absolute paths unless the `cwd` option was used), and the +values are arrays of the names of the items contained in each directory. + +## CLI + +If you need a CLI interface for your file watching, check out +[chokidar-cli](https://github.com/open-cli-tools/chokidar-cli), allowing you to +execute a command on each change, or get a stdio stream of change events. + +## Install Troubleshooting + +* `npm WARN optional dep failed, continuing fsevents@n.n.n` + * This message is normal part of how `npm` handles optional dependencies and is + not indicative of a problem. Even if accompanied by other related error messages, + Chokidar should function properly. + +* `TypeError: fsevents is not a constructor` + * Update chokidar by doing `rm -rf node_modules package-lock.json yarn.lock && npm install`, or update your dependency that uses chokidar. + +* Chokidar is producing `ENOSP` error on Linux, like this: + * `bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell` + `Error: watch /home/ ENOSPC` + * This means Chokidar ran out of file handles and you'll need to increase their count by executing the following command in Terminal: + `echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p` + +## Changelog + +For more detailed changelog, see [`full_changelog.md`](.github/full_changelog.md). +- **v3.5 (Jan 6, 2021):** Support for ARM Macs with Apple Silicon. Fixes for deleted symlinks. +- **v3.4 (Apr 26, 2020):** Support for directory-based symlinks. Fixes for macos file replacement. +- **v3.3 (Nov 2, 2019):** `FSWatcher#close()` method became async. That fixes IO race conditions related to close method. +- **v3.2 (Oct 1, 2019):** Improve Linux RAM usage by 50%. Race condition fixes. Windows glob fixes. Improve stability by using tight range of dependency versions. +- **v3.1 (Sep 16, 2019):** dotfiles are no longer filtered out by default. Use `ignored` option if needed. Improve initial Linux scan time by 50%. +- **v3 (Apr 30, 2019):** massive CPU & RAM consumption improvements; reduces deps / package size by a factor of 17x and bumps Node.js requirement to v8.16 and higher. +- **v2 (Dec 29, 2017):** Globs are now posix-style-only; without windows support. Tons of bugfixes. +- **v1 (Apr 7, 2015):** Glob support, symlink support, tons of bugfixes. Node 0.8+ is supported +- **v0.1 (Apr 20, 2012):** Initial release, extracted from [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66) + +## Also + +Why was chokidar named this way? What's the meaning behind it? + +>Chowkidar is a transliteration of a Hindi word meaning 'watchman, gatekeeper', चौकीदार. This ultimately comes from Sanskrit _ चतुष्क_ (crossway, quadrangle, consisting-of-four). This word is also used in other languages like Urdu as (چوکیدار) which is widely used in Pakistan and India. + +## License + +MIT (c) Paul Miller (), see [LICENSE](LICENSE) file. diff --git a/node_modules/chokidar/index.js b/node_modules/chokidar/index.js new file mode 100644 index 0000000..8752893 --- /dev/null +++ b/node_modules/chokidar/index.js @@ -0,0 +1,973 @@ +'use strict'; + +const { EventEmitter } = require('events'); +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const readdirp = require('readdirp'); +const anymatch = require('anymatch').default; +const globParent = require('glob-parent'); +const isGlob = require('is-glob'); +const braces = require('braces'); +const normalizePath = require('normalize-path'); + +const NodeFsHandler = require('./lib/nodefs-handler'); +const FsEventsHandler = require('./lib/fsevents-handler'); +const { + EV_ALL, + EV_READY, + EV_ADD, + EV_CHANGE, + EV_UNLINK, + EV_ADD_DIR, + EV_UNLINK_DIR, + EV_RAW, + EV_ERROR, + + STR_CLOSE, + STR_END, + + BACK_SLASH_RE, + DOUBLE_SLASH_RE, + SLASH_OR_BACK_SLASH_RE, + DOT_RE, + REPLACER_RE, + + SLASH, + SLASH_SLASH, + BRACE_START, + BANG, + ONE_DOT, + TWO_DOTS, + GLOBSTAR, + SLASH_GLOBSTAR, + ANYMATCH_OPTS, + STRING_TYPE, + FUNCTION_TYPE, + EMPTY_STR, + EMPTY_FN, + + isWindows, + isMacos, + isIBMi +} = require('./lib/constants'); + +const stat = promisify(fs.stat); +const readdir = promisify(fs.readdir); + +/** + * @typedef {String} Path + * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName + * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType + */ + +/** + * + * @typedef {Object} WatchHelpers + * @property {Boolean} followSymlinks + * @property {'stat'|'lstat'} statMethod + * @property {Path} path + * @property {Path} watchPath + * @property {Function} entryPath + * @property {Boolean} hasGlob + * @property {Object} globFilter + * @property {Function} filterPath + * @property {Function} filterDir + */ + +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten = (list, result = []) => { + list.forEach(item => { + if (Array.isArray(item)) { + flatten(item, result); + } else { + result.push(item); + } + }); + return result; +}; + +const unifyPaths = (paths_) => { + /** + * @type {Array} + */ + const paths = flatten(arrify(paths_)); + if (!paths.every(p => typeof p === STRING_TYPE)) { + throw new TypeError(`Non-string provided as watch path: ${paths}`); + } + return paths.map(normalizePathToUnix); +}; + +// If SLASH_SLASH occurs at the beginning of path, it is not replaced +// because "//StoragePC/DrivePool/Movies" is a valid network path +const toUnix = (string) => { + let str = string.replace(BACK_SLASH_RE, SLASH); + let prepend = false; + if (str.startsWith(SLASH_SLASH)) { + prepend = true; + } + while (str.match(DOUBLE_SLASH_RE)) { + str = str.replace(DOUBLE_SLASH_RE, SLASH); + } + if (prepend) { + str = SLASH + str; + } + return str; +}; + +// Our version of upath.normalize +// TODO: this is not equal to path-normalize module - investigate why +const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); + +const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { + if (typeof path !== STRING_TYPE) return path; + return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); +}; + +const getAbsolutePath = (path, cwd) => { + if (sysPath.isAbsolute(path)) { + return path; + } + if (path.startsWith(BANG)) { + return BANG + sysPath.join(cwd, path.slice(1)); + } + return sysPath.join(cwd, path); +}; + +const undef = (opts, key) => opts[key] === undefined; + +/** + * Directory entry. + * @property {Path} path + * @property {Set} items + */ +class DirEntry { + /** + * @param {Path} dir + * @param {Function} removeWatcher + */ + constructor(dir, removeWatcher) { + this.path = dir; + this._removeWatcher = removeWatcher; + /** @type {Set} */ + this.items = new Set(); + } + + add(item) { + const {items} = this; + if (!items) return; + if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + } + + async remove(item) { + const {items} = this; + if (!items) return; + items.delete(item); + if (items.size > 0) return; + + const dir = this.path; + try { + await readdir(dir); + } catch (err) { + if (this._removeWatcher) { + this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); + } + } + } + + has(item) { + const {items} = this; + if (!items) return; + return items.has(item); + } + + /** + * @returns {Array} + */ + getChildren() { + const {items} = this; + if (!items) return; + return [...items.values()]; + } + + dispose() { + this.items.clear(); + delete this.path; + delete this._removeWatcher; + delete this.items; + Object.freeze(this); + } +} + +const STAT_METHOD_F = 'stat'; +const STAT_METHOD_L = 'lstat'; +class WatchHelper { + constructor(path, watchPath, follow, fsw) { + this.fsw = fsw; + this.path = path = path.replace(REPLACER_RE, EMPTY_STR); + this.watchPath = watchPath; + this.fullWatchPath = sysPath.resolve(watchPath); + this.hasGlob = watchPath !== path; + /** @type {object|boolean} */ + if (path === EMPTY_STR) this.hasGlob = false; + this.globSymlink = this.hasGlob && follow ? undefined : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; + this.dirParts = this.getDirParts(path); + this.dirParts.forEach((parts) => { + if (parts.length > 1) parts.pop(); + }); + this.followSymlinks = follow; + this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + } + + checkGlobSymlink(entry) { + // only need to resolve once + // first entry should always have entry.parentDir === EMPTY_STR + if (this.globSymlink === undefined) { + this.globSymlink = entry.fullParentDir === this.fullWatchPath ? + false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; + } + + if (this.globSymlink) { + return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + } + + return entry.fullPath; + } + + entryPath(entry) { + return sysPath.join(this.watchPath, + sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) + ); + } + + filterPath(entry) { + const {stats} = entry; + if (stats && stats.isSymbolicLink()) return this.filterDir(entry); + const resolvedPath = this.entryPath(entry); + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? + this.globFilter(resolvedPath) : true; + return matchesGlob && + this.fsw._isntIgnored(resolvedPath, stats) && + this.fsw._hasReadPermissions(stats); + } + + getDirParts(path) { + if (!this.hasGlob) return []; + const parts = []; + const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; + expandedPath.forEach((path) => { + parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + }); + return parts; + } + + filterDir(entry) { + if (this.hasGlob) { + const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); + let globstar = false; + this.unmatchedGlob = !this.dirParts.some((parts) => { + return parts.every((part, i) => { + if (part === GLOBSTAR) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); + }); + }); + } + return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); + } +} + +/** + * Watches files & directories for changes. Emitted events: + * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` + * + * new FSWatcher() + * .add(directories) + * .on('add', path => log('File', path, 'was added')) + */ +class FSWatcher extends EventEmitter { +// Not indenting methods for history sake; for now. +constructor(_opts) { + super(); + + const opts = {}; + if (_opts) Object.assign(opts, _opts); // for frozen objects + + /** @type {Map} */ + this._watched = new Map(); + /** @type {Map} */ + this._closers = new Map(); + /** @type {Set} */ + this._ignoredPaths = new Set(); + + /** @type {Map} */ + this._throttled = new Map(); + + /** @type {Map} */ + this._symlinkPaths = new Map(); + + this._streams = new Set(); + this.closed = false; + + // Set up default options. + if (undef(opts, 'persistent')) opts.persistent = true; + if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; + if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; + if (undef(opts, 'interval')) opts.interval = 100; + if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; + if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; + opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; + + // Enable fsevents on OS X when polling isn't explicitly enabled. + if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; + + // If we can't use fsevents, ensure the options reflect it's disabled. + const canUseFsEvents = FsEventsHandler.canUse(); + if (!canUseFsEvents) opts.useFsEvents = false; + + // Use polling on Mac if not using fsevents. + // Other platforms use non-polling fs_watch. + if (undef(opts, 'usePolling') && !opts.useFsEvents) { + opts.usePolling = isMacos; + } + + // Always default to polling on IBM i because fs.watch() is not available on IBM i. + if(isIBMi) { + opts.usePolling = true; + } + + // Global override (useful for end-developers that need to force polling for all + // instances of chokidar, regardless of usage/dependency depth) + const envPoll = process.env.CHOKIDAR_USEPOLLING; + if (envPoll !== undefined) { + const envLower = envPoll.toLowerCase(); + + if (envLower === 'false' || envLower === '0') { + opts.usePolling = false; + } else if (envLower === 'true' || envLower === '1') { + opts.usePolling = true; + } else { + opts.usePolling = !!envLower; + } + } + const envInterval = process.env.CHOKIDAR_INTERVAL; + if (envInterval) { + opts.interval = Number.parseInt(envInterval, 10); + } + + // Editor atomic write normalization enabled by default with fs.watch + if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; + if (opts.atomic) this._pendingUnlinks = new Map(); + + if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; + + if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; + if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; + const awf = opts.awaitWriteFinish; + if (awf) { + if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; + if (!awf.pollInterval) awf.pollInterval = 100; + this._pendingWrites = new Map(); + } + if (opts.ignored) opts.ignored = arrify(opts.ignored); + + let readyCalls = 0; + this._emitReady = () => { + readyCalls++; + if (readyCalls >= this._readyCount) { + this._emitReady = EMPTY_FN; + this._readyEmitted = true; + // use process.nextTick to allow time for listener to be bound + process.nextTick(() => this.emit(EV_READY)); + } + }; + this._emitRaw = (...args) => this.emit(EV_RAW, ...args); + this._readyEmitted = false; + this.options = opts; + + // Initialize with proper watcher. + if (opts.useFsEvents) { + this._fsEventsHandler = new FsEventsHandler(this); + } else { + this._nodeFsHandler = new NodeFsHandler(this); + } + + // You’re frozen when your heart’s not open. + Object.freeze(opts); +} + +// Public methods + +/** + * Adds paths to be watched on an existing FSWatcher instance + * @param {Path|Array} paths_ + * @param {String=} _origAdd private; for handling non-existent paths to be watched + * @param {Boolean=} _internal private; indicates a non-user add + * @returns {FSWatcher} for chaining + */ +add(paths_, _origAdd, _internal) { + const {cwd, disableGlobbing} = this.options; + this.closed = false; + let paths = unifyPaths(paths_); + if (cwd) { + paths = paths.map((path) => { + const absPath = getAbsolutePath(path, cwd); + + // Check `path` instead of `absPath` because the cwd portion can't be a glob + if (disableGlobbing || !isGlob(path)) { + return absPath; + } + return normalizePath(absPath); + }); + } + + // set aside negated glob strings + paths = paths.filter((path) => { + if (path.startsWith(BANG)) { + this._ignoredPaths.add(path.slice(1)); + return false; + } + + // if a path is being added that was previously ignored, stop ignoring it + this._ignoredPaths.delete(path); + this._ignoredPaths.delete(path + SLASH_GLOBSTAR); + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + + return true; + }); + + if (this.options.useFsEvents && this._fsEventsHandler) { + if (!this._readyCount) this._readyCount = paths.length; + if (this.options.persistent) this._readyCount += paths.length; + paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); + } else { + if (!this._readyCount) this._readyCount = 0; + this._readyCount += paths.length; + Promise.all( + paths.map(async path => { + const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); + if (res) this._emitReady(); + return res; + }) + ).then(results => { + if (this.closed) return; + results.filter(item => item).forEach(item => { + this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); + }); + }); + } + + return this; +} + +/** + * Close watchers or start ignoring events from specified paths. + * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs + * @returns {FSWatcher} for chaining +*/ +unwatch(paths_) { + if (this.closed) return this; + const paths = unifyPaths(paths_); + const {cwd} = this.options; + + paths.forEach((path) => { + // convert to absolute path unless relative path already matches + if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath.join(cwd, path); + path = sysPath.resolve(path); + } + + this._closePath(path); + + this._ignoredPaths.add(path); + if (this._watched.has(path)) { + this._ignoredPaths.add(path + SLASH_GLOBSTAR); + } + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + }); + + return this; +} + +/** + * Close watchers and remove all listeners from watched paths. + * @returns {Promise}. +*/ +close() { + if (this.closed) return this._closePromise; + this.closed = true; + + // Memory management. + this.removeAllListeners(); + const closers = []; + this._closers.forEach(closerList => closerList.forEach(closer => { + const promise = closer(); + if (promise instanceof Promise) closers.push(promise); + })); + this._streams.forEach(stream => stream.destroy()); + this._userIgnored = undefined; + this._readyCount = 0; + this._readyEmitted = false; + this._watched.forEach(dirent => dirent.dispose()); + ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { + this[`_${key}`].clear(); + }); + + this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); + return this._closePromise; +} + +/** + * Expose list of watched paths + * @returns {Object} for chaining +*/ +getWatched() { + const watchList = {}; + this._watched.forEach((entry, dir) => { + const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; + watchList[key || ONE_DOT] = entry.getChildren().sort(); + }); + return watchList; +} + +emitWithAll(event, args) { + this.emit(...args); + if (event !== EV_ERROR) this.emit(EV_ALL, ...args); +} + +// Common helpers +// -------------- + +/** + * Normalize and emit events. + * Calling _emit DOES NOT MEAN emit() would be called! + * @param {EventName} event Type of event + * @param {Path} path File or directory path + * @param {*=} val1 arguments to be passed with event + * @param {*=} val2 + * @param {*=} val3 + * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +async _emit(event, path, val1, val2, val3) { + if (this.closed) return; + + const opts = this.options; + if (isWindows) path = sysPath.normalize(path); + if (opts.cwd) path = sysPath.relative(opts.cwd, path); + /** @type Array */ + const args = [event, path]; + if (val3 !== undefined) args.push(val1, val2, val3); + else if (val2 !== undefined) args.push(val1, val2); + else if (val1 !== undefined) args.push(val1); + + const awf = opts.awaitWriteFinish; + let pw; + if (awf && (pw = this._pendingWrites.get(path))) { + pw.lastChange = new Date(); + return this; + } + + if (opts.atomic) { + if (event === EV_UNLINK) { + this._pendingUnlinks.set(path, args); + setTimeout(() => { + this._pendingUnlinks.forEach((entry, path) => { + this.emit(...entry); + this.emit(EV_ALL, ...entry); + this._pendingUnlinks.delete(path); + }); + }, typeof opts.atomic === 'number' ? opts.atomic : 100); + return this; + } + if (event === EV_ADD && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE; + this._pendingUnlinks.delete(path); + } + } + + if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { + const awfEmit = (err, stats) => { + if (err) { + event = args[0] = EV_ERROR; + args[1] = err; + this.emitWithAll(event, args); + } else if (stats) { + // if stats doesn't exist the file must have been deleted + if (args.length > 2) { + args[2] = stats; + } else { + args.push(stats); + } + this.emitWithAll(event, args); + } + }; + + this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); + return this; + } + + if (event === EV_CHANGE) { + const isThrottled = !this._throttle(EV_CHANGE, path, 50); + if (isThrottled) return this; + } + + if (opts.alwaysStat && val1 === undefined && + (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) + ) { + const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; + let stats; + try { + stats = await stat(fullPath); + } catch (err) {} + // Suppress event when fs_stat fails, to avoid sending undefined 'stat' + if (!stats || this.closed) return; + args.push(stats); + } + this.emitWithAll(event, args); + + return this; +} + +/** + * Common handler for errors + * @param {Error} error + * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +_handleError(error) { + const code = error && error.code; + if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && + (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) + ) { + this.emit(EV_ERROR, error); + } + return error || this.closed; +} + +/** + * Helper utility for throttling + * @param {ThrottleType} actionType type being throttled + * @param {Path} path being acted upon + * @param {Number} timeout duration of time to suppress duplicate actions + * @returns {Object|false} tracking object or false if action should be suppressed + */ +_throttle(actionType, path, timeout) { + if (!this._throttled.has(actionType)) { + this._throttled.set(actionType, new Map()); + } + + /** @type {Map} */ + const action = this._throttled.get(actionType); + /** @type {Object} */ + const actionPath = action.get(path); + + if (actionPath) { + actionPath.count++; + return false; + } + + let timeoutObject; + const clear = () => { + const item = action.get(path); + const count = item ? item.count : 0; + action.delete(path); + clearTimeout(timeoutObject); + if (item) clearTimeout(item.timeoutObject); + return count; + }; + timeoutObject = setTimeout(clear, timeout); + const thr = {timeoutObject, clear, count: 0}; + action.set(path, thr); + return thr; +} + +_incrReadyCount() { + return this._readyCount++; +} + +/** + * Awaits write operation to finish. + * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. + * @param {Path} path being acted upon + * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished + * @param {EventName} event + * @param {Function} awfEmit Callback to be called when ready for event to be emitted. + */ +_awaitWriteFinish(path, threshold, event, awfEmit) { + let timeoutHandler; + + let fullPath = path; + if (this.options.cwd && !sysPath.isAbsolute(path)) { + fullPath = sysPath.join(this.options.cwd, path); + } + + const now = new Date(); + + const awaitWriteFinish = (prevStat) => { + fs.stat(fullPath, (err, curStat) => { + if (err || !this._pendingWrites.has(path)) { + if (err && err.code !== 'ENOENT') awfEmit(err); + return; + } + + const now = Number(new Date()); + + if (prevStat && curStat.size !== prevStat.size) { + this._pendingWrites.get(path).lastChange = now; + } + const pw = this._pendingWrites.get(path); + const df = now - pw.lastChange; + + if (df >= threshold) { + this._pendingWrites.delete(path); + awfEmit(undefined, curStat); + } else { + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval, + curStat + ); + } + }); + }; + + if (!this._pendingWrites.has(path)) { + this._pendingWrites.set(path, { + lastChange: now, + cancelWait: () => { + this._pendingWrites.delete(path); + clearTimeout(timeoutHandler); + return event; + } + }); + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval + ); + } +} + +_getGlobIgnored() { + return [...this._ignoredPaths.values()]; +} + +/** + * Determines whether user has asked to ignore this path. + * @param {Path} path filepath or dir + * @param {fs.Stats=} stats result of fs.stat + * @returns {Boolean} + */ +_isIgnored(path, stats) { + if (this.options.atomic && DOT_RE.test(path)) return true; + if (!this._userIgnored) { + const {cwd} = this.options; + const ign = this.options.ignored; + + const ignored = ign && ign.map(normalizeIgnored(cwd)); + const paths = arrify(ignored) + .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) + .map((path) => path + SLASH_GLOBSTAR); + const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); + } + + return this._userIgnored([path, stats]); +} + +_isntIgnored(path, stat) { + return !this._isIgnored(path, stat); +} + +/** + * Provides a set of common helpers and properties relating to symlink and glob handling. + * @param {Path} path file, directory, or glob pattern being watched + * @param {Number=} depth at any depth > 0, this isn't a glob + * @returns {WatchHelper} object containing helpers for this path + */ +_getWatchHelpers(path, depth) { + const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); + const follow = this.options.followSymlinks; + + return new WatchHelper(path, watchPath, follow, this); +} + +// Directory helpers +// ----------------- + +/** + * Provides directory tracking objects + * @param {String} directory path of the directory + * @returns {DirEntry} the directory's tracking object + */ +_getWatchedDir(directory) { + if (!this._boundRemove) this._boundRemove = this._remove.bind(this); + const dir = sysPath.resolve(directory); + if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); + return this._watched.get(dir); +} + +// File helpers +// ------------ + +/** + * Check for read permissions. + * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 + * @param {fs.Stats} stats - object, result of fs_stat + * @returns {Boolean} indicates whether the file can be read +*/ +_hasReadPermissions(stats) { + if (this.options.ignorePermissionErrors) return true; + + // stats.mode may be bigint + const md = stats && Number.parseInt(stats.mode, 10); + const st = md & 0o777; + const it = Number.parseInt(st.toString(8)[0], 10); + return Boolean(4 & it); +} + +/** + * Handles emitting unlink events for + * files and directories, and via recursion, for + * files and directories within directories that are unlinked + * @param {String} directory within which the following item is located + * @param {String} item base path of item/directory + * @returns {void} +*/ +_remove(directory, item, isDirectory) { + // if what is being deleted is a directory, get that directory's paths + // for recursive deleting and cleaning of watched object + // if it is not a directory, nestedDirectoryChildren will be empty array + const path = sysPath.join(directory, item); + const fullPath = sysPath.resolve(path); + isDirectory = isDirectory != null + ? isDirectory + : this._watched.has(path) || this._watched.has(fullPath); + + // prevent duplicate handling in case of arriving here nearly simultaneously + // via multiple paths (such as _handleFile and _handleDir) + if (!this._throttle('remove', path, 100)) return; + + // if the only watched file is removed, watch for its return + if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { + this.add(directory, item, true); + } + + // This will create a new entry in the watched object in either case + // so we got to do the directory check beforehand + const wp = this._getWatchedDir(path); + const nestedDirectoryChildren = wp.getChildren(); + + // Recursively remove children directories / files. + nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); + + // Check if item was on the watched list and remove it + const parent = this._getWatchedDir(directory); + const wasTracked = parent.has(item); + parent.remove(item); + + // Fixes issue #1042 -> Relative paths were detected and added as symlinks + // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), + // but never removed from the map in case the path was deleted. + // This leads to an incorrect state if the path was recreated: + // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 + if (this._symlinkPaths.has(fullPath)) { + this._symlinkPaths.delete(fullPath); + } + + // If we wait for this file to be fully written, cancel the wait. + let relPath = path; + if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); + if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { + const event = this._pendingWrites.get(relPath).cancelWait(); + if (event === EV_ADD) return; + } + + // The Entry will either be a directory that just got removed + // or a bogus entry to a file, in either case we have to remove it + this._watched.delete(path); + this._watched.delete(fullPath); + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; + if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); + + // Avoid conflicts if we later create another file with the same name + if (!this.options.useFsEvents) { + this._closePath(path); + } +} + +/** + * Closes all watchers for a path + * @param {Path} path + */ +_closePath(path) { + this._closeFile(path) + const dir = sysPath.dirname(path); + this._getWatchedDir(dir).remove(sysPath.basename(path)); +} + +/** + * Closes only file-specific watchers + * @param {Path} path + */ +_closeFile(path) { + const closers = this._closers.get(path); + if (!closers) return; + closers.forEach(closer => closer()); + this._closers.delete(path); +} + +/** + * + * @param {Path} path + * @param {Function} closer + */ +_addPathCloser(path, closer) { + if (!closer) return; + let list = this._closers.get(path); + if (!list) { + list = []; + this._closers.set(path, list); + } + list.push(closer); +} + +_readdirp(root, opts) { + if (this.closed) return; + const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; + let stream = readdirp(root, options); + this._streams.add(stream); + stream.once(STR_CLOSE, () => { + stream = undefined; + }); + stream.once(STR_END, () => { + if (stream) { + this._streams.delete(stream); + stream = undefined; + } + }); + return stream; +} + +} + +// Export FSWatcher class +exports.FSWatcher = FSWatcher; + +/** + * Instantiates watcher with paths to be tracked. + * @param {String|Array} paths file/directory paths and/or globs + * @param {Object=} options chokidar opts + * @returns an instance of FSWatcher for chaining. + */ +const watch = (paths, options) => { + const watcher = new FSWatcher(options); + watcher.add(paths); + return watcher; +}; + +exports.watch = watch; diff --git a/node_modules/chokidar/lib/constants.js b/node_modules/chokidar/lib/constants.js new file mode 100644 index 0000000..4743865 --- /dev/null +++ b/node_modules/chokidar/lib/constants.js @@ -0,0 +1,66 @@ +'use strict'; + +const {sep} = require('path'); +const {platform} = process; +const os = require('os'); + +exports.EV_ALL = 'all'; +exports.EV_READY = 'ready'; +exports.EV_ADD = 'add'; +exports.EV_CHANGE = 'change'; +exports.EV_ADD_DIR = 'addDir'; +exports.EV_UNLINK = 'unlink'; +exports.EV_UNLINK_DIR = 'unlinkDir'; +exports.EV_RAW = 'raw'; +exports.EV_ERROR = 'error'; + +exports.STR_DATA = 'data'; +exports.STR_END = 'end'; +exports.STR_CLOSE = 'close'; + +exports.FSEVENT_CREATED = 'created'; +exports.FSEVENT_MODIFIED = 'modified'; +exports.FSEVENT_DELETED = 'deleted'; +exports.FSEVENT_MOVED = 'moved'; +exports.FSEVENT_CLONED = 'cloned'; +exports.FSEVENT_UNKNOWN = 'unknown'; +exports.FSEVENT_FLAG_MUST_SCAN_SUBDIRS = 1; +exports.FSEVENT_TYPE_FILE = 'file'; +exports.FSEVENT_TYPE_DIRECTORY = 'directory'; +exports.FSEVENT_TYPE_SYMLINK = 'symlink'; + +exports.KEY_LISTENERS = 'listeners'; +exports.KEY_ERR = 'errHandlers'; +exports.KEY_RAW = 'rawEmitters'; +exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; + +exports.DOT_SLASH = `.${sep}`; + +exports.BACK_SLASH_RE = /\\/g; +exports.DOUBLE_SLASH_RE = /\/\//; +exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; +exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; +exports.REPLACER_RE = /^\.[/\\]/; + +exports.SLASH = '/'; +exports.SLASH_SLASH = '//'; +exports.BRACE_START = '{'; +exports.BANG = '!'; +exports.ONE_DOT = '.'; +exports.TWO_DOTS = '..'; +exports.STAR = '*'; +exports.GLOBSTAR = '**'; +exports.ROOT_GLOBSTAR = '/**/*'; +exports.SLASH_GLOBSTAR = '/**'; +exports.DIR_SUFFIX = 'Dir'; +exports.ANYMATCH_OPTS = {dot: true}; +exports.STRING_TYPE = 'string'; +exports.FUNCTION_TYPE = 'function'; +exports.EMPTY_STR = ''; +exports.EMPTY_FN = () => {}; +exports.IDENTITY_FN = val => val; + +exports.isWindows = platform === 'win32'; +exports.isMacos = platform === 'darwin'; +exports.isLinux = platform === 'linux'; +exports.isIBMi = os.type() === 'OS400'; diff --git a/node_modules/chokidar/lib/fsevents-handler.js b/node_modules/chokidar/lib/fsevents-handler.js new file mode 100644 index 0000000..fe29393 --- /dev/null +++ b/node_modules/chokidar/lib/fsevents-handler.js @@ -0,0 +1,526 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); + +let fsevents; +try { + fsevents = require('fsevents'); +} catch (error) { + if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); +} + +if (fsevents) { + // TODO: real check + const mtch = process.version.match(/v(\d+)\.(\d+)/); + if (mtch && mtch[1] && mtch[2]) { + const maj = Number.parseInt(mtch[1], 10); + const min = Number.parseInt(mtch[2], 10); + if (maj === 8 && min < 16) { + fsevents = undefined; + } + } +} + +const { + EV_ADD, + EV_CHANGE, + EV_ADD_DIR, + EV_UNLINK, + EV_ERROR, + STR_DATA, + STR_END, + FSEVENT_CREATED, + FSEVENT_MODIFIED, + FSEVENT_DELETED, + FSEVENT_MOVED, + // FSEVENT_CLONED, + FSEVENT_UNKNOWN, + FSEVENT_FLAG_MUST_SCAN_SUBDIRS, + FSEVENT_TYPE_FILE, + FSEVENT_TYPE_DIRECTORY, + FSEVENT_TYPE_SYMLINK, + + ROOT_GLOBSTAR, + DIR_SUFFIX, + DOT_SLASH, + FUNCTION_TYPE, + EMPTY_FN, + IDENTITY_FN +} = require('./constants'); + +const Depth = (value) => isNaN(value) ? {} : {depth: value}; + +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +const statMethods = { stat, lstat }; + +/** + * @typedef {String} Path + */ + +/** + * @typedef {Object} FsEventsWatchContainer + * @property {Set} listeners + * @property {Function} rawEmitter + * @property {{stop: Function}} watcher + */ + +// fsevents instance helper functions +/** + * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) + * @type {Map} + */ +const FSEventsWatchers = new Map(); + +// Threshold of duplicate path prefixes at which to start +// consolidating going forward +const consolidateThreshhold = 10; + +const wrongEventFlags = new Set([ + 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 +]); + +/** + * Instantiates the fsevents interface + * @param {Path} path path to be watched + * @param {Function} callback called when fsevents is bound and ready + * @returns {{stop: Function}} new fsevents instance + */ +const createFSEventsInstance = (path, callback) => { + const stop = fsevents.watch(path, callback); + return {stop}; +}; + +/** + * Instantiates the fsevents interface or binds listeners to an existing one covering + * the same file tree. + * @param {Path} path - to be watched + * @param {Path} realPath - real path for symlinks + * @param {Function} listener - called when fsevents emits events + * @param {Function} rawEmitter - passes data to listeners of the 'raw' event + * @returns {Function} closer + */ +function setFSEventsListener(path, realPath, listener, rawEmitter) { + let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath; + + const parentPath = sysPath.dirname(watchPath); + let cont = FSEventsWatchers.get(watchPath); + + // If we've accumulated a substantial number of paths that + // could have been consolidated by watching one directory + // above the current one, create a watcher on the parent + // path instead, so that we do consolidate going forward. + if (couldConsolidate(parentPath)) { + watchPath = parentPath; + } + + const resolvedPath = sysPath.resolve(path); + const hasSymlink = resolvedPath !== realPath; + + const filteredListener = (fullPath, flags, info) => { + if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); + if ( + fullPath === resolvedPath || + !fullPath.indexOf(resolvedPath + sysPath.sep) + ) listener(fullPath, flags, info); + }; + + // check if there is already a watcher on a parent path + // modifies `watchPath` to the parent path when it finds a match + let watchedParent = false; + for (const watchedPath of FSEventsWatchers.keys()) { + if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) { + watchPath = watchedPath; + cont = FSEventsWatchers.get(watchPath); + watchedParent = true; + break; + } + } + + if (cont || watchedParent) { + cont.listeners.add(filteredListener); + } else { + cont = { + listeners: new Set([filteredListener]), + rawEmitter, + watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { + if (!cont.listeners.size) return; + if (flags & FSEVENT_FLAG_MUST_SCAN_SUBDIRS) return; + const info = fsevents.getInfo(fullPath, flags); + cont.listeners.forEach(list => { + list(fullPath, flags, info); + }); + + cont.rawEmitter(info.event, fullPath, info); + }) + }; + FSEventsWatchers.set(watchPath, cont); + } + + // removes this instance's listeners and closes the underlying fsevents + // instance if there are no more listeners left + return () => { + const lst = cont.listeners; + + lst.delete(filteredListener); + if (!lst.size) { + FSEventsWatchers.delete(watchPath); + if (cont.watcher) return cont.watcher.stop().then(() => { + cont.rawEmitter = cont.watcher = undefined; + Object.freeze(cont); + }); + } + }; +} + +// Decide whether or not we should start a new higher-level +// parent watcher +const couldConsolidate = (path) => { + let count = 0; + for (const watchPath of FSEventsWatchers.keys()) { + if (watchPath.indexOf(path) === 0) { + count++; + if (count >= consolidateThreshhold) { + return true; + } + } + } + + return false; +}; + +// returns boolean indicating whether fsevents can be used +const canUse = () => fsevents && FSEventsWatchers.size < 128; + +// determines subdirectory traversal levels from root to path +const calcDepth = (path, root) => { + let i = 0; + while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++; + return i; +}; + +// returns boolean indicating whether the fsevents' event info has the same type +// as the one returned by fs.stat +const sameTypes = (info, stats) => ( + info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || + info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || + info.type === FSEVENT_TYPE_FILE && stats.isFile() +) + +/** + * @mixin + */ +class FsEventsHandler { + +/** + * @param {import('../index').FSWatcher} fsw + */ +constructor(fsw) { + this.fsw = fsw; +} +checkIgnored(path, stats) { + const ipaths = this.fsw._ignoredPaths; + if (this.fsw._isIgnored(path, stats)) { + ipaths.add(path); + if (stats && stats.isDirectory()) { + ipaths.add(path + ROOT_GLOBSTAR); + } + return true; + } + + ipaths.delete(path); + ipaths.delete(path + ROOT_GLOBSTAR); +} + +addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD; + this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); +} + +async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + try { + const stats = await stat(path) + if (this.fsw.closed) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } catch (error) { + if (error.code === 'EACCES') { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } +} + +handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { + if (this.fsw.closed || this.checkIgnored(path)) return; + + if (event === EV_UNLINK) { + const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY + // suppress unlink events on never before seen files + if (isDirectory || watchedDir.has(item)) { + this.fsw._remove(parent, item, isDirectory); + } + } else { + if (event === EV_ADD) { + // track new directories + if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); + + if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { + // push symlinks back to the top of the stack to get handled + const curDepth = opts.depth === undefined ? + undefined : calcDepth(fullPath, realPath) + 1; + return this._addToFsEvents(path, false, true, curDepth); + } + + // track new paths + // (other than symlinks being followed, which will be tracked soon) + this.fsw._getWatchedDir(parent).add(item); + } + /** + * @type {'add'|'addDir'|'unlink'|'unlinkDir'} + */ + const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; + this.fsw._emit(eventName, path); + if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true); + } +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} watchPath - file/dir path to be watched with fsevents + * @param {String} realPath - real path (in case of symlinks) + * @param {Function} transform - path transformer + * @param {Function} globFilter - path filter in case a glob pattern was provided + * @returns {Function} closer for the watcher instance +*/ +_watchWithFsEvents(watchPath, realPath, transform, globFilter) { + if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; + const opts = this.fsw.options; + const watchCallback = async (fullPath, flags, info) => { + if (this.fsw.closed) return; + if ( + opts.depth !== undefined && + calcDepth(fullPath, realPath) > opts.depth + ) return; + const path = transform(sysPath.join( + watchPath, sysPath.relative(watchPath, fullPath) + )); + if (globFilter && !globFilter(path)) return; + // ensure directories are tracked + const parent = sysPath.dirname(path); + const item = sysPath.basename(path); + const watchedDir = this.fsw._getWatchedDir( + info.type === FSEVENT_TYPE_DIRECTORY ? path : parent + ); + + // correct for wrong events emitted + if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { + if (typeof opts.ignored === FUNCTION_TYPE) { + let stats; + try { + stats = await stat(path); + } catch (error) {} + if (this.fsw.closed) return; + if (this.checkIgnored(path, stats)) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + switch (info.event) { + case FSEVENT_CREATED: + case FSEVENT_MODIFIED: + return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + case FSEVENT_DELETED: + case FSEVENT_MOVED: + return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } + }; + + const closer = setFSEventsListener( + watchPath, + realPath, + watchCallback, + this.fsw._emitRaw + ); + + this.fsw._emitReady(); + return closer; +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} linkPath path to symlink + * @param {String} fullPath absolute path to the symlink + * @param {Function} transform pre-existing path transformer + * @param {Number} curDepth level of subdirectories traversed to where symlink is + * @returns {Promise} + */ +async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { + // don't follow the same symlink more than once + if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; + + this.fsw._symlinkPaths.set(fullPath, true); + this.fsw._incrReadyCount(); + + try { + const linkTarget = await realpath(linkPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(linkTarget)) { + return this.fsw._emitReady(); + } + + this.fsw._incrReadyCount(); + + // add the linkTarget for watching with a wrapper for transform + // that causes emitted paths to incorporate the link's path + this._addToFsEvents(linkTarget || linkPath, (path) => { + let aliasedPath = linkPath; + if (linkTarget && linkTarget !== DOT_SLASH) { + aliasedPath = path.replace(linkTarget, linkPath); + } else if (path !== DOT_SLASH) { + aliasedPath = sysPath.join(linkPath, path); + } + return transform(aliasedPath); + }, false, curDepth); + } catch(error) { + if (this.fsw._handleError(error)) { + return this.fsw._emitReady(); + } + } +} + +/** + * + * @param {Path} newPath + * @param {fs.Stats} stats + */ +emitAdd(newPath, stats, processPath, opts, forceAdd) { + const pp = processPath(newPath); + const isDir = stats.isDirectory(); + const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp)); + const base = sysPath.basename(pp); + + // ensure empty dirs get tracked + if (isDir) this.fsw._getWatchedDir(pp); + if (dirObj.has(base)) return; + dirObj.add(base); + + if (!opts.ignoreInitial || forceAdd === true) { + this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats); + } +} + +initWatch(realPath, path, wh, processPath) { + if (this.fsw.closed) return; + const closer = this._watchWithFsEvents( + wh.watchPath, + sysPath.resolve(realPath || wh.watchPath), + processPath, + wh.globFilter + ); + this.fsw._addPathCloser(path, closer); +} + +/** + * Handle added path with fsevents + * @param {String} path file/dir path or glob pattern + * @param {Function|Boolean=} transform converts working path to what the user expects + * @param {Boolean=} forceAdd ensure add is emitted + * @param {Number=} priorDepth Level of subdirectories already traversed. + * @returns {Promise} + */ +async _addToFsEvents(path, transform, forceAdd, priorDepth) { + if (this.fsw.closed) { + return; + } + const opts = this.fsw.options; + const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + + const wh = this.fsw._getWatchHelpers(path); + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + throw null; + } + if (stats.isDirectory()) { + // emit addDir unless this is a glob parent + if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); + + // don't recurse further if it would exceed depth setting + if (priorDepth && priorDepth > opts.depth) return; + + // scan the contents of the dir + this.fsw._readdirp(wh.watchPath, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + ...Depth(opts.depth - (priorDepth || 0)) + }).on(STR_DATA, (entry) => { + // need to check filterPath on dirs b/c filterDir is less restrictive + if (this.fsw.closed) { + return; + } + if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; + + const joinedPath = sysPath.join(wh.watchPath, entry.path); + const {fullPath} = entry; + + if (wh.followSymlinks && entry.stats.isSymbolicLink()) { + // preserve the current depth here since it can't be derived from + // real paths past the symlink + const curDepth = opts.depth === undefined ? + undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1; + + this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); + } else { + this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); + } + }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => { + this.fsw._emitReady(); + }); + } else { + this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); + this.fsw._emitReady(); + } + } catch (error) { + if (!error || this.fsw._handleError(error)) { + // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- + this.fsw._emitReady(); + this.fsw._emitReady(); + } + } + + if (opts.persistent && forceAdd !== true) { + if (typeof transform === FUNCTION_TYPE) { + // realpath has already been resolved + this.initWatch(undefined, path, wh, processPath); + } else { + let realPath; + try { + realPath = await realpath(wh.watchPath); + } catch (e) {} + this.initWatch(realPath, path, wh, processPath); + } + } +} + +} + +module.exports = FsEventsHandler; +module.exports.canUse = canUse; diff --git a/node_modules/chokidar/lib/nodefs-handler.js b/node_modules/chokidar/lib/nodefs-handler.js new file mode 100644 index 0000000..199cfe9 --- /dev/null +++ b/node_modules/chokidar/lib/nodefs-handler.js @@ -0,0 +1,654 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const isBinaryPath = require('is-binary-path'); +const { + isWindows, + isLinux, + EMPTY_FN, + EMPTY_STR, + KEY_LISTENERS, + KEY_ERR, + KEY_RAW, + HANDLER_KEYS, + EV_CHANGE, + EV_ADD, + EV_ADD_DIR, + EV_ERROR, + STR_DATA, + STR_END, + BRACE_START, + STAR +} = require('./constants'); + +const THROTTLE_MODE_WATCH = 'watch'; + +const open = promisify(fs.open); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const close = promisify(fs.close); +const fsrealpath = promisify(fs.realpath); + +const statMethods = { lstat, stat }; + +// TODO: emit errors properly. Example: EMFILE on Macos. +const foreach = (val, fn) => { + if (val instanceof Set) { + val.forEach(fn); + } else { + fn(val); + } +}; + +const addAndConvert = (main, prop, item) => { + let container = main[prop]; + if (!(container instanceof Set)) { + main[prop] = container = new Set([container]); + } + container.add(item); +}; + +const clearItem = cont => key => { + const set = cont[key]; + if (set instanceof Set) { + set.clear(); + } else { + delete cont[key]; + } +}; + +const delFromSet = (main, prop, item) => { + const container = main[prop]; + if (container instanceof Set) { + container.delete(item); + } else if (container === item) { + delete main[prop]; + } +}; + +const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; + +/** + * @typedef {String} Path + */ + +// fs_watch helpers + +// object to hold per-process fs_watch instances +// (may be shared across chokidar FSWatcher instances) + +/** + * @typedef {Object} FsWatchContainer + * @property {Set} listeners + * @property {Set} errHandlers + * @property {Set} rawEmitters + * @property {fs.FSWatcher=} watcher + * @property {Boolean=} watcherUnusable + */ + +/** + * @type {Map} + */ +const FsWatchInstances = new Map(); + +/** + * Instantiates the fs_watch interface + * @param {String} path to be watched + * @param {Object} options to be passed to fs_watch + * @param {Function} listener main event handler + * @param {Function} errHandler emits info about errors + * @param {Function} emitRaw emits raw event data + * @returns {fs.FSWatcher} new fsevents instance + */ +function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { + const handleEvent = (rawEvent, evPath) => { + listener(path); + emitRaw(rawEvent, evPath, {watchedPath: path}); + + // emit based on events occurring for files from a directory's watcher in + // case the file's watcher misses it (and rely on throttling to de-dupe) + if (evPath && path !== evPath) { + fsWatchBroadcast( + sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath) + ); + } + }; + try { + return fs.watch(path, options, handleEvent); + } catch (error) { + errHandler(error); + } +} + +/** + * Helper for passing fs_watch event data to a collection of listeners + * @param {Path} fullPath absolute path bound to fs_watch instance + * @param {String} type listener type + * @param {*=} val1 arguments to be passed to listeners + * @param {*=} val2 + * @param {*=} val3 + */ +const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { + const cont = FsWatchInstances.get(fullPath); + if (!cont) return; + foreach(cont[type], (listener) => { + listener(val1, val2, val3); + }); +}; + +/** + * Instantiates the fs_watch interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path + * @param {String} fullPath absolute path + * @param {Object} options to be passed to fs_watch + * @param {Object} handlers container for event listener functions + */ +const setFsWatchListener = (path, fullPath, options, handlers) => { + const {listener, errHandler, rawEmitter} = handlers; + let cont = FsWatchInstances.get(fullPath); + + /** @type {fs.FSWatcher=} */ + let watcher; + if (!options.persistent) { + watcher = createFsWatchInstance( + path, options, listener, errHandler, rawEmitter + ); + return watcher.close.bind(watcher); + } + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_ERR, errHandler); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + watcher = createFsWatchInstance( + path, + options, + fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), + errHandler, // no need to use broadcast here + fsWatchBroadcast.bind(null, fullPath, KEY_RAW) + ); + if (!watcher) return; + watcher.on(EV_ERROR, async (error) => { + const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); + cont.watcherUnusable = true; // documented since Node 10.4.1 + // Workaround for https://github.com/joyent/node/issues/4337 + if (isWindows && error.code === 'EPERM') { + try { + const fd = await open(path, 'r'); + await close(fd); + broadcastErr(error); + } catch (err) {} + } else { + broadcastErr(error); + } + }); + cont = { + listeners: listener, + errHandlers: errHandler, + rawEmitters: rawEmitter, + watcher + }; + FsWatchInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // removes this instance's listeners and closes the underlying fs_watch + // instance if there are no more listeners left + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_ERR, errHandler); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + // Check to protect against issue gh-730. + // if (cont.watcherUnusable) { + cont.watcher.close(); + // } + FsWatchInstances.delete(fullPath); + HANDLER_KEYS.forEach(clearItem(cont)); + cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +// fs_watchFile helpers + +// object to hold per-process fs_watchFile instances +// (may be shared across chokidar FSWatcher instances) +const FsWatchFileInstances = new Map(); + +/** + * Instantiates the fs_watchFile interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path to be watched + * @param {String} fullPath absolute path + * @param {Object} options options to be passed to fs_watchFile + * @param {Object} handlers container for event listener functions + * @returns {Function} closer + */ +const setFsWatchFileListener = (path, fullPath, options, handlers) => { + const {listener, rawEmitter} = handlers; + let cont = FsWatchFileInstances.get(fullPath); + + /* eslint-disable no-unused-vars, prefer-destructuring */ + let listeners = new Set(); + let rawEmitters = new Set(); + + const copts = cont && cont.options; + if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { + // "Upgrade" the watcher to persistence or a quicker interval. + // This creates some unlikely edge case issues if the user mixes + // settings in a very weird way, but solving for those cases + // doesn't seem worthwhile for the added complexity. + listeners = cont.listeners; + rawEmitters = cont.rawEmitters; + fs.unwatchFile(fullPath); + cont = undefined; + } + + /* eslint-enable no-unused-vars, prefer-destructuring */ + + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + // TODO + // listeners.add(listener); + // rawEmitters.add(rawEmitter); + cont = { + listeners: listener, + rawEmitters: rawEmitter, + options, + watcher: fs.watchFile(fullPath, options, (curr, prev) => { + foreach(cont.rawEmitters, (rawEmitter) => { + rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + }); + const currmtime = curr.mtimeMs; + if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { + foreach(cont.listeners, (listener) => listener(path, curr)); + } + }) + }; + FsWatchFileInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // Removes this instance's listeners and closes the underlying fs_watchFile + // instance if there are no more listeners left. + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + FsWatchFileInstances.delete(fullPath); + fs.unwatchFile(fullPath); + cont.options = cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +/** + * @mixin + */ +class NodeFsHandler { + +/** + * @param {import("../index").FSWatcher} fsW + */ +constructor(fsW) { + this.fsw = fsW; + this._boundHandleError = (error) => fsW._handleError(error); +} + +/** + * Watch file for changes with fs_watchFile or fs_watch. + * @param {String} path to file or dir + * @param {Function} listener on fs change + * @returns {Function} closer for the watcher instance + */ +_watchWithNodeFs(path, listener) { + const opts = this.fsw.options; + const directory = sysPath.dirname(path); + const basename = sysPath.basename(path); + const parent = this.fsw._getWatchedDir(directory); + parent.add(basename); + const absolutePath = sysPath.resolve(path); + const options = {persistent: opts.persistent}; + if (!listener) listener = EMPTY_FN; + + let closer; + if (opts.usePolling) { + options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? + opts.binaryInterval : opts.interval; + closer = setFsWatchFileListener(path, absolutePath, options, { + listener, + rawEmitter: this.fsw._emitRaw + }); + } else { + closer = setFsWatchListener(path, absolutePath, options, { + listener, + errHandler: this._boundHandleError, + rawEmitter: this.fsw._emitRaw + }); + } + return closer; +} + +/** + * Watch a file and emit add event if warranted. + * @param {Path} file Path + * @param {fs.Stats} stats result of fs_stat + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @returns {Function} closer for the watcher instance + */ +_handleFile(file, stats, initialAdd) { + if (this.fsw.closed) { + return; + } + const dirname = sysPath.dirname(file); + const basename = sysPath.basename(file); + const parent = this.fsw._getWatchedDir(dirname); + // stats is always present + let prevStats = stats; + + // if the file is already being watched, do nothing + if (parent.has(basename)) return; + + const listener = async (path, newStats) => { + if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; + if (!newStats || newStats.mtimeMs === 0) { + try { + const newStats = await stat(file); + if (this.fsw.closed) return; + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + if (isLinux && prevStats.ino !== newStats.ino) { + this.fsw._closeFile(path) + prevStats = newStats; + this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); + } else { + prevStats = newStats; + } + } catch (error) { + // Fix issues where mtime is null but file is still present + this.fsw._remove(dirname, basename); + } + // add is about to be emitted if file not already tracked in parent + } else if (parent.has(basename)) { + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + prevStats = newStats; + } + } + // kick off the watcher + const closer = this._watchWithNodeFs(file, listener); + + // emit an add event if we're supposed to + if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { + if (!this.fsw._throttle(EV_ADD, file, 0)) return; + this.fsw._emit(EV_ADD, file, stats); + } + + return closer; +} + +/** + * Handle symlinks encountered while reading a dir. + * @param {Object} entry returned by readdirp + * @param {String} directory path of dir being read + * @param {String} path of this item + * @param {String} item basename of this item + * @returns {Promise} true if no more processing is needed for this entry. + */ +async _handleSymlink(entry, directory, path, item) { + if (this.fsw.closed) { + return; + } + const full = entry.fullPath; + const dir = this.fsw._getWatchedDir(directory); + + if (!this.fsw.options.followSymlinks) { + // watch symlink directly (don't follow) and detect changes + this.fsw._incrReadyCount(); + + let linkPath; + try { + linkPath = await fsrealpath(path); + } catch (e) { + this.fsw._emitReady(); + return true; + } + + if (this.fsw.closed) return; + if (dir.has(item)) { + if (this.fsw._symlinkPaths.get(full) !== linkPath) { + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_CHANGE, path, entry.stats); + } + } else { + dir.add(item); + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_ADD, path, entry.stats); + } + this.fsw._emitReady(); + return true; + } + + // don't follow the same symlink more than once + if (this.fsw._symlinkPaths.has(full)) { + return true; + } + + this.fsw._symlinkPaths.set(full, true); +} + +_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { + // Normalize the directory name on Windows + directory = sysPath.join(directory, EMPTY_STR); + + if (!wh.hasGlob) { + throttler = this.fsw._throttle('readdir', directory, 1000); + if (!throttler) return; + } + + const previous = this.fsw._getWatchedDir(wh.path); + const current = new Set(); + + let stream = this.fsw._readdirp(directory, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + depth: 0 + }).on(STR_DATA, async (entry) => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const item = entry.path; + let path = sysPath.join(directory, item); + current.add(item); + + if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { + return; + } + + if (this.fsw.closed) { + stream = undefined; + return; + } + // Files that present in current directory snapshot + // but absent in previous are added to watch list and + // emit `add` event. + if (item === target || !target && !previous.has(item)) { + this.fsw._incrReadyCount(); + + // ensure relativeness of path is preserved in case of watcher reuse + path = sysPath.join(dir, sysPath.relative(dir, path)); + + this._addToNodeFs(path, initialAdd, wh, depth + 1); + } + }).on(EV_ERROR, this._boundHandleError); + + return new Promise(resolve => + stream.once(STR_END, () => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const wasThrottled = throttler ? throttler.clear() : false; + + resolve(); + + // Files that absent in current directory snapshot + // but present in previous emit `remove` event + // and are removed from @watched[directory]. + previous.getChildren().filter((item) => { + return item !== directory && + !current.has(item) && + // in case of intersecting globs; + // a path may have been filtered out of this readdir, but + // shouldn't be removed because it matches a different glob + (!wh.hasGlob || wh.filterPath({ + fullPath: sysPath.resolve(directory, item) + })); + }).forEach((item) => { + this.fsw._remove(directory, item); + }); + + stream = undefined; + + // one more time for any missed in case changes came in extremely quickly + if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); + }) + ); +} + +/** + * Read directory to add / remove files from `@watched` list and re-read it on change. + * @param {String} dir fs path + * @param {fs.Stats} stats + * @param {Boolean} initialAdd + * @param {Number} depth relative to user-supplied path + * @param {String} target child path targeted for watch + * @param {Object} wh Common watch helpers for this path + * @param {String} realpath + * @returns {Promise} closer for the watcher instance. + */ +async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { + const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir)); + const tracked = parentDir.has(sysPath.basename(dir)); + if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); + } + + // ensure dir is tracked (harmless if redundant) + parentDir.add(sysPath.basename(dir)); + this.fsw._getWatchedDir(dir); + let throttler; + let closer; + + const oDepth = this.fsw.options.depth; + if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { + if (!target) { + await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); + if (this.fsw.closed) return; + } + + closer = this._watchWithNodeFs(dir, (dirPath, stats) => { + // if current directory is removed, do nothing + if (stats && stats.mtimeMs === 0) return; + + this._handleRead(dirPath, false, wh, target, dir, depth, throttler); + }); + } + return closer; +} + +/** + * Handle added file, directory, or glob pattern. + * Delegates call to _handleFile / _handleDir after checks. + * @param {String} path to file or ir + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @param {Object} priorWh depth relative to user-supplied path + * @param {Number} depth Child path actually targeted for watch + * @param {String=} target Child path actually targeted for watch + * @returns {Promise} + */ +async _addToNodeFs(path, initialAdd, priorWh, depth, target) { + const ready = this.fsw._emitReady; + if (this.fsw._isIgnored(path) || this.fsw.closed) { + ready(); + return false; + } + + const wh = this.fsw._getWatchHelpers(path, depth); + if (!wh.hasGlob && priorWh) { + wh.hasGlob = priorWh.hasGlob; + wh.globFilter = priorWh.globFilter; + wh.filterPath = entry => priorWh.filterPath(entry); + wh.filterDir = entry => priorWh.filterDir(entry); + } + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + ready(); + return false; + } + + const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START); + let closer; + if (stats.isDirectory()) { + const absPath = sysPath.resolve(path); + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); + if (this.fsw.closed) return; + // preserve this symlink's target path + if (absPath !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(absPath, targetPath); + } + } else if (stats.isSymbolicLink()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + const parent = sysPath.dirname(wh.watchPath); + this.fsw._getWatchedDir(parent).add(wh.watchPath); + this.fsw._emit(EV_ADD, wh.watchPath, stats); + closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); + if (this.fsw.closed) return; + + // preserve this symlink's target path + if (targetPath !== undefined) { + this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath); + } + } else { + closer = this._handleFile(wh.watchPath, stats, initialAdd); + } + ready(); + + this.fsw._addPathCloser(path, closer); + return false; + + } catch (error) { + if (this.fsw._handleError(error)) { + ready(); + return path; + } + } +} + +} + +module.exports = NodeFsHandler; diff --git a/node_modules/chokidar/package.json b/node_modules/chokidar/package.json new file mode 100644 index 0000000..e8f8b3d --- /dev/null +++ b/node_modules/chokidar/package.json @@ -0,0 +1,70 @@ +{ + "name": "chokidar", + "description": "Minimal and efficient cross-platform file watching library", + "version": "3.6.0", + "homepage": "https://github.com/paulmillr/chokidar", + "author": "Paul Miller (https://paulmillr.com)", + "contributors": [ + "Paul Miller (https://paulmillr.com)", + "Elan Shanker" + ], + "engines": { + "node": ">= 8.10.0" + }, + "main": "index.js", + "types": "./types/index.d.ts", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.3", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.0.0", + "rimraf": "^3.0.0", + "sinon": "^9.0.1", + "sinon-chai": "^3.3.0", + "typescript": "^4.4.3", + "upath": "^1.2.0" + }, + "files": [ + "index.js", + "lib/*.js", + "types/index.d.ts" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/paulmillr/chokidar.git" + }, + "bugs": { + "url": "https://github.com/paulmillr/chokidar/issues" + }, + "license": "MIT", + "scripts": { + "dtslint": "dtslint types", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "build": "npm ls", + "mocha": "mocha --exit --timeout 90000", + "test": "npm run lint && npm run mocha" + }, + "keywords": [ + "fs", + "watch", + "watchFile", + "watcher", + "watching", + "file", + "fsevents" + ], + "funding": "https://paulmillr.com/funding/" +} diff --git a/node_modules/chokidar/types/index.d.ts b/node_modules/chokidar/types/index.d.ts new file mode 100644 index 0000000..4558066 --- /dev/null +++ b/node_modules/chokidar/types/index.d.ts @@ -0,0 +1,192 @@ +// TypeScript Version: 3.0 + +/// + +import * as fs from "fs"; +import { EventEmitter } from "events"; +import { Matcher } from 'anymatch'; + +export class FSWatcher extends EventEmitter implements fs.FSWatcher { + options: WatchOptions; + + /** + * Constructs a new FSWatcher instance with optional WatchOptions parameter. + */ + constructor(options?: WatchOptions); + + /** + * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one + * string. + */ + add(paths: string | ReadonlyArray): this; + + /** + * Stop watching files, directories, or glob patterns. Takes an array of strings or just one + * string. + */ + unwatch(paths: string | ReadonlyArray): this; + + /** + * Returns an object representing all the paths on the file system being watched by this + * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless + * the `cwd` option was used), and the values are arrays of the names of the items contained in + * each directory. + */ + getWatched(): { + [directory: string]: string[]; + }; + + /** + * Removes all listeners from watched files. + */ + close(): Promise; + + on(event: 'add'|'addDir'|'change', listener: (path: string, stats?: fs.Stats) => void): this; + + on(event: 'all', listener: (eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', path: string, stats?: fs.Stats) => void): this; + + /** + * Error occurred + */ + on(event: 'error', listener: (error: Error) => void): this; + + /** + * Exposes the native Node `fs.FSWatcher events` + */ + on(event: 'raw', listener: (eventName: string, path: string, details: any) => void): this; + + /** + * Fires when the initial scan is complete + */ + on(event: 'ready', listener: () => void): this; + + on(event: 'unlink'|'unlinkDir', listener: (path: string) => void): this; + + on(event: string, listener: (...args: any[]) => void): this; + + ref(): this; + + unref(): this; +} + +export interface WatchOptions { + /** + * Indicates whether the process should continue to run as long as files are being watched. If + * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`, + * even if the process continues to run. + */ + persistent?: boolean; + + /** + * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to + * be ignored. The whole relative or absolute path is tested, not just filename. If a function + * with two arguments is provided, it gets called twice per path - once with a single argument + * (the path), second time with two arguments (the path and the + * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path). + */ + ignored?: Matcher; + + /** + * If set to `false` then `add`/`addDir` events are also emitted for matching paths while + * instantiating the watching as chokidar discovers these file paths (before the `ready` event). + */ + ignoreInitial?: boolean; + + /** + * When `false`, only the symlinks themselves will be watched for changes instead of following + * the link references and bubbling events through the link's path. + */ + followSymlinks?: boolean; + + /** + * The base directory from which watch `paths` are to be derived. Paths emitted with events will + * be relative to this. + */ + cwd?: string; + + /** + * If set to true then the strings passed to .watch() and .add() are treated as literal path + * names, even if they look like globs. Default: false. + */ + disableGlobbing?: boolean; + + /** + * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU + * utilization, consider setting this to `false`. It is typically necessary to **set this to + * `true` to successfully watch files over a network**, and it may be necessary to successfully + * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides + * the `useFsEvents` default. + */ + usePolling?: boolean; + + /** + * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly + * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on + * OS X, `usePolling: true` becomes the default. + */ + useFsEvents?: boolean; + + /** + * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that + * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is + * provided even in cases where it wasn't already available from the underlying watch events. + */ + alwaysStat?: boolean; + + /** + * If set, limits how many levels of subdirectories will be traversed. + */ + depth?: number; + + /** + * Interval of file system polling. + */ + interval?: number; + + /** + * Interval of file system polling for binary files. ([see list of binary extensions](https://gi + * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) + */ + binaryInterval?: number; + + /** + * Indicates whether to watch files that don't have read permissions if possible. If watching + * fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed + * silently. + */ + ignorePermissionErrors?: boolean; + + /** + * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts + * that occur when using editors that use "atomic writes" instead of writing directly to the + * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change` + * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you, + * you can override it by setting `atomic` to a custom value, in milliseconds. + */ + atomic?: boolean | number; + + /** + * can be set to an object in order to adjust timing params: + */ + awaitWriteFinish?: AwaitWriteFinishOptions | boolean; +} + +export interface AwaitWriteFinishOptions { + /** + * Amount of time in milliseconds for a file size to remain constant before emitting its event. + */ + stabilityThreshold?: number; + + /** + * File size polling interval. + */ + pollInterval?: number; +} + +/** + * produces an instance of `FSWatcher`. + */ +export function watch( + paths: string | ReadonlyArray, + options?: WatchOptions +): FSWatcher; diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml new file mode 100644 index 0000000..f1d0f13 --- /dev/null +++ b/node_modules/concat-map/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.4 + - 0.6 diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/concat-map/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/concat-map/README.markdown b/node_modules/concat-map/README.markdown new file mode 100644 index 0000000..408f70a --- /dev/null +++ b/node_modules/concat-map/README.markdown @@ -0,0 +1,62 @@ +concat-map +========== + +Concatenative mapdashery. + +[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) + +[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) + +example +======= + +``` js +var concatMap = require('concat-map'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); +``` + +*** + +``` +[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] +``` + +methods +======= + +``` js +var concatMap = require('concat-map') +``` + +concatMap(xs, fn) +----------------- + +Return an array of concatenated elements by calling `fn(x, i)` for each element +`x` and each index `i` in the array `xs`. + +When `fn(x, i)` returns an array, its result will be concatenated with the +result array. If `fn(x, i)` returns anything else, that value will be pushed +onto the end of the result array. + +install +======= + +With [npm](http://npmjs.org) do: + +``` +npm install concat-map +``` + +license +======= + +MIT + +notes +===== + +This module was written while sitting high above the ground in a tree. diff --git a/node_modules/concat-map/example/map.js b/node_modules/concat-map/example/map.js new file mode 100644 index 0000000..3365621 --- /dev/null +++ b/node_modules/concat-map/example/map.js @@ -0,0 +1,6 @@ +var concatMap = require('../'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); diff --git a/node_modules/concat-map/index.js b/node_modules/concat-map/index.js new file mode 100644 index 0000000..b29a781 --- /dev/null +++ b/node_modules/concat-map/index.js @@ -0,0 +1,13 @@ +module.exports = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json new file mode 100644 index 0000000..d3640e6 --- /dev/null +++ b/node_modules/concat-map/package.json @@ -0,0 +1,43 @@ +{ + "name" : "concat-map", + "description" : "concatenative mapdashery", + "version" : "0.0.1", + "repository" : { + "type" : "git", + "url" : "git://github.com/substack/node-concat-map.git" + }, + "main" : "index.js", + "keywords" : [ + "concat", + "concatMap", + "map", + "functional", + "higher-order" + ], + "directories" : { + "example" : "example", + "test" : "test" + }, + "scripts" : { + "test" : "tape test/*.js" + }, + "devDependencies" : { + "tape" : "~2.4.0" + }, + "license" : "MIT", + "author" : { + "name" : "James Halliday", + "email" : "mail@substack.net", + "url" : "http://substack.net" + }, + "testling" : { + "files" : "test/*.js", + "browsers" : { + "ie" : [ 6, 7, 8, 9 ], + "ff" : [ 3.5, 10, 15.0 ], + "chrome" : [ 10, 22 ], + "safari" : [ 5.1 ], + "opera" : [ 12 ] + } + } +} diff --git a/node_modules/concat-map/test/map.js b/node_modules/concat-map/test/map.js new file mode 100644 index 0000000..fdbd702 --- /dev/null +++ b/node_modules/concat-map/test/map.js @@ -0,0 +1,39 @@ +var concatMap = require('../'); +var test = require('tape'); + +test('empty or not', function (t) { + var xs = [ 1, 2, 3, 4, 5, 6 ]; + var ixes = []; + var ys = concatMap(xs, function (x, ix) { + ixes.push(ix); + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; + }); + t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); + t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); + t.end(); +}); + +test('always something', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('scalars', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : x; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('undefs', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function () {}); + t.same(ys, [ undefined, undefined, undefined, undefined ]); + t.end(); +}); diff --git a/node_modules/content-disposition/HISTORY.md b/node_modules/content-disposition/HISTORY.md new file mode 100644 index 0000000..488effa --- /dev/null +++ b/node_modules/content-disposition/HISTORY.md @@ -0,0 +1,60 @@ +0.5.4 / 2021-12-10 +================== + + * deps: safe-buffer@5.2.1 + +0.5.3 / 2018-12-17 +================== + + * Use `safe-buffer` for improved Buffer API + +0.5.2 / 2016-12-08 +================== + + * Fix `parse` to accept any linear whitespace character + +0.5.1 / 2016-01-17 +================== + + * perf: enable strict mode + +0.5.0 / 2014-10-11 +================== + + * Add `parse` function + +0.4.0 / 2014-09-21 +================== + + * Expand non-Unicode `filename` to the full ISO-8859-1 charset + +0.3.0 / 2014-09-20 +================== + + * Add `fallback` option + * Add `type` option + +0.2.0 / 2014-09-19 +================== + + * Reduce ambiguity of file names with hex escape in buggy browsers + +0.1.2 / 2014-09-19 +================== + + * Fix periodic invalid Unicode filename header + +0.1.1 / 2014-09-19 +================== + + * Fix invalid characters appearing in `filename*` parameter + +0.1.0 / 2014-09-18 +================== + + * Make the `filename` argument optional + +0.0.0 / 2014-09-18 +================== + + * Initial release diff --git a/node_modules/content-disposition/LICENSE b/node_modules/content-disposition/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/node_modules/content-disposition/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/content-disposition/README.md b/node_modules/content-disposition/README.md new file mode 100644 index 0000000..3a0bb05 --- /dev/null +++ b/node_modules/content-disposition/README.md @@ -0,0 +1,142 @@ +# content-disposition + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create and parse HTTP `Content-Disposition` header + +## Installation + +```sh +$ npm install content-disposition +``` + +## API + +```js +var contentDisposition = require('content-disposition') +``` + +### contentDisposition(filename, options) + +Create an attachment `Content-Disposition` header value using the given file name, +if supplied. The `filename` is optional and if no file name is desired, but you +want to specify `options`, set `filename` to `undefined`. + +```js +res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) +``` + +**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this +header through a means different from `setHeader` in Node.js, you'll want to specify +the `'binary'` encoding in Node.js. + +#### Options + +`contentDisposition` accepts these properties in the options object. + +##### fallback + +If the `filename` option is outside ISO-8859-1, then the file name is actually +stored in a supplemental field for clients that support Unicode file names and +a ISO-8859-1 version of the file name is automatically generated. + +This specifies the ISO-8859-1 file name to override the automatic generation or +disables the generation all together, defaults to `true`. + + - A string will specify the ISO-8859-1 file name to use in place of automatic + generation. + - `false` will disable including a ISO-8859-1 file name and only include the + Unicode version (unless the file name is already ISO-8859-1). + - `true` will enable automatic generation if the file name is outside ISO-8859-1. + +If the `filename` option is ISO-8859-1 and this option is specified and has a +different value, then the `filename` option is encoded in the extended field +and this set as the fallback field, even though they are both ISO-8859-1. + +##### type + +Specifies the disposition type, defaults to `"attachment"`. This can also be +`"inline"`, or any other value (all values except inline are treated like +`attachment`, but can convey additional information if both parties agree to +it). The type is normalized to lower-case. + +### contentDisposition.parse(string) + +```js +var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') +``` + +Parse a `Content-Disposition` header string. This automatically handles extended +("Unicode") parameters by decoding them and providing them under the standard +parameter name. This will return an object with the following properties (examples +are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): + + - `type`: The disposition type (always lower case). Example: `'attachment'` + + - `parameters`: An object of the parameters in the disposition (name of parameter + always lower case and extended versions replace non-extended versions). Example: + `{filename: "€ rates.txt"}` + +## Examples + +### Send a file for download + +```js +var contentDisposition = require('content-disposition') +var destroy = require('destroy') +var fs = require('fs') +var http = require('http') +var onFinished = require('on-finished') + +var filePath = '/path/to/public/plans.pdf' + +http.createServer(function onRequest (req, res) { + // set headers + res.setHeader('Content-Type', 'application/pdf') + res.setHeader('Content-Disposition', contentDisposition(filePath)) + + // send file + var stream = fs.createReadStream(filePath) + stream.pipe(res) + onFinished(res, function () { + destroy(stream) + }) +}) +``` + +## Testing + +```sh +$ npm test +``` + +## References + +- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] +- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] +- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] +- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] + +[rfc-2616]: https://tools.ietf.org/html/rfc2616 +[rfc-5987]: https://tools.ietf.org/html/rfc5987 +[rfc-6266]: https://tools.ietf.org/html/rfc6266 +[tc-2231]: http://greenbytes.de/tech/tc2231/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/content-disposition.svg +[npm-url]: https://npmjs.org/package/content-disposition +[node-version-image]: https://img.shields.io/node/v/content-disposition.svg +[node-version-url]: https://nodejs.org/en/download +[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg +[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master +[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg +[downloads-url]: https://npmjs.org/package/content-disposition +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/content-disposition/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/content-disposition?query=workflow%3Aci diff --git a/node_modules/content-disposition/index.js b/node_modules/content-disposition/index.js new file mode 100644 index 0000000..ecec899 --- /dev/null +++ b/node_modules/content-disposition/index.js @@ -0,0 +1,458 @@ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = contentDisposition +module.exports.parse = parse + +/** + * Module dependencies. + * @private + */ + +var basename = require('path').basename +var Buffer = require('safe-buffer').Buffer + +/** + * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") + * @private + */ + +var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex + +/** + * RegExp to match percent encoding escape. + * @private + */ + +var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ +var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g + +/** + * RegExp to match non-latin1 characters. + * @private + */ + +var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + * @private + */ + +var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + * @private + */ + +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp for various RFC 2616 grammar + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * HT = + * CTL = + * OCTET = + * @private + */ + +var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ +var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ + +/** + * RegExp for various RFC 5987 grammar + * + * ext-value = charset "'" [ language ] "'" value-chars + * charset = "UTF-8" / "ISO-8859-1" / mime-charset + * mime-charset = 1*mime-charsetc + * mime-charsetc = ALPHA / DIGIT + * / "!" / "#" / "$" / "%" / "&" + * / "+" / "-" / "^" / "_" / "`" + * / "{" / "}" / "~" + * language = ( 2*3ALPHA [ extlang ] ) + * / 4ALPHA + * / 5*8ALPHA + * extlang = *3( "-" 3ALPHA ) + * value-chars = *( pct-encoded / attr-char ) + * pct-encoded = "%" HEXDIG HEXDIG + * attr-char = ALPHA / DIGIT + * / "!" / "#" / "$" / "&" / "+" / "-" / "." + * / "^" / "_" / "`" / "|" / "~" + * @private + */ + +var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ + +/** + * RegExp for various RFC 6266 grammar + * + * disposition-type = "inline" | "attachment" | disp-ext-type + * disp-ext-type = token + * disposition-parm = filename-parm | disp-ext-parm + * filename-parm = "filename" "=" value + * | "filename*" "=" ext-value + * disp-ext-parm = token "=" value + * | ext-token "=" ext-value + * ext-token = + * @private + */ + +var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex + +/** + * Create an attachment Content-Disposition header. + * + * @param {string} [filename] + * @param {object} [options] + * @param {string} [options.type=attachment] + * @param {string|boolean} [options.fallback=true] + * @return {string} + * @public + */ + +function contentDisposition (filename, options) { + var opts = options || {} + + // get type + var type = opts.type || 'attachment' + + // get parameters + var params = createparams(filename, opts.fallback) + + // format into string + return format(new ContentDisposition(type, params)) +} + +/** + * Create parameters object from filename and fallback. + * + * @param {string} [filename] + * @param {string|boolean} [fallback=true] + * @return {object} + * @private + */ + +function createparams (filename, fallback) { + if (filename === undefined) { + return + } + + var params = {} + + if (typeof filename !== 'string') { + throw new TypeError('filename must be a string') + } + + // fallback defaults to true + if (fallback === undefined) { + fallback = true + } + + if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { + throw new TypeError('fallback must be a string or boolean') + } + + if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError('fallback must be ISO-8859-1 string') + } + + // restrict to file base name + var name = basename(filename) + + // determine if name is suitable for quoted string + var isQuotedString = TEXT_REGEXP.test(name) + + // generate fallback name + var fallbackName = typeof fallback !== 'string' + ? fallback && getlatin1(name) + : basename(fallback) + var hasFallback = typeof fallbackName === 'string' && fallbackName !== name + + // set extended filename parameter + if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { + params['filename*'] = name + } + + // set filename parameter + if (isQuotedString || hasFallback) { + params.filename = hasFallback + ? fallbackName + : name + } + + return params +} + +/** + * Format object to Content-Disposition header. + * + * @param {object} obj + * @param {string} obj.type + * @param {object} [obj.parameters] + * @return {string} + * @private + */ + +function format (obj) { + var parameters = obj.parameters + var type = obj.type + + if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + // start with normalized type + var string = String(type).toLowerCase() + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + var val = param.substr(-1) === '*' + ? ustring(parameters[param]) + : qstring(parameters[param]) + + string += '; ' + param + '=' + val + } + } + + return string +} + +/** + * Decode a RFC 5987 field value (gracefully). + * + * @param {string} str + * @return {string} + * @private + */ + +function decodefield (str) { + var match = EXT_VALUE_REGEXP.exec(str) + + if (!match) { + throw new TypeError('invalid extended field value') + } + + var charset = match[1].toLowerCase() + var encoded = match[2] + var value + + // to binary string + var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) + + switch (charset) { + case 'iso-8859-1': + value = getlatin1(binary) + break + case 'utf-8': + value = Buffer.from(binary, 'binary').toString('utf8') + break + default: + throw new TypeError('unsupported charset in extended field') + } + + return value +} + +/** + * Get ISO-8859-1 version of string. + * + * @param {string} val + * @return {string} + * @private + */ + +function getlatin1 (val) { + // simple Unicode -> ISO-8859-1 transformation + return String(val).replace(NON_LATIN1_REGEXP, '?') +} + +/** + * Parse Content-Disposition header string. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (!string || typeof string !== 'string') { + throw new TypeError('argument string is required') + } + + var match = DISPOSITION_TYPE_REGEXP.exec(string) + + if (!match) { + throw new TypeError('invalid type format') + } + + // normalize type + var index = match[0].length + var type = match[1].toLowerCase() + + var key + var names = [] + var params = {} + var value + + // calculate index to start at + index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';' + ? index - 1 + : index + + // match parameters + while ((match = PARAM_REGEXP.exec(string))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (names.indexOf(key) !== -1) { + throw new TypeError('invalid duplicate parameter') + } + + names.push(key) + + if (key.indexOf('*') + 1 === key.length) { + // decode extended value + key = key.slice(0, -1) + value = decodefield(value) + + // overwrite existing value + params[key] = value + continue + } + + if (typeof params[key] === 'string') { + continue + } + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(QESC_REGEXP, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + return new ContentDisposition(type, params) +} + +/** + * Percent decode a single character. + * + * @param {string} str + * @param {string} hex + * @return {string} + * @private + */ + +function pdecode (str, hex) { + return String.fromCharCode(parseInt(hex, 16)) +} + +/** + * Percent encode a single character. + * + * @param {string} char + * @return {string} + * @private + */ + +function pencode (char) { + return '%' + String(char) + .charCodeAt(0) + .toString(16) + .toUpperCase() +} + +/** + * Quote a string for HTTP. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Encode a Unicode string for HTTP (RFC 5987). + * + * @param {string} val + * @return {string} + * @private + */ + +function ustring (val) { + var str = String(val) + + // percent encode as UTF-8 + var encoded = encodeURIComponent(str) + .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) + + return 'UTF-8\'\'' + encoded +} + +/** + * Class for parsed Content-Disposition header for v8 optimization + * + * @public + * @param {string} type + * @param {object} parameters + * @constructor + */ + +function ContentDisposition (type, parameters) { + this.type = type + this.parameters = parameters +} diff --git a/node_modules/content-disposition/package.json b/node_modules/content-disposition/package.json new file mode 100644 index 0000000..43c70ce --- /dev/null +++ b/node_modules/content-disposition/package.json @@ -0,0 +1,44 @@ +{ + "name": "content-disposition", + "description": "Create and parse Content-Disposition header", + "version": "0.5.4", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "repository": "jshttp/content-disposition", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "13.0.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "istanbul": "0.4.5", + "mocha": "9.1.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + } +} diff --git a/node_modules/content-type/HISTORY.md b/node_modules/content-type/HISTORY.md new file mode 100644 index 0000000..4583671 --- /dev/null +++ b/node_modules/content-type/HISTORY.md @@ -0,0 +1,29 @@ +1.0.5 / 2023-01-29 +================== + + * perf: skip value escaping when unnecessary + +1.0.4 / 2017-09-11 +================== + + * perf: skip parameter parsing when no parameters + +1.0.3 / 2017-09-10 +================== + + * perf: remove argument reassignment + +1.0.2 / 2016-05-09 +================== + + * perf: enable strict mode + +1.0.1 / 2015-02-13 +================== + + * Improve missing `Content-Type` header error message + +1.0.0 / 2015-02-01 +================== + + * Initial implementation, derived from `media-typer@0.3.0` diff --git a/node_modules/content-type/LICENSE b/node_modules/content-type/LICENSE new file mode 100644 index 0000000..34b1a2d --- /dev/null +++ b/node_modules/content-type/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/content-type/README.md b/node_modules/content-type/README.md new file mode 100644 index 0000000..c1a922a --- /dev/null +++ b/node_modules/content-type/README.md @@ -0,0 +1,94 @@ +# content-type + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Create and parse HTTP Content-Type header according to RFC 7231 + +## Installation + +```sh +$ npm install content-type +``` + +## API + +```js +var contentType = require('content-type') +``` + +### contentType.parse(string) + +```js +var obj = contentType.parse('image/svg+xml; charset=utf-8') +``` + +Parse a `Content-Type` header. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (the type and subtype, always lower case). + Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter + always lower case). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the string is missing or invalid. + +### contentType.parse(req) + +```js +var obj = contentType.parse(req) +``` + +Parse the `Content-Type` header from the given `req`. Short-cut for +`contentType.parse(req.headers['content-type'])`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.parse(res) + +```js +var obj = contentType.parse(res) +``` + +Parse the `Content-Type` header set on the given `res`. Short-cut for +`contentType.parse(res.getHeader('content-type'))`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.format(obj) + +```js +var str = contentType.format({ + type: 'image/svg+xml', + parameters: { charset: 'utf-8' } +}) +``` + +Format an object into a `Content-Type` header. This will return a string of the +content type for the given object with the following properties (examples are +shown that produce the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of the + parameter will be lower-cased). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the object contains an invalid type or parameter names. + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci +[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master +[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master +[node-image]: https://badgen.net/npm/node/content-type +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/content-type +[npm-url]: https://npmjs.org/package/content-type +[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/index.js b/node_modules/content-type/index.js new file mode 100644 index 0000000..41840e7 --- /dev/null +++ b/node_modules/content-type/index.js @@ -0,0 +1,225 @@ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ +var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ // eslint-disable-line no-control-regex +var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ +var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 + */ +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ +var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * Module exports. + * @public + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @public + */ + +function format (obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var type = obj.type + + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + var string = type + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @public + */ + +function parse (string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + var header = typeof string === 'object' + ? getcontenttype(string) + : string + + if (typeof header !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = header.indexOf(';') + var type = index !== -1 + ? header.slice(0, index).trim() + : header.trim() + + if (!TYPE_REGEXP.test(type)) { + throw new TypeError('invalid media type') + } + + var obj = new ContentType(type.toLowerCase()) + + // parse parameters + if (index !== -1) { + var key + var match + var value + + PARAM_REGEXP.lastIndex = index + + while ((match = PARAM_REGEXP.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value.charCodeAt(0) === 0x22 /* " */) { + // remove quotes + value = value.slice(1, -1) + + // remove escapes + if (value.indexOf('\\') !== -1) { + value = value.replace(QESC_REGEXP, '$1') + } + } + + obj.parameters[key] = value + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + } + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @private + */ + +function getcontenttype (obj) { + var header + + if (typeof obj.getHeader === 'function') { + // res-like + header = obj.getHeader('content-type') + } else if (typeof obj.headers === 'object') { + // req-like + header = obj.headers && obj.headers['content-type'] + } + + if (typeof header !== 'string') { + throw new TypeError('content-type header is missing from object') + } + + return header +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + // no need to quote tokens + if (TOKEN_REGEXP.test(str)) { + return str + } + + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Class to represent a content type. + * @private + */ +function ContentType (type) { + this.parameters = Object.create(null) + this.type = type +} diff --git a/node_modules/content-type/package.json b/node_modules/content-type/package.json new file mode 100644 index 0000000..9db19f6 --- /dev/null +++ b/node_modules/content-type/package.json @@ -0,0 +1,42 @@ +{ + "name": "content-type", + "description": "Create and parse HTTP Content-Type header", + "version": "1.0.5", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "repository": "jshttp/content-type", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "8.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/cookie-signature/.npmignore b/node_modules/cookie-signature/.npmignore new file mode 100644 index 0000000..f1250e5 --- /dev/null +++ b/node_modules/cookie-signature/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/cookie-signature/History.md b/node_modules/cookie-signature/History.md new file mode 100644 index 0000000..78513cc --- /dev/null +++ b/node_modules/cookie-signature/History.md @@ -0,0 +1,38 @@ +1.0.6 / 2015-02-03 +================== + +* use `npm test` instead of `make test` to run tests +* clearer assertion messages when checking input + + +1.0.5 / 2014-09-05 +================== + +* add license to package.json + +1.0.4 / 2014-06-25 +================== + + * corrected avoidance of timing attacks (thanks @tenbits!) + +1.0.3 / 2014-01-28 +================== + + * [incorrect] fix for timing attacks + +1.0.2 / 2014-01-28 +================== + + * fix missing repository warning + * fix typo in test + +1.0.1 / 2013-04-15 +================== + + * Revert "Changed underlying HMAC algo. to sha512." + * Revert "Fix for timing attacks on MAC verification." + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/cookie-signature/Readme.md b/node_modules/cookie-signature/Readme.md new file mode 100644 index 0000000..2559e84 --- /dev/null +++ b/node_modules/cookie-signature/Readme.md @@ -0,0 +1,42 @@ + +# cookie-signature + + Sign and unsign cookies. + +## Example + +```js +var cookie = require('cookie-signature'); + +var val = cookie.sign('hello', 'tobiiscool'); +val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); + +var val = cookie.sign('hello', 'tobiiscool'); +cookie.unsign(val, 'tobiiscool').should.equal('hello'); +cookie.unsign(val, 'luna').should.be.false; +``` + +## License + +(The MIT License) + +Copyright (c) 2012 LearnBoost <tj@learnboost.com> + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. \ No newline at end of file diff --git a/node_modules/cookie-signature/index.js b/node_modules/cookie-signature/index.js new file mode 100644 index 0000000..b8c9463 --- /dev/null +++ b/node_modules/cookie-signature/index.js @@ -0,0 +1,51 @@ +/** + * Module dependencies. + */ + +var crypto = require('crypto'); + +/** + * Sign the given `val` with `secret`. + * + * @param {String} val + * @param {String} secret + * @return {String} + * @api private + */ + +exports.sign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + return val + '.' + crypto + .createHmac('sha256', secret) + .update(val) + .digest('base64') + .replace(/\=+$/, ''); +}; + +/** + * Unsign and decode the given `val` with `secret`, + * returning `false` if the signature is invalid. + * + * @param {String} val + * @param {String} secret + * @return {String|Boolean} + * @api private + */ + +exports.unsign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf('.')) + , mac = exports.sign(str, secret); + + return sha1(mac) == sha1(val) ? str : false; +}; + +/** + * Private + */ + +function sha1(str){ + return crypto.createHash('sha1').update(str).digest('hex'); +} diff --git a/node_modules/cookie-signature/package.json b/node_modules/cookie-signature/package.json new file mode 100644 index 0000000..29c4498 --- /dev/null +++ b/node_modules/cookie-signature/package.json @@ -0,0 +1,18 @@ +{ + "name": "cookie-signature", + "version": "1.0.6", + "description": "Sign and unsign cookies", + "keywords": ["cookie", "sign", "unsign"], + "author": "TJ Holowaychuk ", + "license": "MIT", + "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, + "dependencies": {}, + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "scripts": { + "test": "mocha --require should --reporter spec" + }, + "main": "index" +} diff --git a/node_modules/cookie/LICENSE b/node_modules/cookie/LICENSE new file mode 100644 index 0000000..058b6b4 --- /dev/null +++ b/node_modules/cookie/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Roman Shtylman +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. + diff --git a/node_modules/cookie/README.md b/node_modules/cookie/README.md new file mode 100644 index 0000000..71fdac1 --- /dev/null +++ b/node_modules/cookie/README.md @@ -0,0 +1,317 @@ +# cookie + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Basic HTTP cookie parser and serializer for HTTP servers. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install cookie +``` + +## API + +```js +var cookie = require('cookie'); +``` + +### cookie.parse(str, options) + +Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. +The `str` argument is the string representing a `Cookie` header value and `options` is an +optional object containing additional parsing options. + +```js +var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); +// { foo: 'bar', equation: 'E=mc^2' } +``` + +#### Options + +`cookie.parse` accepts these properties in the options object. + +##### decode + +Specifies a function that will be used to decode a cookie's value. Since the value of a cookie +has a limited character set (and must be a simple string), this function can be used to decode +a previously-encoded cookie value into a JavaScript string or other object. + +The default function is the global `decodeURIComponent`, which will decode any URL-encoded +sequences into their byte representations. + +**note** if an error is thrown from this function, the original, non-decoded cookie value will +be returned as the cookie's value. + +### cookie.serialize(name, value, options) + +Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the +name for the cookie, the `value` argument is the value to set the cookie to, and the `options` +argument is an optional object containing additional serialization options. + +```js +var setCookie = cookie.serialize('foo', 'bar'); +// foo=bar +``` + +#### Options + +`cookie.serialize` accepts these properties in the options object. + +##### domain + +Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no +domain is set, and most clients will consider the cookie to apply to only the current domain. + +##### encode + +Specifies a function that will be used to encode a cookie's value. Since value of a cookie +has a limited character set (and must be a simple string), this function can be used to encode +a value into a string suited for a cookie's value. + +The default function is the global `encodeURIComponent`, which will encode a JavaScript string +into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. + +##### expires + +Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. +By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and +will delete it on a condition like exiting a web browser application. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### httpOnly + +Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, +the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not allow client-side +JavaScript to see the cookie in `document.cookie`. + +##### maxAge + +Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. +The given number will be converted to an integer by rounding down. By default, no maximum age is set. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### partitioned + +Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies) +attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the +`Partitioned` attribute is not set. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +More information about can be found in [the proposal](https://github.com/privacycg/CHIPS). + +##### path + +Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path +is considered the ["default path"][rfc-6265-5.1.4]. + +##### priority + +Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1]. + + - `'low'` will set the `Priority` attribute to `Low`. + - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set. + - `'high'` will set the `Priority` attribute to `High`. + +More information about the different priority levels can be found in +[the specification][rfc-west-cookie-priority-00-4.1]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### sameSite + +Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.7]. + + - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + - `false` will not set the `SameSite` attribute. + - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. + - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. + - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + +More information about the different enforcement levels can be found in +[the specification][rfc-6265bis-09-5.4.7]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### secure + +Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, +the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to +the server in the future if the browser does not have an HTTPS connection. + +## Example + +The following example uses this module in conjunction with the Node.js core HTTP server +to prompt a user for their name and display it back on future visits. + +```js +var cookie = require('cookie'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var url = require('url'); + +function onRequest(req, res) { + // Parse the query string + var query = url.parse(req.url, true, true).query; + + if (query && query.name) { + // Set a new cookie with the name + res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { + httpOnly: true, + maxAge: 60 * 60 * 24 * 7 // 1 week + })); + + // Redirect back after setting cookie + res.statusCode = 302; + res.setHeader('Location', req.headers.referer || '/'); + res.end(); + return; + } + + // Parse the cookies on the request + var cookies = cookie.parse(req.headers.cookie || ''); + + // Get the visitor name set in the cookie + var name = cookies.name; + + res.setHeader('Content-Type', 'text/html; charset=UTF-8'); + + if (name) { + res.write('

Welcome back, ' + escapeHtml(name) + '!

'); + } else { + res.write('

Hello, new visitor!

'); + } + + res.write('
'); + res.write(' '); + res.end('
'); +} + +http.createServer(onRequest).listen(3000); +``` + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +``` +$ npm run bench + +> cookie@0.5.0 bench +> node benchmark/index.js + + node@18.18.2 + acorn@8.10.0 + ada@2.6.0 + ares@1.19.1 + brotli@1.0.9 + cldr@43.1 + icu@73.2 + llhttp@6.0.11 + modules@108 + napi@9 + nghttp2@1.57.0 + nghttp3@0.7.0 + ngtcp2@0.8.1 + openssl@3.0.10+quic + simdutf@3.2.14 + tz@2023c + undici@5.26.3 + unicode@15.0 + uv@1.44.2 + uvwasi@0.0.18 + v8@10.2.154.26-node.26 + zlib@1.2.13.1-motley + +> node benchmark/parse-top.js + + cookie.parse - top sites + + 14 tests completed. + + parse accounts.google.com x 2,588,913 ops/sec ±0.74% (186 runs sampled) + parse apple.com x 2,370,002 ops/sec ±0.69% (186 runs sampled) + parse cloudflare.com x 2,213,102 ops/sec ±0.88% (188 runs sampled) + parse docs.google.com x 2,194,157 ops/sec ±1.03% (184 runs sampled) + parse drive.google.com x 2,265,084 ops/sec ±0.79% (187 runs sampled) + parse en.wikipedia.org x 457,099 ops/sec ±0.81% (186 runs sampled) + parse linkedin.com x 504,407 ops/sec ±0.89% (186 runs sampled) + parse maps.google.com x 1,230,959 ops/sec ±0.98% (186 runs sampled) + parse microsoft.com x 926,294 ops/sec ±0.88% (184 runs sampled) + parse play.google.com x 2,311,338 ops/sec ±0.83% (185 runs sampled) + parse support.google.com x 1,508,850 ops/sec ±0.86% (186 runs sampled) + parse www.google.com x 1,022,582 ops/sec ±1.32% (182 runs sampled) + parse youtu.be x 332,136 ops/sec ±1.02% (185 runs sampled) + parse youtube.com x 323,833 ops/sec ±0.77% (183 runs sampled) + +> node benchmark/parse.js + + cookie.parse - generic + + 6 tests completed. + + simple x 3,214,032 ops/sec ±1.61% (183 runs sampled) + decode x 587,237 ops/sec ±1.16% (187 runs sampled) + unquote x 2,954,618 ops/sec ±1.35% (183 runs sampled) + duplicates x 857,008 ops/sec ±0.89% (187 runs sampled) + 10 cookies x 292,133 ops/sec ±0.89% (187 runs sampled) + 100 cookies x 22,610 ops/sec ±0.68% (187 runs sampled) +``` + +## References + +- [RFC 6265: HTTP State Management Mechanism][rfc-6265] +- [Same-site Cookies][rfc-6265bis-09-5.4.7] + +[rfc-cutler-httpbis-partitioned-cookies]: https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/ +[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1 +[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7 +[rfc-6265]: https://tools.ietf.org/html/rfc6265 +[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 +[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 +[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 +[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 +[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 +[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 +[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 +[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/cookie/master?label=ci +[ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master +[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master +[node-image]: https://badgen.net/npm/node/cookie +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/cookie +[npm-url]: https://npmjs.org/package/cookie +[npm-version-image]: https://badgen.net/npm/v/cookie diff --git a/node_modules/cookie/SECURITY.md b/node_modules/cookie/SECURITY.md new file mode 100644 index 0000000..fd4a6c5 --- /dev/null +++ b/node_modules/cookie/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `cookie` team and community take all security bugs seriously. Thank +you for improving the security of the project. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `cookie`. This +information can be found in the npm registry using the command +`npm owner ls cookie`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/jshttp/cookie/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/cookie/index.js b/node_modules/cookie/index.js new file mode 100644 index 0000000..51a58cb --- /dev/null +++ b/node_modules/cookie/index.js @@ -0,0 +1,334 @@ +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +exports.parse = parse; +exports.serialize = serialize; + +/** + * Module variables. + * @private + */ + +var __toString = Object.prototype.toString + +/** + * RegExp to match cookie-name in RFC 6265 sec 4.1.1 + * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 + * which has been replaced by the token definition in RFC 7230 appendix B. + * + * cookie-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / + * "*" / "+" / "-" / "." / "^" / "_" / + * "`" / "|" / "~" / DIGIT / ALPHA + */ + +var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + +/** + * RegExp to match cookie-value in RFC 6265 sec 4.1.1 + * + * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + * ; US-ASCII characters excluding CTLs, + * ; whitespace DQUOTE, comma, semicolon, + * ; and backslash + */ + +var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + +/** + * RegExp to match domain-value in RFC 6265 sec 4.1.1 + * + * domain-value = + * ; defined in [RFC1034], Section 3.5, as + * ; enhanced by [RFC1123], Section 2.1 + * =
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca> + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/debug/component.json b/node_modules/debug/component.json new file mode 100644 index 0000000..9de2641 --- /dev/null +++ b/node_modules/debug/component.json @@ -0,0 +1,19 @@ +{ + "name": "debug", + "repo": "visionmedia/debug", + "description": "small debugging utility", + "version": "2.6.9", + "keywords": [ + "debug", + "log", + "debugger" + ], + "main": "src/browser.js", + "scripts": [ + "src/browser.js", + "src/debug.js" + ], + "dependencies": { + "rauchg/ms.js": "0.7.1" + } +} diff --git a/node_modules/debug/karma.conf.js b/node_modules/debug/karma.conf.js new file mode 100644 index 0000000..103a82d --- /dev/null +++ b/node_modules/debug/karma.conf.js @@ -0,0 +1,70 @@ +// Karma configuration +// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) + +module.exports = function(config) { + config.set({ + + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '', + + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['mocha', 'chai', 'sinon'], + + + // list of files / patterns to load in the browser + files: [ + 'dist/debug.js', + 'test/*spec.js' + ], + + + // list of files to exclude + exclude: [ + 'src/node.js' + ], + + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress'], + + + // web server port + port: 9876, + + + // enable / disable colors in the output (reporters and logs) + colors: true, + + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ['PhantomJS'], + + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, + + // Concurrency level + // how many browser should be started simultaneous + concurrency: Infinity + }) +} diff --git a/node_modules/debug/node.js b/node_modules/debug/node.js new file mode 100644 index 0000000..7fc36fe --- /dev/null +++ b/node_modules/debug/node.js @@ -0,0 +1 @@ +module.exports = require('./src/node'); diff --git a/node_modules/debug/package.json b/node_modules/debug/package.json new file mode 100644 index 0000000..dc787ba --- /dev/null +++ b/node_modules/debug/package.json @@ -0,0 +1,49 @@ +{ + "name": "debug", + "version": "2.6.9", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "description": "small debugging utility", + "keywords": [ + "debug", + "log", + "debugger" + ], + "author": "TJ Holowaychuk ", + "contributors": [ + "Nathan Rajlich (http://n8.io)", + "Andrew Rhyne " + ], + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + }, + "devDependencies": { + "browserify": "9.0.3", + "chai": "^3.5.0", + "concurrently": "^3.1.0", + "coveralls": "^2.11.15", + "eslint": "^3.12.1", + "istanbul": "^0.4.5", + "karma": "^1.3.0", + "karma-chai": "^0.1.0", + "karma-mocha": "^1.3.0", + "karma-phantomjs-launcher": "^1.0.2", + "karma-sinon": "^1.0.5", + "mocha": "^3.2.0", + "mocha-lcov-reporter": "^1.2.0", + "rimraf": "^2.5.4", + "sinon": "^1.17.6", + "sinon-chai": "^2.8.0" + }, + "main": "./src/index.js", + "browser": "./src/browser.js", + "component": { + "scripts": { + "debug/index.js": "browser.js", + "debug/debug.js": "debug.js" + } + } +} diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js new file mode 100644 index 0000000..7106924 --- /dev/null +++ b/node_modules/debug/src/browser.js @@ -0,0 +1,185 @@ +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } +}; + + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} +} diff --git a/node_modules/debug/src/debug.js b/node_modules/debug/src/debug.js new file mode 100644 index 0000000..6a5e3fc --- /dev/null +++ b/node_modules/debug/src/debug.js @@ -0,0 +1,202 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = require('ms'); + +/** + * The currently active debug mode names, and names to skip. + */ + +exports.names = []; +exports.skips = []; + +/** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + +exports.formatters = {}; + +/** + * Previous log timestamp. + */ + +var prevTime; + +/** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + +function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; +} + +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } +} + +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; +} + +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} diff --git a/node_modules/debug/src/index.js b/node_modules/debug/src/index.js new file mode 100644 index 0000000..e12cf4d --- /dev/null +++ b/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer process, which is node, but we should + * treat as a browser. + */ + +if (typeof process !== 'undefined' && process.type === 'renderer') { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/node_modules/debug/src/inspector-log.js b/node_modules/debug/src/inspector-log.js new file mode 100644 index 0000000..60ea6c0 --- /dev/null +++ b/node_modules/debug/src/inspector-log.js @@ -0,0 +1,15 @@ +module.exports = inspectorLog; + +// black hole +const nullStream = new (require('stream').Writable)(); +nullStream._write = () => {}; + +/** + * Outputs a `console.log()` to the Node.js Inspector console *only*. + */ +function inspectorLog() { + const stdout = console._stdout; + console._stdout = nullStream; + console.log.apply(console, arguments); + console._stdout = stdout; +} diff --git a/node_modules/debug/src/node.js b/node_modules/debug/src/node.js new file mode 100644 index 0000000..b15109c --- /dev/null +++ b/node_modules/debug/src/node.js @@ -0,0 +1,248 @@ +/** + * Module dependencies. + */ + +var tty = require('tty'); +var util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(function (key) { + return /^debug_/i.test(key); +}).reduce(function (obj, key) { + // camel-case + var prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); + + // coerce string value into JS value + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) val = false; + else if (val === 'null') val = null; + else val = Number(val); + + obj[prop] = val; + return obj; +}, {}); + +/** + * The file descriptor to write the `debug()` calls to. + * Set the `DEBUG_FD` env variable to override with another value. i.e.: + * + * $ DEBUG_FD=3 node script.js 3>debug.log + */ + +var fd = parseInt(process.env.DEBUG_FD, 10) || 2; + +if (1 !== fd && 2 !== fd) { + util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() +} + +var stream = 1 === fd ? process.stdout : + 2 === fd ? process.stderr : + createWritableStdioStream(fd); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(fd); +} + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +exports.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n').map(function(str) { + return str.trim() + }).join(' '); +}; + +/** + * Map %o to `util.inspect()`, allowing multiple lines if needed. + */ + +exports.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + var name = this.namespace; + var useColors = this.useColors; + + if (useColors) { + var c = this.color; + var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + } else { + args[0] = new Date().toUTCString() + + ' ' + name + ' ' + args[0]; + } +} + +/** + * Invokes `util.format()` with the specified arguments and writes to `stream`. + */ + +function log() { + return stream.write(util.format.apply(util, arguments) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + if (null == namespaces) { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Copied from `node/src/node.js`. + * + * XXX: It's lame that node doesn't expose this API out-of-the-box. It also + * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. + */ + +function createWritableStdioStream (fd) { + var stream; + var tty_wrap = process.binding('tty_wrap'); + + // Note stream._type is used for test-module-load-list.js + + switch (tty_wrap.guessHandleType(fd)) { + case 'TTY': + stream = new tty.WriteStream(fd); + stream._type = 'tty'; + + // Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + case 'FILE': + var fs = require('fs'); + stream = new fs.SyncWriteStream(fd, { autoClose: false }); + stream._type = 'fs'; + break; + + case 'PIPE': + case 'TCP': + var net = require('net'); + stream = new net.Socket({ + fd: fd, + readable: false, + writable: true + }); + + // FIXME Should probably have an option in net.Socket to create a + // stream from an existing fd which is writable only. But for now + // we'll just add this hack and set the `readable` member to false. + // Test: ./node test/fixtures/echo.js < /etc/passwd + stream.readable = false; + stream.read = null; + stream._type = 'pipe'; + + // FIXME Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + default: + // Probably an error on in uv_guess_handle() + throw new Error('Implement me. Unknown stream file type!'); + } + + // For supporting legacy API we put the FD here. + stream.fd = fd; + + stream._isStdio = true; + + return stream; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init (debug) { + debug.inspectOpts = {}; + + var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +/** + * Enable namespaces listed in `process.env.DEBUG` initially. + */ + +exports.enable(load()); diff --git a/node_modules/depd/History.md b/node_modules/depd/History.md new file mode 100644 index 0000000..cd9ebaa --- /dev/null +++ b/node_modules/depd/History.md @@ -0,0 +1,103 @@ +2.0.0 / 2018-10-26 +================== + + * Drop support for Node.js 0.6 + * Replace internal `eval` usage with `Function` constructor + * Use instance methods on `process` to check for listeners + +1.1.2 / 2018-01-11 +================== + + * perf: remove argument reassignment + * Support Node.js 0.6 to 9.x + +1.1.1 / 2017-07-27 +================== + + * Remove unnecessary `Buffer` loading + * Support Node.js 0.6 to 8.x + +1.1.0 / 2015-09-14 +================== + + * Enable strict mode in more places + * Support io.js 3.x + * Support io.js 2.x + * Support web browser loading + - Requires bundler like Browserify or webpack + +1.0.1 / 2015-04-07 +================== + + * Fix `TypeError`s when under `'use strict'` code + * Fix useless type name on auto-generated messages + * Support io.js 1.x + * Support Node.js 0.12 + +1.0.0 / 2014-09-17 +================== + + * No changes + +0.4.5 / 2014-09-09 +================== + + * Improve call speed to functions using the function wrapper + * Support Node.js 0.6 + +0.4.4 / 2014-07-27 +================== + + * Work-around v8 generating empty stack traces + +0.4.3 / 2014-07-26 +================== + + * Fix exception when global `Error.stackTraceLimit` is too low + +0.4.2 / 2014-07-19 +================== + + * Correct call site for wrapped functions and properties + +0.4.1 / 2014-07-19 +================== + + * Improve automatic message generation for function properties + +0.4.0 / 2014-07-19 +================== + + * Add `TRACE_DEPRECATION` environment variable + * Remove non-standard grey color from color output + * Support `--no-deprecation` argument + * Support `--trace-deprecation` argument + * Support `deprecate.property(fn, prop, message)` + +0.3.0 / 2014-06-16 +================== + + * Add `NO_DEPRECATION` environment variable + +0.2.0 / 2014-06-15 +================== + + * Add `deprecate.property(obj, prop, message)` + * Remove `supports-color` dependency for node.js 0.8 + +0.1.0 / 2014-06-15 +================== + + * Add `deprecate.function(fn, message)` + * Add `process.on('deprecation', fn)` emitter + * Automatically generate message when omitted from `deprecate()` + +0.0.1 / 2014-06-15 +================== + + * Fix warning for dynamic calls at singe call site + +0.0.0 / 2014-06-15 +================== + + * Initial implementation diff --git a/node_modules/depd/LICENSE b/node_modules/depd/LICENSE new file mode 100644 index 0000000..248de7a --- /dev/null +++ b/node_modules/depd/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2018 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/depd/Readme.md b/node_modules/depd/Readme.md new file mode 100644 index 0000000..043d1ca --- /dev/null +++ b/node_modules/depd/Readme.md @@ -0,0 +1,280 @@ +# depd + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Deprecate all the things + +> With great modules comes great responsibility; mark things deprecated! + +## Install + +This module is installed directly using `npm`: + +```sh +$ npm install depd +``` + +This module can also be bundled with systems like +[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), +though by default this module will alter it's API to no longer display or +track deprecations. + +## API + + + +```js +var deprecate = require('depd')('my-module') +``` + +This library allows you to display deprecation messages to your users. +This library goes above and beyond with deprecation warnings by +introspection of the call stack (but only the bits that it is interested +in). + +Instead of just warning on the first invocation of a deprecated +function and never again, this module will warn on the first invocation +of a deprecated function per unique call site, making it ideal to alert +users of all deprecated uses across the code base, rather than just +whatever happens to execute first. + +The deprecation warnings from this module also include the file and line +information for the call into the module that the deprecated function was +in. + +**NOTE** this library has a similar interface to the `debug` module, and +this module uses the calling file to get the boundary for the call stacks, +so you should always create a new `deprecate` object in each file and not +within some central file. + +### depd(namespace) + +Create a new deprecate function that uses the given namespace name in the +messages and will display the call site prior to the stack entering the +file this function was called from. It is highly suggested you use the +name of your module as the namespace. + +### deprecate(message) + +Call this function from deprecated code to display a deprecation message. +This message will appear once per unique caller site. Caller site is the +first call site in the stack in a different file from the caller of this +function. + +If the message is omitted, a message is generated for you based on the site +of the `deprecate()` call and will display the name of the function called, +similar to the name displayed in a stack trace. + +### deprecate.function(fn, message) + +Call this function to wrap a given function in a deprecation message on any +call to the function. An optional message can be supplied to provide a custom +message. + +### deprecate.property(obj, prop, message) + +Call this function to wrap a given property on object in a deprecation message +on any accessing or setting of the property. An optional message can be supplied +to provide a custom message. + +The method must be called on the object where the property belongs (not +inherited from the prototype). + +If the property is a data descriptor, it will be converted to an accessor +descriptor in order to display the deprecation message. + +### process.on('deprecation', fn) + +This module will allow easy capturing of deprecation errors by emitting the +errors as the type "deprecation" on the global `process`. If there are no +listeners for this type, the errors are written to STDERR as normal, but if +there are any listeners, nothing will be written to STDERR and instead only +emitted. From there, you can write the errors in a different format or to a +logging source. + +The error represents the deprecation and is emitted only once with the same +rules as writing to STDERR. The error has the following properties: + + - `message` - This is the message given by the library + - `name` - This is always `'DeprecationError'` + - `namespace` - This is the namespace the deprecation came from + - `stack` - This is the stack of the call to the deprecated thing + +Example `error.stack` output: + +``` +DeprecationError: my-cool-module deprecated oldfunction + at Object. ([eval]-wrapper:6:22) + at Module._compile (module.js:456:26) + at evalScript (node.js:532:25) + at startup (node.js:80:7) + at node.js:902:3 +``` + +### process.env.NO_DEPRECATION + +As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` +is provided as a quick solution to silencing deprecation warnings from being +output. The format of this is similar to that of `DEBUG`: + +```sh +$ NO_DEPRECATION=my-module,othermod node app.js +``` + +This will suppress deprecations from being output for "my-module" and "othermod". +The value is a list of comma-separated namespaces. To suppress every warning +across all namespaces, use the value `*` for a namespace. + +Providing the argument `--no-deprecation` to the `node` executable will suppress +all deprecations (only available in Node.js 0.8 or higher). + +**NOTE** This will not suppress the deperecations given to any "deprecation" +event listeners, just the output to STDERR. + +### process.env.TRACE_DEPRECATION + +As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` +is provided as a solution to getting more detailed location information in deprecation +warnings by including the entire stack trace. The format of this is the same as +`NO_DEPRECATION`: + +```sh +$ TRACE_DEPRECATION=my-module,othermod node app.js +``` + +This will include stack traces for deprecations being output for "my-module" and +"othermod". The value is a list of comma-separated namespaces. To trace every +warning across all namespaces, use the value `*` for a namespace. + +Providing the argument `--trace-deprecation` to the `node` executable will trace +all deprecations (only available in Node.js 0.8 or higher). + +**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. + +## Display + +![message](files/message.png) + +When a user calls a function in your library that you mark deprecated, they +will see the following written to STDERR (in the given colors, similar colors +and layout to the `debug` module): + +``` +bright cyan bright yellow +| | reset cyan +| | | | +▼ ▼ ▼ ▼ +my-cool-module deprecated oldfunction [eval]-wrapper:6:22 +▲ ▲ ▲ ▲ +| | | | +namespace | | location of mycoolmod.oldfunction() call + | deprecation message + the word "deprecated" +``` + +If the user redirects their STDERR to a file or somewhere that does not support +colors, they see (similar layout to the `debug` module): + +``` +Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 +▲ ▲ ▲ ▲ ▲ +| | | | | +timestamp of message namespace | | location of mycoolmod.oldfunction() call + | deprecation message + the word "deprecated" +``` + +## Examples + +### Deprecating all calls to a function + +This will display a deprecated message about "oldfunction" being deprecated +from "my-module" on STDERR. + +```js +var deprecate = require('depd')('my-cool-module') + +// message automatically derived from function name +// Object.oldfunction +exports.oldfunction = deprecate.function(function oldfunction () { + // all calls to function are deprecated +}) + +// specific message +exports.oldfunction = deprecate.function(function () { + // all calls to function are deprecated +}, 'oldfunction') +``` + +### Conditionally deprecating a function call + +This will display a deprecated message about "weirdfunction" being deprecated +from "my-module" on STDERR when called with less than 2 arguments. + +```js +var deprecate = require('depd')('my-cool-module') + +exports.weirdfunction = function () { + if (arguments.length < 2) { + // calls with 0 or 1 args are deprecated + deprecate('weirdfunction args < 2') + } +} +``` + +When calling `deprecate` as a function, the warning is counted per call site +within your own module, so you can display different deprecations depending +on different situations and the users will still get all the warnings: + +```js +var deprecate = require('depd')('my-cool-module') + +exports.weirdfunction = function () { + if (arguments.length < 2) { + // calls with 0 or 1 args are deprecated + deprecate('weirdfunction args < 2') + } else if (typeof arguments[0] !== 'string') { + // calls with non-string first argument are deprecated + deprecate('weirdfunction non-string first arg') + } +} +``` + +### Deprecating property access + +This will display a deprecated message about "oldprop" being deprecated +from "my-module" on STDERR when accessed. A deprecation will be displayed +when setting the value and when getting the value. + +```js +var deprecate = require('depd')('my-cool-module') + +exports.oldprop = 'something' + +// message automatically derives from property name +deprecate.property(exports, 'oldprop') + +// explicit message +deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/nodejs-depd/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd +[coveralls-image]: https://badgen.net/coveralls/c/github/dougwilson/nodejs-depd/master +[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master +[node-image]: https://badgen.net/npm/node/depd +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/depd +[npm-url]: https://npmjs.org/package/depd +[npm-version-image]: https://badgen.net/npm/v/depd +[travis-image]: https://badgen.net/travis/dougwilson/nodejs-depd/master?label=linux +[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd diff --git a/node_modules/depd/index.js b/node_modules/depd/index.js new file mode 100644 index 0000000..1bf2fcf --- /dev/null +++ b/node_modules/depd/index.js @@ -0,0 +1,538 @@ +/*! + * depd + * Copyright(c) 2014-2018 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var relative = require('path').relative + +/** + * Module exports. + */ + +module.exports = depd + +/** + * Get the path to base files on. + */ + +var basePath = process.cwd() + +/** + * Determine if namespace is contained in the string. + */ + +function containsNamespace (str, namespace) { + var vals = str.split(/[ ,]+/) + var ns = String(namespace).toLowerCase() + + for (var i = 0; i < vals.length; i++) { + var val = vals[i] + + // namespace contained + if (val && (val === '*' || val.toLowerCase() === ns)) { + return true + } + } + + return false +} + +/** + * Convert a data descriptor to accessor descriptor. + */ + +function convertDataDescriptorToAccessor (obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + var value = descriptor.value + + descriptor.get = function getter () { return value } + + if (descriptor.writable) { + descriptor.set = function setter (val) { return (value = val) } + } + + delete descriptor.value + delete descriptor.writable + + Object.defineProperty(obj, prop, descriptor) + + return descriptor +} + +/** + * Create arguments string to keep arity. + */ + +function createArgumentsString (arity) { + var str = '' + + for (var i = 0; i < arity; i++) { + str += ', arg' + i + } + + return str.substr(2) +} + +/** + * Create stack string from stack. + */ + +function createStackString (stack) { + var str = this.name + ': ' + this.namespace + + if (this.message) { + str += ' deprecated ' + this.message + } + + for (var i = 0; i < stack.length; i++) { + str += '\n at ' + stack[i].toString() + } + + return str +} + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + var stack = getStack() + var site = callSiteLocation(stack[1]) + var file = site[0] + + function deprecate (message) { + // call to self as log + log.call(deprecate, message) + } + + deprecate._file = file + deprecate._ignored = isignored(namespace) + deprecate._namespace = namespace + deprecate._traced = istraced(namespace) + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Determine if event emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function eehaslisteners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if namespace is ignored. + */ + +function isignored (namespace) { + if (process.noDeprecation) { + // --no-deprecation support + return true + } + + var str = process.env.NO_DEPRECATION || '' + + // namespace ignored + return containsNamespace(str, namespace) +} + +/** + * Determine if namespace is traced. + */ + +function istraced (namespace) { + if (process.traceDeprecation) { + // --trace-deprecation support + return true + } + + var str = process.env.TRACE_DEPRECATION || '' + + // namespace traced + return containsNamespace(str, namespace) +} + +/** + * Display deprecation message. + */ + +function log (message, site) { + var haslisteners = eehaslisteners(process, 'deprecation') + + // abort early if no destination + if (!haslisteners && this._ignored) { + return + } + + var caller + var callFile + var callSite + var depSite + var i = 0 + var seen = false + var stack = getStack() + var file = this._file + + if (site) { + // provided site + depSite = site + callSite = callSiteLocation(stack[1]) + callSite.name = depSite.name + file = callSite[0] + } else { + // get call site + i = 2 + depSite = callSiteLocation(stack[i]) + callSite = depSite + } + + // get caller of deprecated thing in relation to file + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]) + callFile = caller[0] + + if (callFile === file) { + seen = true + } else if (callFile === this._file) { + file = this._file + } else if (seen) { + break + } + } + + var key = caller + ? depSite.join(':') + '__' + caller.join(':') + : undefined + + if (key !== undefined && key in this._warned) { + // already warned + return + } + + this._warned[key] = true + + // generate automatic message from call site + var msg = message + if (!msg) { + msg = callSite === depSite || !callSite.name + ? defaultMessage(depSite) + : defaultMessage(callSite) + } + + // emit deprecation if listeners exist + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)) + process.emit('deprecation', err) + return + } + + // format and write message + var format = process.stderr.isTTY + ? formatColor + : formatPlain + var output = format.call(this, msg, caller, stack.slice(i)) + process.stderr.write(output + '\n', 'utf8') +} + +/** + * Get call site location as array. + */ + +function callSiteLocation (callSite) { + var file = callSite.getFileName() || '' + var line = callSite.getLineNumber() + var colm = callSite.getColumnNumber() + + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ', ' + file + } + + var site = [file, line, colm] + + site.callSite = callSite + site.name = callSite.getFunctionName() + + return site +} + +/** + * Generate a default message from the site. + */ + +function defaultMessage (site) { + var callSite = site.callSite + var funcName = site.name + + // make useful anonymous name + if (!funcName) { + funcName = '' + } + + var context = callSite.getThis() + var typeName = context && callSite.getTypeName() + + // ignore useless type name + if (typeName === 'Object') { + typeName = undefined + } + + // make useful type name + if (typeName === 'Function') { + typeName = context.name || typeName + } + + return typeName && callSite.getMethodName() + ? typeName + '.' + funcName + : funcName +} + +/** + * Format deprecation message without color. + */ + +function formatPlain (msg, caller, stack) { + var timestamp = new Date().toUTCString() + + var formatted = timestamp + + ' ' + this._namespace + + ' deprecated ' + msg + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n at ' + stack[i].toString() + } + + return formatted + } + + if (caller) { + formatted += ' at ' + formatLocation(caller) + } + + return formatted +} + +/** + * Format deprecation message with color. + */ + +function formatColor (msg, caller, stack) { + var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan + ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow + ' \x1b[0m' + msg + '\x1b[39m' // reset + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n \x1b[36mat ' + stack[i].toString() + '\x1b[39m' // cyan + } + + return formatted + } + + if (caller) { + formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan + } + + return formatted +} + +/** + * Format call site location. + */ + +function formatLocation (callSite) { + return relative(basePath, callSite[0]) + + ':' + callSite[1] + + ':' + callSite[2] +} + +/** + * Get the stack as array of call sites. + */ + +function getStack () { + var limit = Error.stackTraceLimit + var obj = {} + var prep = Error.prepareStackTrace + + Error.prepareStackTrace = prepareObjectStackTrace + Error.stackTraceLimit = Math.max(10, limit) + + // capture the stack + Error.captureStackTrace(obj) + + // slice this function off the top + var stack = obj.stack.slice(1) + + Error.prepareStackTrace = prep + Error.stackTraceLimit = limit + + return stack +} + +/** + * Capture call site stack from v8. + */ + +function prepareObjectStackTrace (obj, stack) { + return stack +} + +/** + * Return a wrapped function in a deprecation message. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + var args = createArgumentsString(fn.length) + var stack = getStack() + var site = callSiteLocation(stack[1]) + + site.name = fn.name + + // eslint-disable-next-line no-new-func + var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site', + '"use strict"\n' + + 'return function (' + args + ') {' + + 'log.call(deprecate, message, site)\n' + + 'return fn.apply(this, arguments)\n' + + '}')(fn, log, this, message, site) + + return deprecatedfn +} + +/** + * Wrap property in a deprecation message. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } + + var deprecate = this + var stack = getStack() + var site = callSiteLocation(stack[1]) + + // set site name + site.name = prop + + // convert data descriptor + if ('value' in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message) + } + + var get = descriptor.get + var set = descriptor.set + + // wrap getter + if (typeof get === 'function') { + descriptor.get = function getter () { + log.call(deprecate, message, site) + return get.apply(this, arguments) + } + } + + // wrap setter + if (typeof set === 'function') { + descriptor.set = function setter () { + log.call(deprecate, message, site) + return set.apply(this, arguments) + } + } + + Object.defineProperty(obj, prop, descriptor) +} + +/** + * Create DeprecationError for deprecation + */ + +function DeprecationError (namespace, message, stack) { + var error = new Error() + var stackString + + Object.defineProperty(error, 'constructor', { + value: DeprecationError + }) + + Object.defineProperty(error, 'message', { + configurable: true, + enumerable: false, + value: message, + writable: true + }) + + Object.defineProperty(error, 'name', { + enumerable: false, + configurable: true, + value: 'DeprecationError', + writable: true + }) + + Object.defineProperty(error, 'namespace', { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }) + + Object.defineProperty(error, 'stack', { + configurable: true, + enumerable: false, + get: function () { + if (stackString !== undefined) { + return stackString + } + + // prepare stack trace + return (stackString = createStackString.call(this, stack)) + }, + set: function setter (val) { + stackString = val + } + }) + + return error +} diff --git a/node_modules/depd/lib/browser/index.js b/node_modules/depd/lib/browser/index.js new file mode 100644 index 0000000..6be45cc --- /dev/null +++ b/node_modules/depd/lib/browser/index.js @@ -0,0 +1,77 @@ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = depd + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + function deprecate (message) { + // no-op in browser + } + + deprecate._file = undefined + deprecate._ignored = true + deprecate._namespace = namespace + deprecate._traced = false + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Return a wrapped function in a deprecation message. + * + * This is a no-op version of the wrapper, which does nothing but call + * validation. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + return fn +} + +/** + * Wrap property in a deprecation message. + * + * This is a no-op version of the wrapper, which does nothing but call + * validation. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } +} diff --git a/node_modules/depd/package.json b/node_modules/depd/package.json new file mode 100644 index 0000000..3857e19 --- /dev/null +++ b/node_modules/depd/package.json @@ -0,0 +1,45 @@ +{ + "name": "depd", + "description": "Deprecate all the things", + "version": "2.0.0", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "deprecate", + "deprecated" + ], + "repository": "dougwilson/nodejs-depd", + "browser": "lib/browser/index.js", + "devDependencies": { + "benchmark": "2.1.4", + "beautify-benchmark": "0.2.4", + "eslint": "5.7.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-markdown": "1.0.0-beta.7", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.0.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "5.2.0", + "safe-buffer": "5.1.2", + "uid-safe": "2.1.5" + }, + "files": [ + "lib/", + "History.md", + "LICENSE", + "index.js", + "Readme.md" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail test/", + "test-ci": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter spec test/ && istanbul report lcovonly text-summary", + "test-cov": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter dot test/ && istanbul report lcov text-summary" + } +} diff --git a/node_modules/destroy/LICENSE b/node_modules/destroy/LICENSE new file mode 100644 index 0000000..0e2c35f --- /dev/null +++ b/node_modules/destroy/LICENSE @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com +Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/destroy/README.md b/node_modules/destroy/README.md new file mode 100644 index 0000000..e7701ae --- /dev/null +++ b/node_modules/destroy/README.md @@ -0,0 +1,63 @@ +# destroy + +[![NPM version][npm-image]][npm-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +Destroy a stream. + +This module is meant to ensure a stream gets destroyed, handling different APIs +and Node.js bugs. + +## API + +```js +var destroy = require('destroy') +``` + +### destroy(stream [, suppress]) + +Destroy the given stream, and optionally suppress any future `error` events. + +In most cases, this is identical to a simple `stream.destroy()` call. The rules +are as follows for a given stream: + + 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` + and add a listener to the `open` event to call `stream.close()` if it is + fired. This is for a Node.js bug that will leak a file descriptor if + `.destroy()` is called before `open`. + 2. If the `stream` is an instance of a zlib stream, then call `stream.destroy()` + and close the underlying zlib handle if open, otherwise call `stream.close()`. + This is for consistency across Node.js versions and a Node.js bug that will + leak a native zlib handle. + 3. If the `stream` is not an instance of `Stream`, then nothing happens. + 4. If the `stream` has a `.destroy()` method, then call it. + +The function returns the `stream` passed in as the argument. + +## Example + +```js +var destroy = require('destroy') + +var fs = require('fs') +var stream = fs.createReadStream('package.json') + +// ... and later +destroy(stream) +``` + +[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square +[npm-url]: https://npmjs.org/package/destroy +[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square +[github-url]: https://github.com/stream-utils/destroy/tags +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square +[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master +[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square +[license-url]: LICENSE.md +[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square +[downloads-url]: https://npmjs.org/package/destroy +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/stream-utils/destroy/ci/master?label=ci&style=flat-square +[github-actions-ci-url]: https://github.com/stream-utils/destroy/actions/workflows/ci.yml diff --git a/node_modules/destroy/index.js b/node_modules/destroy/index.js new file mode 100644 index 0000000..7fd5c09 --- /dev/null +++ b/node_modules/destroy/index.js @@ -0,0 +1,209 @@ +/*! + * destroy + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var EventEmitter = require('events').EventEmitter +var ReadStream = require('fs').ReadStream +var Stream = require('stream') +var Zlib = require('zlib') + +/** + * Module exports. + * @public + */ + +module.exports = destroy + +/** + * Destroy the given stream, and optionally suppress any future `error` events. + * + * @param {object} stream + * @param {boolean} suppress + * @public + */ + +function destroy (stream, suppress) { + if (isFsReadStream(stream)) { + destroyReadStream(stream) + } else if (isZlibStream(stream)) { + destroyZlibStream(stream) + } else if (hasDestroy(stream)) { + stream.destroy() + } + + if (isEventEmitter(stream) && suppress) { + stream.removeAllListeners('error') + stream.addListener('error', noop) + } + + return stream +} + +/** + * Destroy a ReadStream. + * + * @param {object} stream + * @private + */ + +function destroyReadStream (stream) { + stream.destroy() + + if (typeof stream.close === 'function') { + // node.js core bug work-around + stream.on('open', onOpenClose) + } +} + +/** + * Close a Zlib stream. + * + * Zlib streams below Node.js 4.5.5 have a buggy implementation + * of .close() when zlib encountered an error. + * + * @param {object} stream + * @private + */ + +function closeZlibStream (stream) { + if (stream._hadError === true) { + var prop = stream._binding === null + ? '_binding' + : '_handle' + + stream[prop] = { + close: function () { this[prop] = null } + } + } + + stream.close() +} + +/** + * Destroy a Zlib stream. + * + * Zlib streams don't have a destroy function in Node.js 6. On top of that + * simply calling destroy on a zlib stream in Node.js 8+ will result in a + * memory leak. So until that is fixed, we need to call both close AND destroy. + * + * PR to fix memory leak: https://github.com/nodejs/node/pull/23734 + * + * In Node.js 6+8, it's important that destroy is called before close as the + * stream would otherwise emit the error 'zlib binding closed'. + * + * @param {object} stream + * @private + */ + +function destroyZlibStream (stream) { + if (typeof stream.destroy === 'function') { + // node.js core bug work-around + // istanbul ignore if: node.js 0.8 + if (stream._binding) { + // node.js < 0.10.0 + stream.destroy() + if (stream._processing) { + stream._needDrain = true + stream.once('drain', onDrainClearBinding) + } else { + stream._binding.clear() + } + } else if (stream._destroy && stream._destroy !== Stream.Transform.prototype._destroy) { + // node.js >= 12, ^11.1.0, ^10.15.1 + stream.destroy() + } else if (stream._destroy && typeof stream.close === 'function') { + // node.js 7, 8 + stream.destroyed = true + stream.close() + } else { + // fallback + // istanbul ignore next + stream.destroy() + } + } else if (typeof stream.close === 'function') { + // node.js < 8 fallback + closeZlibStream(stream) + } +} + +/** + * Determine if stream has destroy. + * @private + */ + +function hasDestroy (stream) { + return stream instanceof Stream && + typeof stream.destroy === 'function' +} + +/** + * Determine if val is EventEmitter. + * @private + */ + +function isEventEmitter (val) { + return val instanceof EventEmitter +} + +/** + * Determine if stream is fs.ReadStream stream. + * @private + */ + +function isFsReadStream (stream) { + return stream instanceof ReadStream +} + +/** + * Determine if stream is Zlib stream. + * @private + */ + +function isZlibStream (stream) { + return stream instanceof Zlib.Gzip || + stream instanceof Zlib.Gunzip || + stream instanceof Zlib.Deflate || + stream instanceof Zlib.DeflateRaw || + stream instanceof Zlib.Inflate || + stream instanceof Zlib.InflateRaw || + stream instanceof Zlib.Unzip +} + +/** + * No-op function. + * @private + */ + +function noop () {} + +/** + * On drain handler to clear binding. + * @private + */ + +// istanbul ignore next: node.js 0.8 +function onDrainClearBinding () { + this._binding.clear() +} + +/** + * On open handler to close stream. + * @private + */ + +function onOpenClose () { + if (typeof this.fd === 'number') { + // actually close down the fd + this.close() + } +} diff --git a/node_modules/destroy/package.json b/node_modules/destroy/package.json new file mode 100644 index 0000000..c85e438 --- /dev/null +++ b/node_modules/destroy/package.json @@ -0,0 +1,48 @@ +{ + "name": "destroy", + "description": "destroy a stream if possible", + "version": "1.2.0", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com", + "twitter": "https://twitter.com/jongleberry" + }, + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "repository": "stream-utils/destroy", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "files": [ + "index.js", + "LICENSE" + ], + "keywords": [ + "stream", + "streams", + "destroy", + "cleanup", + "leak", + "fd" + ] +} diff --git a/node_modules/dunder-proto/.eslintrc b/node_modules/dunder-proto/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/dunder-proto/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/dunder-proto/.github/FUNDING.yml b/node_modules/dunder-proto/.github/FUNDING.yml new file mode 100644 index 0000000..8a1d7b0 --- /dev/null +++ b/node_modules/dunder-proto/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/dunder-proto +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/dunder-proto/.nycrc b/node_modules/dunder-proto/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/dunder-proto/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/dunder-proto/CHANGELOG.md b/node_modules/dunder-proto/CHANGELOG.md new file mode 100644 index 0000000..9b8b2f8 --- /dev/null +++ b/node_modules/dunder-proto/CHANGELOG.md @@ -0,0 +1,24 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/es-shims/dunder-proto/compare/v1.0.0...v1.0.1) - 2024-12-16 + +### Commits + +- [Fix] do not crash when `--disable-proto=throw` [`6c367d9`](https://github.com/es-shims/dunder-proto/commit/6c367d919bc1604778689a297bbdbfea65752847) +- [Tests] ensure noproto tests only use the current version of dunder-proto [`b02365b`](https://github.com/es-shims/dunder-proto/commit/b02365b9cf889c4a2cac7be0c3cfc90a789af36c) +- [Dev Deps] update `@arethetypeswrong/cli`, `@types/tape` [`e3c5c3b`](https://github.com/es-shims/dunder-proto/commit/e3c5c3bd81cf8cef7dff2eca19e558f0e307f666) +- [Deps] update `call-bind-apply-helpers` [`19f1da0`](https://github.com/es-shims/dunder-proto/commit/19f1da028b8dd0d05c85bfd8f7eed2819b686450) + +## v1.0.0 - 2024-12-06 + +### Commits + +- Initial implementation, tests, readme, types [`a5b74b0`](https://github.com/es-shims/dunder-proto/commit/a5b74b0082f5270cb0905cd9a2e533cee7498373) +- Initial commit [`73fb5a3`](https://github.com/es-shims/dunder-proto/commit/73fb5a353b51ac2ab00c9fdeb0114daffd4c07a8) +- npm init [`80152dc`](https://github.com/es-shims/dunder-proto/commit/80152dc98155da4eb046d9f67a87ed96e8280a1d) +- Only apps should have lockfiles [`03e6660`](https://github.com/es-shims/dunder-proto/commit/03e6660a1d70dc401f3e217a031475ec537243dd) diff --git a/node_modules/dunder-proto/LICENSE b/node_modules/dunder-proto/LICENSE new file mode 100644 index 0000000..34995e7 --- /dev/null +++ b/node_modules/dunder-proto/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 ECMAScript Shims + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/dunder-proto/README.md b/node_modules/dunder-proto/README.md new file mode 100644 index 0000000..44b80a2 --- /dev/null +++ b/node_modules/dunder-proto/README.md @@ -0,0 +1,54 @@ +# dunder-proto [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +If available, the `Object.prototype.__proto__` accessor and mutator, call-bound. + +## Getting started + +```sh +npm install --save dunder-proto +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getDunder = require('dunder-proto/get'); +const setDunder = require('dunder-proto/set'); + +const obj = {}; + +assert.equal('toString' in obj, true); +assert.equal(getDunder(obj), Object.prototype); + +setDunder(obj, null); + +assert.equal('toString' in obj, false); +assert.equal(getDunder(obj), null); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/dunder-proto +[npm-version-svg]: https://versionbadg.es/es-shims/dunder-proto.svg +[deps-svg]: https://david-dm.org/es-shims/dunder-proto.svg +[deps-url]: https://david-dm.org/es-shims/dunder-proto +[dev-deps-svg]: https://david-dm.org/es-shims/dunder-proto/dev-status.svg +[dev-deps-url]: https://david-dm.org/es-shims/dunder-proto#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/dunder-proto.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/dunder-proto.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/dunder-proto.svg +[downloads-url]: https://npm-stat.com/charts.html?package=dunder-proto +[codecov-image]: https://codecov.io/gh/es-shims/dunder-proto/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/es-shims/dunder-proto/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/dunder-proto +[actions-url]: https://github.com/es-shims/dunder-proto/actions diff --git a/node_modules/dunder-proto/get.d.ts b/node_modules/dunder-proto/get.d.ts new file mode 100644 index 0000000..c7e14d2 --- /dev/null +++ b/node_modules/dunder-proto/get.d.ts @@ -0,0 +1,5 @@ +declare function getDunderProto(target: {}): object | null; + +declare const x: false | typeof getDunderProto; + +export = x; \ No newline at end of file diff --git a/node_modules/dunder-proto/get.js b/node_modules/dunder-proto/get.js new file mode 100644 index 0000000..45093df --- /dev/null +++ b/node_modules/dunder-proto/get.js @@ -0,0 +1,30 @@ +'use strict'; + +var callBind = require('call-bind-apply-helpers'); +var gOPD = require('gopd'); + +var hasProtoAccessor; +try { + // eslint-disable-next-line no-extra-parens, no-proto + hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype; +} catch (e) { + if (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') { + throw e; + } +} + +// eslint-disable-next-line no-extra-parens +var desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__')); + +var $Object = Object; +var $getPrototypeOf = $Object.getPrototypeOf; + +/** @type {import('./get')} */ +module.exports = desc && typeof desc.get === 'function' + ? callBind([desc.get]) + : typeof $getPrototypeOf === 'function' + ? /** @type {import('./get')} */ function getDunder(value) { + // eslint-disable-next-line eqeqeq + return $getPrototypeOf(value == null ? value : $Object(value)); + } + : false; diff --git a/node_modules/dunder-proto/package.json b/node_modules/dunder-proto/package.json new file mode 100644 index 0000000..04a4036 --- /dev/null +++ b/node_modules/dunder-proto/package.json @@ -0,0 +1,76 @@ +{ + "name": "dunder-proto", + "version": "1.0.1", + "description": "If available, the `Object.prototype.__proto__` accessor and mutator, call-bound", + "main": false, + "exports": { + "./get": "./get.js", + "./set": "./set.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/es-shims/dunder-proto.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/es-shims/dunder-proto/issues" + }, + "homepage": "https://github.com/es-shims/dunder-proto#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/tape": "^5.7.0", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "testling": { + "files": "test/index.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/dunder-proto/set.d.ts b/node_modules/dunder-proto/set.d.ts new file mode 100644 index 0000000..16bfdfe --- /dev/null +++ b/node_modules/dunder-proto/set.d.ts @@ -0,0 +1,5 @@ +declare function setDunderProto

(target: {}, proto: P): P; + +declare const x: false | typeof setDunderProto; + +export = x; \ No newline at end of file diff --git a/node_modules/dunder-proto/set.js b/node_modules/dunder-proto/set.js new file mode 100644 index 0000000..6085b6e --- /dev/null +++ b/node_modules/dunder-proto/set.js @@ -0,0 +1,35 @@ +'use strict'; + +var callBind = require('call-bind-apply-helpers'); +var gOPD = require('gopd'); +var $TypeError = require('es-errors/type'); + +/** @type {{ __proto__?: object | null }} */ +var obj = {}; +try { + obj.__proto__ = null; // eslint-disable-line no-proto +} catch (e) { + if (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') { + throw e; + } +} + +var hasProtoMutator = !('toString' in obj); + +// eslint-disable-next-line no-extra-parens +var desc = gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__')); + +/** @type {import('./set')} */ +module.exports = hasProtoMutator && ( +// eslint-disable-next-line no-extra-parens + (!!desc && typeof desc.set === 'function' && /** @type {import('./set')} */ (callBind([desc.set]))) + || /** @type {import('./set')} */ function setDunder(object, proto) { + // this is node v0.10 or older, which doesn't have Object.setPrototypeOf and has undeniable __proto__ + if (object == null) { // eslint-disable-line eqeqeq + throw new $TypeError('set Object.prototype.__proto__ called on null or undefined'); + } + // eslint-disable-next-line no-proto, no-param-reassign, no-extra-parens + /** @type {{ __proto__?: object | null }} */ (object).__proto__ = proto; + return proto; + } +); diff --git a/node_modules/dunder-proto/test/get.js b/node_modules/dunder-proto/test/get.js new file mode 100644 index 0000000..253f183 --- /dev/null +++ b/node_modules/dunder-proto/test/get.js @@ -0,0 +1,34 @@ +'use strict'; + +var test = require('tape'); + +var getDunderProto = require('../get'); + +test('getDunderProto', { skip: !getDunderProto }, function (t) { + if (!getDunderProto) { + throw 'should never happen; this is just for type narrowing'; // eslint-disable-line no-throw-literal + } + + // @ts-expect-error + t['throws'](function () { getDunderProto(); }, TypeError, 'throws if no argument'); + // @ts-expect-error + t['throws'](function () { getDunderProto(undefined); }, TypeError, 'throws with undefined'); + // @ts-expect-error + t['throws'](function () { getDunderProto(null); }, TypeError, 'throws with null'); + + t.equal(getDunderProto({}), Object.prototype); + t.equal(getDunderProto([]), Array.prototype); + t.equal(getDunderProto(function () {}), Function.prototype); + t.equal(getDunderProto(/./g), RegExp.prototype); + t.equal(getDunderProto(42), Number.prototype); + t.equal(getDunderProto(true), Boolean.prototype); + t.equal(getDunderProto('foo'), String.prototype); + + t.end(); +}); + +test('no dunder proto', { skip: !!getDunderProto }, function (t) { + t.notOk('__proto__' in Object.prototype, 'no __proto__ in Object.prototype'); + + t.end(); +}); diff --git a/node_modules/dunder-proto/test/index.js b/node_modules/dunder-proto/test/index.js new file mode 100644 index 0000000..08ff36f --- /dev/null +++ b/node_modules/dunder-proto/test/index.js @@ -0,0 +1,4 @@ +'use strict'; + +require('./get'); +require('./set'); diff --git a/node_modules/dunder-proto/test/set.js b/node_modules/dunder-proto/test/set.js new file mode 100644 index 0000000..c3bfe4d --- /dev/null +++ b/node_modules/dunder-proto/test/set.js @@ -0,0 +1,50 @@ +'use strict'; + +var test = require('tape'); + +var setDunderProto = require('../set'); + +test('setDunderProto', { skip: !setDunderProto }, function (t) { + if (!setDunderProto) { + throw 'should never happen; this is just for type narrowing'; // eslint-disable-line no-throw-literal + } + + // @ts-expect-error + t['throws'](function () { setDunderProto(); }, TypeError, 'throws if no arguments'); + // @ts-expect-error + t['throws'](function () { setDunderProto(undefined); }, TypeError, 'throws with undefined and nothing'); + // @ts-expect-error + t['throws'](function () { setDunderProto(undefined, undefined); }, TypeError, 'throws with undefined and undefined'); + // @ts-expect-error + t['throws'](function () { setDunderProto(null); }, TypeError, 'throws with null and undefined'); + // @ts-expect-error + t['throws'](function () { setDunderProto(null, undefined); }, TypeError, 'throws with null and undefined'); + + /** @type {{ inherited?: boolean }} */ + var obj = {}; + t.ok('toString' in obj, 'object initially has toString'); + + setDunderProto(obj, null); + t.notOk('toString' in obj, 'object no longer has toString'); + + t.notOk('inherited' in obj, 'object lacks inherited property'); + setDunderProto(obj, { inherited: true }); + t.equal(obj.inherited, true, 'object has inherited property'); + + t.end(); +}); + +test('no dunder proto', { skip: !!setDunderProto }, function (t) { + if ('__proto__' in Object.prototype) { + t['throws']( + // @ts-expect-error + function () { ({}).__proto__ = null; }, // eslint-disable-line no-proto + Error, + 'throws when setting Object.prototype.__proto__' + ); + } else { + t.notOk('__proto__' in Object.prototype, 'no __proto__ in Object.prototype'); + } + + t.end(); +}); diff --git a/node_modules/dunder-proto/tsconfig.json b/node_modules/dunder-proto/tsconfig.json new file mode 100644 index 0000000..dabbe23 --- /dev/null +++ b/node_modules/dunder-proto/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "ES2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/ee-first/LICENSE b/node_modules/ee-first/LICENSE new file mode 100644 index 0000000..a7ae8ee --- /dev/null +++ b/node_modules/ee-first/LICENSE @@ -0,0 +1,22 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/ee-first/README.md b/node_modules/ee-first/README.md new file mode 100644 index 0000000..cbd2478 --- /dev/null +++ b/node_modules/ee-first/README.md @@ -0,0 +1,80 @@ +# EE First + +[![NPM version][npm-image]][npm-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] +[![Gittip][gittip-image]][gittip-url] + +Get the first event in a set of event emitters and event pairs, +then clean up after itself. + +## Install + +```sh +$ npm install ee-first +``` + +## API + +```js +var first = require('ee-first') +``` + +### first(arr, listener) + +Invoke `listener` on the first event from the list specified in `arr`. `arr` is +an array of arrays, with each array in the format `[ee, ...event]`. `listener` +will be called only once, the first time any of the given events are emitted. If +`error` is one of the listened events, then if that fires first, the `listener` +will be given the `err` argument. + +The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the +first argument emitted from an `error` event, if applicable; `ee` is the event +emitter that fired; `event` is the string event name that fired; and `args` is an +array of the arguments that were emitted on the event. + +```js +var ee1 = new EventEmitter() +var ee2 = new EventEmitter() + +first([ + [ee1, 'close', 'end', 'error'], + [ee2, 'error'] +], function (err, ee, event, args) { + // listener invoked +}) +``` + +#### .cancel() + +The group of listeners can be cancelled before being invoked and have all the event +listeners removed from the underlying event emitters. + +```js +var thunk = first([ + [ee1, 'close', 'end', 'error'], + [ee2, 'error'] +], function (err, ee, event, args) { + // listener invoked +}) + +// cancel and clean up +thunk.cancel() +``` + +[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square +[npm-url]: https://npmjs.org/package/ee-first +[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square +[github-url]: https://github.com/jonathanong/ee-first/tags +[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square +[travis-url]: https://travis-ci.org/jonathanong/ee-first +[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square +[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master +[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square +[license-url]: LICENSE.md +[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square +[downloads-url]: https://npmjs.org/package/ee-first +[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square +[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/node_modules/ee-first/index.js b/node_modules/ee-first/index.js new file mode 100644 index 0000000..501287c --- /dev/null +++ b/node_modules/ee-first/index.js @@ -0,0 +1,95 @@ +/*! + * ee-first + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = first + +/** + * Get the first event in a set of event emitters and event pairs. + * + * @param {array} stuff + * @param {function} done + * @public + */ + +function first(stuff, done) { + if (!Array.isArray(stuff)) + throw new TypeError('arg must be an array of [ee, events...] arrays') + + var cleanups = [] + + for (var i = 0; i < stuff.length; i++) { + var arr = stuff[i] + + if (!Array.isArray(arr) || arr.length < 2) + throw new TypeError('each array member must be [ee, events...]') + + var ee = arr[0] + + for (var j = 1; j < arr.length; j++) { + var event = arr[j] + var fn = listener(event, callback) + + // listen to the event + ee.on(event, fn) + // push this listener to the list of cleanups + cleanups.push({ + ee: ee, + event: event, + fn: fn, + }) + } + } + + function callback() { + cleanup() + done.apply(null, arguments) + } + + function cleanup() { + var x + for (var i = 0; i < cleanups.length; i++) { + x = cleanups[i] + x.ee.removeListener(x.event, x.fn) + } + } + + function thunk(fn) { + done = fn + } + + thunk.cancel = cleanup + + return thunk +} + +/** + * Create the event listener. + * @private + */ + +function listener(event, done) { + return function onevent(arg1) { + var args = new Array(arguments.length) + var ee = this + var err = event === 'error' + ? arg1 + : null + + // copy args to prevent arguments escaping scope + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + done(err, ee, event, args) + } +} diff --git a/node_modules/ee-first/package.json b/node_modules/ee-first/package.json new file mode 100644 index 0000000..b6d0b7d --- /dev/null +++ b/node_modules/ee-first/package.json @@ -0,0 +1,29 @@ +{ + "name": "ee-first", + "description": "return the first event in a set of ee/event pairs", + "version": "1.1.1", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com", + "twitter": "https://twitter.com/jongleberry" + }, + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "repository": "jonathanong/ee-first", + "devDependencies": { + "istanbul": "0.3.9", + "mocha": "2.2.5" + }, + "files": [ + "index.js", + "LICENSE" + ], + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/encodeurl/LICENSE b/node_modules/encodeurl/LICENSE new file mode 100644 index 0000000..8812229 --- /dev/null +++ b/node_modules/encodeurl/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/encodeurl/README.md b/node_modules/encodeurl/README.md new file mode 100644 index 0000000..3842493 --- /dev/null +++ b/node_modules/encodeurl/README.md @@ -0,0 +1,109 @@ +# Encode URL + +Encode a URL to a percent-encoded form, excluding already-encoded sequences. + +## Installation + +```sh +npm install encodeurl +``` + +## API + +```js +var encodeUrl = require('encodeurl') +``` + +### encodeUrl(url) + +Encode a URL to a percent-encoded form, excluding already-encoded sequences. + +This function accepts a URL and encodes all the non-URL code points (as UTF-8 byte sequences). It will not encode the "%" character unless it is not part of a valid sequence (`%20` will be left as-is, but `%foo` will be encoded as `%25foo`). + +This encode is meant to be "safe" and does not throw errors. It will try as hard as it can to properly encode the given URL, including replacing any raw, unpaired surrogate pairs with the Unicode replacement character prior to encoding. + +## Examples + +### Encode a URL containing user-controlled data + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') + +http.createServer(function onRequest (req, res) { + // get encoded form of inbound url + var url = encodeUrl(req.url) + + // create html message + var body = '

Location ' + escapeHtml(url) + ' not found

' + + // send a 404 + res.statusCode = 404 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.end(body, 'utf-8') +}) +``` + +### Encode a URL for use in a header field + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var url = require('url') + +http.createServer(function onRequest (req, res) { + // parse inbound url + var href = url.parse(req) + + // set new host for redirect + href.host = 'localhost' + href.protocol = 'https:' + href.slashes = true + + // create location header + var location = encodeUrl(url.format(href)) + + // create html message + var body = '

Redirecting to new site: ' + escapeHtml(location) + '

' + + // send a 301 + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.setHeader('Location', location) + res.end(body, 'utf-8') +}) +``` + +## Similarities + +This function is _similar_ to the intrinsic function `encodeURI`. However, it will not encode: + +* The `\`, `^`, or `|` characters +* The `%` character when it's part of a valid sequence +* `[` and `]` (for IPv6 hostnames) +* Replaces raw, unpaired surrogate pairs with the Unicode replacement character + +As a result, the encoding aligns closely with the behavior in the [WHATWG URL specification][whatwg-url]. However, this package only encodes strings and does not do any URL parsing or formatting. + +It is expected that any output from `new URL(url)` will not change when used with this package, as the output has already been encoded. Additionally, if we were to encode before `new URL(url)`, we do not expect the before and after encoded formats to be parsed any differently. + +## Testing + +```sh +$ npm test +$ npm run lint +``` + +## References + +- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax][rfc-3986] +- [WHATWG URL Living Standard][whatwg-url] + +[rfc-3986]: https://tools.ietf.org/html/rfc3986 +[whatwg-url]: https://url.spec.whatwg.org/ + +## License + +[MIT](LICENSE) diff --git a/node_modules/encodeurl/index.js b/node_modules/encodeurl/index.js new file mode 100644 index 0000000..a49ee5a --- /dev/null +++ b/node_modules/encodeurl/index.js @@ -0,0 +1,60 @@ +/*! + * encodeurl + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = encodeUrl + +/** + * RegExp to match non-URL code points, *after* encoding (i.e. not including "%") + * and including invalid escape sequences. + * @private + */ + +var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g + +/** + * RegExp to match unmatched surrogate pair. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g + +/** + * String to replace unmatched surrogate pair with. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2' + +/** + * Encode a URL to a percent-encoded form, excluding already-encoded sequences. + * + * This function will take an already-encoded URL and encode all the non-URL + * code points. This function will not encode the "%" character unless it is + * not part of a valid sequence (`%20` will be left as-is, but `%foo` will + * be encoded as `%25foo`). + * + * This encode is meant to be "safe" and does not throw errors. It will try as + * hard as it can to properly encode the given URL, including replacing any raw, + * unpaired surrogate pairs with the Unicode replacement character prior to + * encoding. + * + * @param {string} url + * @return {string} + * @public + */ + +function encodeUrl (url) { + return String(url) + .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE) + .replace(ENCODE_CHARS_REGEXP, encodeURI) +} diff --git a/node_modules/encodeurl/package.json b/node_modules/encodeurl/package.json new file mode 100644 index 0000000..3133822 --- /dev/null +++ b/node_modules/encodeurl/package.json @@ -0,0 +1,40 @@ +{ + "name": "encodeurl", + "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", + "version": "2.0.0", + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "keywords": [ + "encode", + "encodeurl", + "url" + ], + "repository": "pillarjs/encodeurl", + "devDependencies": { + "eslint": "5.11.1", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.0.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "2.5.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/es-define-property/.eslintrc b/node_modules/es-define-property/.eslintrc new file mode 100644 index 0000000..46f3b12 --- /dev/null +++ b/node_modules/es-define-property/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": ["error", { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/es-define-property/.github/FUNDING.yml b/node_modules/es-define-property/.github/FUNDING.yml new file mode 100644 index 0000000..4445451 --- /dev/null +++ b/node_modules/es-define-property/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-define-property +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/es-define-property/.nycrc b/node_modules/es-define-property/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/es-define-property/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/es-define-property/CHANGELOG.md b/node_modules/es-define-property/CHANGELOG.md new file mode 100644 index 0000000..5f60cc0 --- /dev/null +++ b/node_modules/es-define-property/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/es-define-property/compare/v1.0.0...v1.0.1) - 2024-12-06 + +### Commits + +- [types] use shared tsconfig [`954a663`](https://github.com/ljharb/es-define-property/commit/954a66360326e508a0e5daa4b07493d58f5e110e) +- [actions] split out node 10-20, and 20+ [`3a8e84b`](https://github.com/ljharb/es-define-property/commit/3a8e84b23883f26ff37b3e82ff283834228e18c6) +- [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/get-intrinsic`, `@types/tape`, `auto-changelog`, `gopd`, `tape` [`86ae27b`](https://github.com/ljharb/es-define-property/commit/86ae27bb8cc857b23885136fad9cbe965ae36612) +- [Refactor] avoid using `get-intrinsic` [`02480c0`](https://github.com/ljharb/es-define-property/commit/02480c0353ef6118965282977c3864aff53d98b1) +- [Tests] replace `aud` with `npm audit` [`f6093ff`](https://github.com/ljharb/es-define-property/commit/f6093ff74ab51c98015c2592cd393bd42478e773) +- [Tests] configure testling [`7139e66`](https://github.com/ljharb/es-define-property/commit/7139e66959247a56086d9977359caef27c6849e7) +- [Dev Deps] update `tape` [`b901b51`](https://github.com/ljharb/es-define-property/commit/b901b511a75e001a40ce1a59fef7d9ffcfc87482) +- [Tests] fix types in tests [`469d269`](https://github.com/ljharb/es-define-property/commit/469d269fd141b1e773ec053a9fa35843493583e0) +- [Dev Deps] add missing peer dep [`733acfb`](https://github.com/ljharb/es-define-property/commit/733acfb0c4c96edf337e470b89a25a5b3724c352) + +## v1.0.0 - 2024-02-12 + +### Commits + +- Initial implementation, tests, readme, types [`3e154e1`](https://github.com/ljharb/es-define-property/commit/3e154e11a2fee09127220f5e503bf2c0a31dd480) +- Initial commit [`07d98de`](https://github.com/ljharb/es-define-property/commit/07d98de34a4dc31ff5e83a37c0c3f49e0d85cd50) +- npm init [`c4eb634`](https://github.com/ljharb/es-define-property/commit/c4eb6348b0d3886aac36cef34ad2ee0665ea6f3e) +- Only apps should have lockfiles [`7af86ec`](https://github.com/ljharb/es-define-property/commit/7af86ec1d311ec0b17fdfe616a25f64276903856) diff --git a/node_modules/es-define-property/LICENSE b/node_modules/es-define-property/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/es-define-property/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/es-define-property/README.md b/node_modules/es-define-property/README.md new file mode 100644 index 0000000..9b291bd --- /dev/null +++ b/node_modules/es-define-property/README.md @@ -0,0 +1,49 @@ +# es-define-property [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.defineProperty`, but not IE 8's broken one. + +## Example + +```js +const assert = require('assert'); + +const $defineProperty = require('es-define-property'); + +if ($defineProperty) { + assert.equal($defineProperty, Object.defineProperty); +} else if (Object.defineProperty) { + assert.equal($defineProperty, false, 'this is IE 8'); +} else { + assert.equal($defineProperty, false, 'this is an ES3 engine'); +} +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-define-property +[npm-version-svg]: https://versionbadg.es/ljharb/es-define-property.svg +[deps-svg]: https://david-dm.org/ljharb/es-define-property.svg +[deps-url]: https://david-dm.org/ljharb/es-define-property +[dev-deps-svg]: https://david-dm.org/ljharb/es-define-property/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-define-property#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-define-property.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-define-property.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-define-property.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-define-property +[codecov-image]: https://codecov.io/gh/ljharb/es-define-property/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-define-property/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-define-property +[actions-url]: https://github.com/ljharb/es-define-property/actions diff --git a/node_modules/es-define-property/index.d.ts b/node_modules/es-define-property/index.d.ts new file mode 100644 index 0000000..6012247 --- /dev/null +++ b/node_modules/es-define-property/index.d.ts @@ -0,0 +1,3 @@ +declare const defineProperty: false | typeof Object.defineProperty; + +export = defineProperty; \ No newline at end of file diff --git a/node_modules/es-define-property/index.js b/node_modules/es-define-property/index.js new file mode 100644 index 0000000..e0a2925 --- /dev/null +++ b/node_modules/es-define-property/index.js @@ -0,0 +1,14 @@ +'use strict'; + +/** @type {import('.')} */ +var $defineProperty = Object.defineProperty || false; +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = false; + } +} + +module.exports = $defineProperty; diff --git a/node_modules/es-define-property/package.json b/node_modules/es-define-property/package.json new file mode 100644 index 0000000..fbed187 --- /dev/null +++ b/node_modules/es-define-property/package.json @@ -0,0 +1,81 @@ +{ + "name": "es-define-property", + "version": "1.0.1", + "description": "`Object.defineProperty`, but not IE 8's broken one.", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-define-property.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "define", + "property", + "defineProperty", + "Object.defineProperty" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-define-property/issues" + }, + "homepage": "https://github.com/ljharb/es-define-property#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/gopd": "^1.0.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "gopd": "^1.2.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/es-define-property/test/index.js b/node_modules/es-define-property/test/index.js new file mode 100644 index 0000000..b4b4688 --- /dev/null +++ b/node_modules/es-define-property/test/index.js @@ -0,0 +1,56 @@ +'use strict'; + +var $defineProperty = require('../'); + +var test = require('tape'); +var gOPD = require('gopd'); + +test('defineProperty: supported', { skip: !$defineProperty }, function (t) { + t.plan(4); + + t.equal(typeof $defineProperty, 'function', 'defineProperty is supported'); + if ($defineProperty && gOPD) { // this `if` check is just to shut TS up + /** @type {{ a: number, b?: number, c?: number }} */ + var o = { a: 1 }; + + $defineProperty(o, 'b', { enumerable: true, value: 2 }); + t.deepEqual( + gOPD(o, 'b'), + { + configurable: false, + enumerable: true, + value: 2, + writable: false + }, + 'property descriptor is as expected' + ); + + $defineProperty(o, 'c', { enumerable: false, value: 3, writable: true }); + t.deepEqual( + gOPD(o, 'c'), + { + configurable: false, + enumerable: false, + value: 3, + writable: true + }, + 'property descriptor is as expected' + ); + } + + t.equal($defineProperty, Object.defineProperty, 'defineProperty is Object.defineProperty'); + + t.end(); +}); + +test('defineProperty: not supported', { skip: !!$defineProperty }, function (t) { + t.notOk($defineProperty, 'defineProperty is not supported'); + + t.match( + typeof $defineProperty, + /^(?:undefined|boolean)$/, + '`typeof defineProperty` is `undefined` or `boolean`' + ); + + t.end(); +}); diff --git a/node_modules/es-define-property/tsconfig.json b/node_modules/es-define-property/tsconfig.json new file mode 100644 index 0000000..5a49992 --- /dev/null +++ b/node_modules/es-define-property/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2022", + }, + "exclude": [ + "coverage", + "test/list-exports" + ], +} diff --git a/node_modules/es-errors/.eslintrc b/node_modules/es-errors/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/es-errors/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/es-errors/.github/FUNDING.yml b/node_modules/es-errors/.github/FUNDING.yml new file mode 100644 index 0000000..f1b8805 --- /dev/null +++ b/node_modules/es-errors/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-errors +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/es-errors/CHANGELOG.md b/node_modules/es-errors/CHANGELOG.md new file mode 100644 index 0000000..204a9e9 --- /dev/null +++ b/node_modules/es-errors/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.3.0](https://github.com/ljharb/es-errors/compare/v1.2.1...v1.3.0) - 2024-02-05 + +### Commits + +- [New] add `EvalError` and `URIError` [`1927627`](https://github.com/ljharb/es-errors/commit/1927627ba68cb6c829d307231376c967db53acdf) + +## [v1.2.1](https://github.com/ljharb/es-errors/compare/v1.2.0...v1.2.1) - 2024-02-04 + +### Commits + +- [Fix] add missing `exports` entry [`5bb5f28`](https://github.com/ljharb/es-errors/commit/5bb5f280f98922701109d6ebb82eea2257cecc7e) + +## [v1.2.0](https://github.com/ljharb/es-errors/compare/v1.1.0...v1.2.0) - 2024-02-04 + +### Commits + +- [New] add `ReferenceError` [`6d8cf5b`](https://github.com/ljharb/es-errors/commit/6d8cf5bbb6f3f598d02cf6f30e468ba2caa8e143) + +## [v1.1.0](https://github.com/ljharb/es-errors/compare/v1.0.0...v1.1.0) - 2024-02-04 + +### Commits + +- [New] add base Error [`2983ab6`](https://github.com/ljharb/es-errors/commit/2983ab65f7bc5441276cb021dc3aa03c78881698) + +## v1.0.0 - 2024-02-03 + +### Commits + +- Initial implementation, tests, readme, type [`8f47631`](https://github.com/ljharb/es-errors/commit/8f476317e9ad76f40ad648081829b1a1a3a1288b) +- Initial commit [`ea5d099`](https://github.com/ljharb/es-errors/commit/ea5d099ef18e550509ab9e2be000526afd81c385) +- npm init [`6f5ebf9`](https://github.com/ljharb/es-errors/commit/6f5ebf9cead474dadd72b9e63dad315820a089ae) +- Only apps should have lockfiles [`e1a0aeb`](https://github.com/ljharb/es-errors/commit/e1a0aeb7b80f5cfc56be54d6b2100e915d47def8) +- [meta] add `sideEffects` flag [`a9c7d46`](https://github.com/ljharb/es-errors/commit/a9c7d460a492f1d8a241c836bc25a322a19cc043) diff --git a/node_modules/es-errors/LICENSE b/node_modules/es-errors/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/es-errors/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/es-errors/README.md b/node_modules/es-errors/README.md new file mode 100644 index 0000000..8dbfacf --- /dev/null +++ b/node_modules/es-errors/README.md @@ -0,0 +1,55 @@ +# es-errors [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A simple cache for a few of the JS Error constructors. + +## Example + +```js +const assert = require('assert'); + +const Base = require('es-errors'); +const Eval = require('es-errors/eval'); +const Range = require('es-errors/range'); +const Ref = require('es-errors/ref'); +const Syntax = require('es-errors/syntax'); +const Type = require('es-errors/type'); +const URI = require('es-errors/uri'); + +assert.equal(Base, Error); +assert.equal(Eval, EvalError); +assert.equal(Range, RangeError); +assert.equal(Ref, ReferenceError); +assert.equal(Syntax, SyntaxError); +assert.equal(Type, TypeError); +assert.equal(URI, URIError); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-errors +[npm-version-svg]: https://versionbadg.es/ljharb/es-errors.svg +[deps-svg]: https://david-dm.org/ljharb/es-errors.svg +[deps-url]: https://david-dm.org/ljharb/es-errors +[dev-deps-svg]: https://david-dm.org/ljharb/es-errors/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-errors#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-errors.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-errors.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-errors.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-errors +[codecov-image]: https://codecov.io/gh/ljharb/es-errors/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-errors/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-errors +[actions-url]: https://github.com/ljharb/es-errors/actions diff --git a/node_modules/es-errors/eval.d.ts b/node_modules/es-errors/eval.d.ts new file mode 100644 index 0000000..e4210e0 --- /dev/null +++ b/node_modules/es-errors/eval.d.ts @@ -0,0 +1,3 @@ +declare const EvalError: EvalErrorConstructor; + +export = EvalError; diff --git a/node_modules/es-errors/eval.js b/node_modules/es-errors/eval.js new file mode 100644 index 0000000..725ccb6 --- /dev/null +++ b/node_modules/es-errors/eval.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./eval')} */ +module.exports = EvalError; diff --git a/node_modules/es-errors/index.d.ts b/node_modules/es-errors/index.d.ts new file mode 100644 index 0000000..69bdbc9 --- /dev/null +++ b/node_modules/es-errors/index.d.ts @@ -0,0 +1,3 @@ +declare const Error: ErrorConstructor; + +export = Error; diff --git a/node_modules/es-errors/index.js b/node_modules/es-errors/index.js new file mode 100644 index 0000000..cc0c521 --- /dev/null +++ b/node_modules/es-errors/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Error; diff --git a/node_modules/es-errors/package.json b/node_modules/es-errors/package.json new file mode 100644 index 0000000..ff8c2a5 --- /dev/null +++ b/node_modules/es-errors/package.json @@ -0,0 +1,80 @@ +{ + "name": "es-errors", + "version": "1.3.0", + "description": "A simple cache for a few of the JS Error constructors.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./eval": "./eval.js", + "./range": "./range.js", + "./ref": "./ref.js", + "./syntax": "./syntax.js", + "./type": "./type.js", + "./uri": "./uri.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "aud --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-errors.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "error", + "typeerror", + "syntaxerror", + "rangeerror" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-errors/issues" + }, + "homepage": "https://github.com/ljharb/es-errors#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eclint": "^2.8.1", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/es-errors/range.d.ts b/node_modules/es-errors/range.d.ts new file mode 100644 index 0000000..3a12e86 --- /dev/null +++ b/node_modules/es-errors/range.d.ts @@ -0,0 +1,3 @@ +declare const RangeError: RangeErrorConstructor; + +export = RangeError; diff --git a/node_modules/es-errors/range.js b/node_modules/es-errors/range.js new file mode 100644 index 0000000..2044fe0 --- /dev/null +++ b/node_modules/es-errors/range.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./range')} */ +module.exports = RangeError; diff --git a/node_modules/es-errors/ref.d.ts b/node_modules/es-errors/ref.d.ts new file mode 100644 index 0000000..a13107e --- /dev/null +++ b/node_modules/es-errors/ref.d.ts @@ -0,0 +1,3 @@ +declare const ReferenceError: ReferenceErrorConstructor; + +export = ReferenceError; diff --git a/node_modules/es-errors/ref.js b/node_modules/es-errors/ref.js new file mode 100644 index 0000000..d7c430f --- /dev/null +++ b/node_modules/es-errors/ref.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./ref')} */ +module.exports = ReferenceError; diff --git a/node_modules/es-errors/syntax.d.ts b/node_modules/es-errors/syntax.d.ts new file mode 100644 index 0000000..6a0c53c --- /dev/null +++ b/node_modules/es-errors/syntax.d.ts @@ -0,0 +1,3 @@ +declare const SyntaxError: SyntaxErrorConstructor; + +export = SyntaxError; diff --git a/node_modules/es-errors/syntax.js b/node_modules/es-errors/syntax.js new file mode 100644 index 0000000..5f5fdde --- /dev/null +++ b/node_modules/es-errors/syntax.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./syntax')} */ +module.exports = SyntaxError; diff --git a/node_modules/es-errors/test/index.js b/node_modules/es-errors/test/index.js new file mode 100644 index 0000000..1ff0277 --- /dev/null +++ b/node_modules/es-errors/test/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var test = require('tape'); + +var E = require('../'); +var R = require('../range'); +var Ref = require('../ref'); +var S = require('../syntax'); +var T = require('../type'); + +test('errors', function (t) { + t.equal(E, Error); + t.equal(R, RangeError); + t.equal(Ref, ReferenceError); + t.equal(S, SyntaxError); + t.equal(T, TypeError); + + t.end(); +}); diff --git a/node_modules/es-errors/tsconfig.json b/node_modules/es-errors/tsconfig.json new file mode 100644 index 0000000..99dfeb6 --- /dev/null +++ b/node_modules/es-errors/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "es5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + // "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/es-errors/type.d.ts b/node_modules/es-errors/type.d.ts new file mode 100644 index 0000000..576fb51 --- /dev/null +++ b/node_modules/es-errors/type.d.ts @@ -0,0 +1,3 @@ +declare const TypeError: TypeErrorConstructor + +export = TypeError; diff --git a/node_modules/es-errors/type.js b/node_modules/es-errors/type.js new file mode 100644 index 0000000..9769e44 --- /dev/null +++ b/node_modules/es-errors/type.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./type')} */ +module.exports = TypeError; diff --git a/node_modules/es-errors/uri.d.ts b/node_modules/es-errors/uri.d.ts new file mode 100644 index 0000000..c3261c9 --- /dev/null +++ b/node_modules/es-errors/uri.d.ts @@ -0,0 +1,3 @@ +declare const URIError: URIErrorConstructor; + +export = URIError; diff --git a/node_modules/es-errors/uri.js b/node_modules/es-errors/uri.js new file mode 100644 index 0000000..e9cd1c7 --- /dev/null +++ b/node_modules/es-errors/uri.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./uri')} */ +module.exports = URIError; diff --git a/node_modules/es-object-atoms/.eslintrc b/node_modules/es-object-atoms/.eslintrc new file mode 100644 index 0000000..d90a1bc --- /dev/null +++ b/node_modules/es-object-atoms/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "eqeqeq": ["error", "allow-null"], + "id-length": "off", + "new-cap": ["error", { + "capIsNewExceptions": [ + "RequireObjectCoercible", + "ToObject", + ], + }], + }, +} diff --git a/node_modules/es-object-atoms/.github/FUNDING.yml b/node_modules/es-object-atoms/.github/FUNDING.yml new file mode 100644 index 0000000..352bfda --- /dev/null +++ b/node_modules/es-object-atoms/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-object +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/es-object-atoms/CHANGELOG.md b/node_modules/es-object-atoms/CHANGELOG.md new file mode 100644 index 0000000..fdd2abe --- /dev/null +++ b/node_modules/es-object-atoms/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.1](https://github.com/ljharb/es-object-atoms/compare/v1.1.0...v1.1.1) - 2025-01-14 + +### Commits + +- [types] `ToObject`: improve types [`cfe8c8a`](https://github.com/ljharb/es-object-atoms/commit/cfe8c8a105c44820cb22e26f62d12ef0ad9715c8) + +## [v1.1.0](https://github.com/ljharb/es-object-atoms/compare/v1.0.1...v1.1.0) - 2025-01-14 + +### Commits + +- [New] add `isObject` [`51e4042`](https://github.com/ljharb/es-object-atoms/commit/51e4042df722eb3165f40dc5f4bf33d0197ecb07) + +## [v1.0.1](https://github.com/ljharb/es-object-atoms/compare/v1.0.0...v1.0.1) - 2025-01-13 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/tape`, `auto-changelog`, `tape` [`38ab9eb`](https://github.com/ljharb/es-object-atoms/commit/38ab9eb00b62c2f4668644f5e513d9b414ebd595) +- [types] improve types [`7d1beb8`](https://github.com/ljharb/es-object-atoms/commit/7d1beb887958b78b6a728a210a1c8370ab7e2aa1) +- [Tests] replace `aud` with `npm audit` [`25863ba`](https://github.com/ljharb/es-object-atoms/commit/25863baf99178f1d1ad33d1120498db28631907e) +- [Dev Deps] add missing peer dep [`c012309`](https://github.com/ljharb/es-object-atoms/commit/c0123091287e6132d6f4240496340c427433df28) + +## v1.0.0 - 2024-03-16 + +### Commits + +- Initial implementation, tests, readme, types [`f1499db`](https://github.com/ljharb/es-object-atoms/commit/f1499db7d3e1741e64979c61d645ab3137705e82) +- Initial commit [`99eedc7`](https://github.com/ljharb/es-object-atoms/commit/99eedc7b5fde38a50a28d3c8b724706e3e4c5f6a) +- [meta] rename repo [`fc851fa`](https://github.com/ljharb/es-object-atoms/commit/fc851fa70616d2d182aaf0bd02c2ed7084dea8fa) +- npm init [`b909377`](https://github.com/ljharb/es-object-atoms/commit/b909377c50049bd0ec575562d20b0f9ebae8947f) +- Only apps should have lockfiles [`7249edd`](https://github.com/ljharb/es-object-atoms/commit/7249edd2178c1b9ddfc66ffcc6d07fdf0d28efc1) diff --git a/node_modules/es-object-atoms/LICENSE b/node_modules/es-object-atoms/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/es-object-atoms/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/es-object-atoms/README.md b/node_modules/es-object-atoms/README.md new file mode 100644 index 0000000..447695b --- /dev/null +++ b/node_modules/es-object-atoms/README.md @@ -0,0 +1,63 @@ +# es-object-atoms [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +ES Object-related atoms: Object, ToObject, RequireObjectCoercible. + +## Example + +```js +const assert = require('assert'); + +const $Object = require('es-object-atoms'); +const isObject = require('es-object-atoms/isObject'); +const ToObject = require('es-object-atoms/ToObject'); +const RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible'); + +assert.equal($Object, Object); +assert.throws(() => ToObject(null), TypeError); +assert.throws(() => ToObject(undefined), TypeError); +assert.throws(() => RequireObjectCoercible(null), TypeError); +assert.throws(() => RequireObjectCoercible(undefined), TypeError); + +assert.equal(isObject(undefined), false); +assert.equal(isObject(null), false); +assert.equal(isObject({}), true); +assert.equal(isObject([]), true); +assert.equal(isObject(function () {}), true); + +assert.deepEqual(RequireObjectCoercible(true), true); +assert.deepEqual(ToObject(true), Object(true)); + +const obj = {}; +assert.equal(RequireObjectCoercible(obj), obj); +assert.equal(ToObject(obj), obj); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-object-atoms +[npm-version-svg]: https://versionbadg.es/ljharb/es-object-atoms.svg +[deps-svg]: https://david-dm.org/ljharb/es-object-atoms.svg +[deps-url]: https://david-dm.org/ljharb/es-object-atoms +[dev-deps-svg]: https://david-dm.org/ljharb/es-object-atoms/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-object-atoms#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-object-atoms.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-object-atoms.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-object.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-object-atoms +[codecov-image]: https://codecov.io/gh/ljharb/es-object-atoms/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-object-atoms/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-object-atoms +[actions-url]: https://github.com/ljharb/es-object-atoms/actions diff --git a/node_modules/es-object-atoms/RequireObjectCoercible.d.ts b/node_modules/es-object-atoms/RequireObjectCoercible.d.ts new file mode 100644 index 0000000..7e26c45 --- /dev/null +++ b/node_modules/es-object-atoms/RequireObjectCoercible.d.ts @@ -0,0 +1,3 @@ +declare function RequireObjectCoercible(value: T, optMessage?: string): T; + +export = RequireObjectCoercible; diff --git a/node_modules/es-object-atoms/RequireObjectCoercible.js b/node_modules/es-object-atoms/RequireObjectCoercible.js new file mode 100644 index 0000000..8e191c6 --- /dev/null +++ b/node_modules/es-object-atoms/RequireObjectCoercible.js @@ -0,0 +1,11 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); + +/** @type {import('./RequireObjectCoercible')} */ +module.exports = function RequireObjectCoercible(value) { + if (value == null) { + throw new $TypeError((arguments.length > 0 && arguments[1]) || ('Cannot call method on ' + value)); + } + return value; +}; diff --git a/node_modules/es-object-atoms/ToObject.d.ts b/node_modules/es-object-atoms/ToObject.d.ts new file mode 100644 index 0000000..d6dd302 --- /dev/null +++ b/node_modules/es-object-atoms/ToObject.d.ts @@ -0,0 +1,7 @@ +declare function ToObject(value: number): Number; +declare function ToObject(value: boolean): Boolean; +declare function ToObject(value: string): String; +declare function ToObject(value: bigint): BigInt; +declare function ToObject(value: T): T; + +export = ToObject; diff --git a/node_modules/es-object-atoms/ToObject.js b/node_modules/es-object-atoms/ToObject.js new file mode 100644 index 0000000..2b99a7d --- /dev/null +++ b/node_modules/es-object-atoms/ToObject.js @@ -0,0 +1,10 @@ +'use strict'; + +var $Object = require('./'); +var RequireObjectCoercible = require('./RequireObjectCoercible'); + +/** @type {import('./ToObject')} */ +module.exports = function ToObject(value) { + RequireObjectCoercible(value); + return $Object(value); +}; diff --git a/node_modules/es-object-atoms/index.d.ts b/node_modules/es-object-atoms/index.d.ts new file mode 100644 index 0000000..8bdbfc8 --- /dev/null +++ b/node_modules/es-object-atoms/index.d.ts @@ -0,0 +1,3 @@ +declare const Object: ObjectConstructor; + +export = Object; diff --git a/node_modules/es-object-atoms/index.js b/node_modules/es-object-atoms/index.js new file mode 100644 index 0000000..1d33cef --- /dev/null +++ b/node_modules/es-object-atoms/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Object; diff --git a/node_modules/es-object-atoms/isObject.d.ts b/node_modules/es-object-atoms/isObject.d.ts new file mode 100644 index 0000000..43bee3b --- /dev/null +++ b/node_modules/es-object-atoms/isObject.d.ts @@ -0,0 +1,3 @@ +declare function isObject(x: unknown): x is object; + +export = isObject; diff --git a/node_modules/es-object-atoms/isObject.js b/node_modules/es-object-atoms/isObject.js new file mode 100644 index 0000000..ec49bf1 --- /dev/null +++ b/node_modules/es-object-atoms/isObject.js @@ -0,0 +1,6 @@ +'use strict'; + +/** @type {import('./isObject')} */ +module.exports = function isObject(x) { + return !!x && (typeof x === 'function' || typeof x === 'object'); +}; diff --git a/node_modules/es-object-atoms/package.json b/node_modules/es-object-atoms/package.json new file mode 100644 index 0000000..f4cec71 --- /dev/null +++ b/node_modules/es-object-atoms/package.json @@ -0,0 +1,80 @@ +{ + "name": "es-object-atoms", + "version": "1.1.1", + "description": "ES Object-related atoms: Object, ToObject, RequireObjectCoercible", + "main": "index.js", + "exports": { + ".": "./index.js", + "./RequireObjectCoercible": "./RequireObjectCoercible.js", + "./isObject": "./isObject.js", + "./ToObject": "./ToObject.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@\">= 10.2\" audit --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-object-atoms.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "toobject", + "coercible" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-object-atoms/issues" + }, + "homepage": "https://github.com/ljharb/es-object-atoms#readme", + "dependencies": { + "es-errors": "^1.3.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/es-object-atoms/test/index.js b/node_modules/es-object-atoms/test/index.js new file mode 100644 index 0000000..430b705 --- /dev/null +++ b/node_modules/es-object-atoms/test/index.js @@ -0,0 +1,38 @@ +'use strict'; + +var test = require('tape'); + +var $Object = require('../'); +var isObject = require('../isObject'); +var ToObject = require('../ToObject'); +var RequireObjectCoercible = require('..//RequireObjectCoercible'); + +test('errors', function (t) { + t.equal($Object, Object); + // @ts-expect-error + t['throws'](function () { ToObject(null); }, TypeError); + // @ts-expect-error + t['throws'](function () { ToObject(undefined); }, TypeError); + // @ts-expect-error + t['throws'](function () { RequireObjectCoercible(null); }, TypeError); + // @ts-expect-error + t['throws'](function () { RequireObjectCoercible(undefined); }, TypeError); + + t.deepEqual(RequireObjectCoercible(true), true); + t.deepEqual(ToObject(true), Object(true)); + t.deepEqual(ToObject(42), Object(42)); + var f = function () {}; + t.equal(ToObject(f), f); + + t.equal(isObject(undefined), false); + t.equal(isObject(null), false); + t.equal(isObject({}), true); + t.equal(isObject([]), true); + t.equal(isObject(function () {}), true); + + var obj = {}; + t.equal(RequireObjectCoercible(obj), obj); + t.equal(ToObject(obj), obj); + + t.end(); +}); diff --git a/node_modules/es-object-atoms/tsconfig.json b/node_modules/es-object-atoms/tsconfig.json new file mode 100644 index 0000000..1f73cb7 --- /dev/null +++ b/node_modules/es-object-atoms/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es5", + }, +} diff --git a/node_modules/escape-html/LICENSE b/node_modules/escape-html/LICENSE new file mode 100644 index 0000000..2e70de9 --- /dev/null +++ b/node_modules/escape-html/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2013 TJ Holowaychuk +Copyright (c) 2015 Andreas Lubbe +Copyright (c) 2015 Tiancheng "Timothy" Gu + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/escape-html/Readme.md b/node_modules/escape-html/Readme.md new file mode 100644 index 0000000..653d9ea --- /dev/null +++ b/node_modules/escape-html/Readme.md @@ -0,0 +1,43 @@ + +# escape-html + + Escape string for use in HTML + +## Example + +```js +var escape = require('escape-html'); +var html = escape('foo & bar'); +// -> foo & bar +``` + +## Benchmark + +``` +$ npm run-script bench + +> escape-html@1.0.3 bench nodejs-escape-html +> node benchmark/index.js + + + http_parser@1.0 + node@0.10.33 + v8@3.14.5.9 + ares@1.9.0-DEV + uv@0.10.29 + zlib@1.2.3 + modules@11 + openssl@1.0.1j + + 1 test completed. + 2 tests completed. + 3 tests completed. + + no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) + single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) + many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) +``` + +## License + + MIT \ No newline at end of file diff --git a/node_modules/escape-html/index.js b/node_modules/escape-html/index.js new file mode 100644 index 0000000..bf9e226 --- /dev/null +++ b/node_modules/escape-html/index.js @@ -0,0 +1,78 @@ +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ + +'use strict'; + +/** + * Module variables. + * @private + */ + +var matchHtmlRegExp = /["'&<>]/; + +/** + * Module exports. + * @public + */ + +module.exports = escapeHtml; + +/** + * Escape special characters in the given string of html. + * + * @param {string} string The string to escape for inserting into HTML + * @return {string} + * @public + */ + +function escapeHtml(string) { + var str = '' + string; + var match = matchHtmlRegExp.exec(str); + + if (!match) { + return str; + } + + var escape; + var html = ''; + var index = 0; + var lastIndex = 0; + + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: // " + escape = '"'; + break; + case 38: // & + escape = '&'; + break; + case 39: // ' + escape = '''; + break; + case 60: // < + escape = '<'; + break; + case 62: // > + escape = '>'; + break; + default: + continue; + } + + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + + lastIndex = index + 1; + html += escape; + } + + return lastIndex !== index + ? html + str.substring(lastIndex, index) + : html; +} diff --git a/node_modules/escape-html/package.json b/node_modules/escape-html/package.json new file mode 100644 index 0000000..57ec7bd --- /dev/null +++ b/node_modules/escape-html/package.json @@ -0,0 +1,24 @@ +{ + "name": "escape-html", + "description": "Escape string for use in HTML", + "version": "1.0.3", + "license": "MIT", + "keywords": [ + "escape", + "html", + "utility" + ], + "repository": "component/escape-html", + "devDependencies": { + "benchmark": "1.0.0", + "beautify-benchmark": "0.2.4" + }, + "files": [ + "LICENSE", + "Readme.md", + "index.js" + ], + "scripts": { + "bench": "node benchmark/index.js" + } +} diff --git a/node_modules/etag/HISTORY.md b/node_modules/etag/HISTORY.md new file mode 100644 index 0000000..222b293 --- /dev/null +++ b/node_modules/etag/HISTORY.md @@ -0,0 +1,83 @@ +1.8.1 / 2017-09-12 +================== + + * perf: replace regular expression with substring + +1.8.0 / 2017-02-18 +================== + + * Use SHA1 instead of MD5 for ETag hashing + - Improves performance for larger entities + - Works with FIPS 140-2 OpenSSL configuration + +1.7.0 / 2015-06-08 +================== + + * Always include entity length in ETags for hash length extensions + * Generate non-Stats ETags using MD5 only (no longer CRC32) + * Improve stat performance by removing hashing + * Remove base64 padding in ETags to shorten + * Use MD5 instead of MD4 in weak ETags over 1KB + +1.6.0 / 2015-05-10 +================== + + * Improve support for JXcore + * Remove requirement of `atime` in the stats object + * Support "fake" stats objects in environments without `fs` + +1.5.1 / 2014-11-19 +================== + + * deps: crc@3.2.1 + - Minor fixes + +1.5.0 / 2014-10-14 +================== + + * Improve string performance + * Slightly improve speed for weak ETags over 1KB + +1.4.0 / 2014-09-21 +================== + + * Support "fake" stats objects + * Support Node.js 0.6 + +1.3.1 / 2014-09-14 +================== + + * Use the (new and improved) `crc` for crc32 + +1.3.0 / 2014-08-29 +================== + + * Default strings to strong ETags + * Improve speed for weak ETags over 1KB + +1.2.1 / 2014-08-29 +================== + + * Use the (much faster) `buffer-crc32` for crc32 + +1.2.0 / 2014-08-24 +================== + + * Add support for file stat objects + +1.1.0 / 2014-08-24 +================== + + * Add fast-path for empty entity + * Add weak ETag generation + * Shrink size of generated ETags + +1.0.1 / 2014-08-24 +================== + + * Fix behavior of string containing Unicode + +1.0.0 / 2014-05-18 +================== + + * Initial release diff --git a/node_modules/etag/LICENSE b/node_modules/etag/LICENSE new file mode 100644 index 0000000..cab251c --- /dev/null +++ b/node_modules/etag/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/etag/README.md b/node_modules/etag/README.md new file mode 100644 index 0000000..09c2169 --- /dev/null +++ b/node_modules/etag/README.md @@ -0,0 +1,159 @@ +# etag + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create simple HTTP ETags + +This module generates HTTP ETags (as defined in RFC 7232) for use in +HTTP responses. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install etag +``` + +## API + + + +```js +var etag = require('etag') +``` + +### etag(entity, [options]) + +Generate a strong ETag for the given entity. This should be the complete +body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By +default, a strong ETag is generated except for `fs.Stats`, which will +generate a weak ETag (this can be overwritten by `options.weak`). + + + +```js +res.setHeader('ETag', etag(body)) +``` + +#### Options + +`etag` accepts these properties in the options object. + +##### weak + +Specifies if the generated ETag will include the weak validator mark (that +is, the leading `W/`). The actual entity tag is the same. The default value +is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`. + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +```bash +$ npm run-script bench + +> etag@1.8.1 bench nodejs-etag +> node benchmark/index.js + + http_parser@2.7.0 + node@6.11.1 + v8@5.1.281.103 + uv@1.11.0 + zlib@1.2.11 + ares@1.10.1-DEV + icu@58.2 + modules@48 + openssl@1.0.2k + +> node benchmark/body0-100b.js + + 100B body + + 4 tests completed. + + buffer - strong x 258,647 ops/sec ±1.07% (180 runs sampled) + buffer - weak x 263,812 ops/sec ±0.61% (184 runs sampled) + string - strong x 259,955 ops/sec ±1.19% (185 runs sampled) + string - weak x 264,356 ops/sec ±1.09% (184 runs sampled) + +> node benchmark/body1-1kb.js + + 1KB body + + 4 tests completed. + + buffer - strong x 189,018 ops/sec ±1.12% (182 runs sampled) + buffer - weak x 190,586 ops/sec ±0.81% (186 runs sampled) + string - strong x 144,272 ops/sec ±0.96% (188 runs sampled) + string - weak x 145,380 ops/sec ±1.43% (187 runs sampled) + +> node benchmark/body2-5kb.js + + 5KB body + + 4 tests completed. + + buffer - strong x 92,435 ops/sec ±0.42% (188 runs sampled) + buffer - weak x 92,373 ops/sec ±0.58% (189 runs sampled) + string - strong x 48,850 ops/sec ±0.56% (186 runs sampled) + string - weak x 49,380 ops/sec ±0.56% (190 runs sampled) + +> node benchmark/body3-10kb.js + + 10KB body + + 4 tests completed. + + buffer - strong x 55,989 ops/sec ±0.93% (188 runs sampled) + buffer - weak x 56,148 ops/sec ±0.55% (190 runs sampled) + string - strong x 27,345 ops/sec ±0.43% (188 runs sampled) + string - weak x 27,496 ops/sec ±0.45% (190 runs sampled) + +> node benchmark/body4-100kb.js + + 100KB body + + 4 tests completed. + + buffer - strong x 7,083 ops/sec ±0.22% (190 runs sampled) + buffer - weak x 7,115 ops/sec ±0.26% (191 runs sampled) + string - strong x 3,068 ops/sec ±0.34% (190 runs sampled) + string - weak x 3,096 ops/sec ±0.35% (190 runs sampled) + +> node benchmark/stats.js + + stat + + 4 tests completed. + + real - strong x 871,642 ops/sec ±0.34% (189 runs sampled) + real - weak x 867,613 ops/sec ±0.39% (190 runs sampled) + fake - strong x 401,051 ops/sec ±0.40% (189 runs sampled) + fake - weak x 400,100 ops/sec ±0.47% (188 runs sampled) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/etag.svg +[npm-url]: https://npmjs.org/package/etag +[node-version-image]: https://img.shields.io/node/v/etag.svg +[node-version-url]: https://nodejs.org/en/download/ +[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg +[travis-url]: https://travis-ci.org/jshttp/etag +[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master +[downloads-image]: https://img.shields.io/npm/dm/etag.svg +[downloads-url]: https://npmjs.org/package/etag diff --git a/node_modules/etag/index.js b/node_modules/etag/index.js new file mode 100644 index 0000000..2a585c9 --- /dev/null +++ b/node_modules/etag/index.js @@ -0,0 +1,131 @@ +/*! + * etag + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = etag + +/** + * Module dependencies. + * @private + */ + +var crypto = require('crypto') +var Stats = require('fs').Stats + +/** + * Module variables. + * @private + */ + +var toString = Object.prototype.toString + +/** + * Generate an entity tag. + * + * @param {Buffer|string} entity + * @return {string} + * @private + */ + +function entitytag (entity) { + if (entity.length === 0) { + // fast-path empty + return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"' + } + + // compute hash of entity + var hash = crypto + .createHash('sha1') + .update(entity, 'utf8') + .digest('base64') + .substring(0, 27) + + // compute length of entity + var len = typeof entity === 'string' + ? Buffer.byteLength(entity, 'utf8') + : entity.length + + return '"' + len.toString(16) + '-' + hash + '"' +} + +/** + * Create a simple ETag. + * + * @param {string|Buffer|Stats} entity + * @param {object} [options] + * @param {boolean} [options.weak] + * @return {String} + * @public + */ + +function etag (entity, options) { + if (entity == null) { + throw new TypeError('argument entity is required') + } + + // support fs.Stats object + var isStats = isstats(entity) + var weak = options && typeof options.weak === 'boolean' + ? options.weak + : isStats + + // validate argument + if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) { + throw new TypeError('argument entity must be string, Buffer, or fs.Stats') + } + + // generate entity tag + var tag = isStats + ? stattag(entity) + : entitytag(entity) + + return weak + ? 'W/' + tag + : tag +} + +/** + * Determine if object is a Stats object. + * + * @param {object} obj + * @return {boolean} + * @api private + */ + +function isstats (obj) { + // genuine fs.Stats + if (typeof Stats === 'function' && obj instanceof Stats) { + return true + } + + // quack quack + return obj && typeof obj === 'object' && + 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' && + 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' && + 'ino' in obj && typeof obj.ino === 'number' && + 'size' in obj && typeof obj.size === 'number' +} + +/** + * Generate a tag for a stat. + * + * @param {object} stat + * @return {string} + * @private + */ + +function stattag (stat) { + var mtime = stat.mtime.getTime().toString(16) + var size = stat.size.toString(16) + + return '"' + size + '-' + mtime + '"' +} diff --git a/node_modules/etag/package.json b/node_modules/etag/package.json new file mode 100644 index 0000000..b06ab80 --- /dev/null +++ b/node_modules/etag/package.json @@ -0,0 +1,47 @@ +{ + "name": "etag", + "description": "Create simple HTTP ETags", + "version": "1.8.1", + "contributors": [ + "Douglas Christopher Wilson ", + "David Björklund " + ], + "license": "MIT", + "keywords": [ + "etag", + "http", + "res" + ], + "repository": "jshttp/etag", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5", + "safe-buffer": "5.1.1", + "seedrandom": "2.4.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/express/History.md b/node_modules/express/History.md new file mode 100644 index 0000000..c234f52 --- /dev/null +++ b/node_modules/express/History.md @@ -0,0 +1,3656 @@ +4.21.2 / 2024-11-06 +========== + + * deps: path-to-regexp@0.1.12 + - Fix backtracking protection + * deps: path-to-regexp@0.1.11 + - Throws an error on invalid path values + +4.21.1 / 2024-10-08 +========== + + * Backported a fix for [CVE-2024-47764](https://nvd.nist.gov/vuln/detail/CVE-2024-47764) + + +4.21.0 / 2024-09-11 +========== + + * Deprecate `res.location("back")` and `res.redirect("back")` magic string + * deps: serve-static@1.16.2 + * includes send@0.19.0 + * deps: finalhandler@1.3.1 + * deps: qs@6.13.0 + +4.20.0 / 2024-09-10 +========== + * deps: serve-static@0.16.0 + * Remove link renderization in html while redirecting + * deps: send@0.19.0 + * Remove link renderization in html while redirecting + * deps: body-parser@0.6.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + * Remove link renderization in html while using `res.redirect` + * deps: path-to-regexp@0.1.10 + - Adds support for named matching groups in the routes using a regex + - Adds backtracking protection to parameters without regexes defined + * deps: encodeurl@~2.0.0 + - Removes encoding of `\`, `|`, and `^` to align better with URL spec + * Deprecate passing `options.maxAge` and `options.expires` to `res.clearCookie` + - Will be ignored in v5, clearCookie will set a cookie with an expires in the past to instruct clients to delete the cookie + +4.19.2 / 2024-03-25 +========== + + * Improved fix for open redirect allow list bypass + +4.19.1 / 2024-03-20 +========== + + * Allow passing non-strings to res.location with new encoding handling checks + +4.19.0 / 2024-03-20 +========== + + * Prevent open redirect allow list bypass due to encodeurl + * deps: cookie@0.6.0 + +4.18.3 / 2024-02-29 +========== + + * Fix routing requests without method + * deps: body-parser@1.20.2 + - Fix strict json error message on Node.js 19+ + - deps: content-type@~1.0.5 + - deps: raw-body@2.5.2 + * deps: cookie@0.6.0 + - Add `partitioned` option + +4.18.2 / 2022-10-08 +=================== + + * Fix regression routing a large stack in a single route + * deps: body-parser@1.20.1 + - deps: qs@6.11.0 + - perf: remove unnecessary object clone + * deps: qs@6.11.0 + +4.18.1 / 2022-04-29 +=================== + + * Fix hanging on large stack of sync routes + +4.18.0 / 2022-04-25 +=================== + + * Add "root" option to `res.download` + * Allow `options` without `filename` in `res.download` + * Deprecate string and non-integer arguments to `res.status` + * Fix behavior of `null`/`undefined` as `maxAge` in `res.cookie` + * Fix handling very large stacks of sync middleware + * Ignore `Object.prototype` values in settings through `app.set`/`app.get` + * Invoke `default` with same arguments as types in `res.format` + * Support proper 205 responses using `res.send` + * Use `http-errors` for `res.format` error + * deps: body-parser@1.20.0 + - Fix error message for json parse whitespace in `strict` + - Fix internal error when inflated body exceeds limit + - Prevent loss of async hooks context + - Prevent hanging when request already read + - deps: depd@2.0.0 + - deps: http-errors@2.0.0 + - deps: on-finished@2.4.1 + - deps: qs@6.10.3 + - deps: raw-body@2.5.1 + * deps: cookie@0.5.0 + - Add `priority` option + - Fix `expires` option to reject invalid dates + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: finalhandler@1.2.0 + - Remove set content headers that break response + - deps: on-finished@2.4.1 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + - Prevent loss of async hooks context + * deps: qs@6.10.3 + * deps: send@0.18.0 + - Fix emitted 416 error missing headers property + - Limit the headers removed for 304 response + - deps: depd@2.0.0 + - deps: destroy@1.2.0 + - deps: http-errors@2.0.0 + - deps: on-finished@2.4.1 + - deps: statuses@2.0.1 + * deps: serve-static@1.15.0 + - deps: send@0.18.0 + * deps: statuses@2.0.1 + - Remove code 306 + - Rename `425 Unordered Collection` to standard `425 Too Early` + +4.17.3 / 2022-02-16 +=================== + + * deps: accepts@~1.3.8 + - deps: mime-types@~2.1.34 + - deps: negotiator@0.6.3 + * deps: body-parser@1.19.2 + - deps: bytes@3.1.2 + - deps: qs@6.9.7 + - deps: raw-body@2.4.3 + * deps: cookie@0.4.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * pref: remove unnecessary regexp for trust proxy + +4.17.2 / 2021-12-16 +=================== + + * Fix handling of `undefined` in `res.jsonp` + * Fix handling of `undefined` when `"json escape"` is enabled + * Fix incorrect middleware execution with unanchored `RegExp`s + * Fix `res.jsonp(obj, status)` deprecation message + * Fix typo in `res.is` JSDoc + * deps: body-parser@1.19.1 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + - deps: qs@6.9.6 + - deps: raw-body@2.4.2 + - deps: safe-buffer@5.2.1 + - deps: type-is@~1.6.18 + * deps: content-disposition@0.5.4 + - deps: safe-buffer@5.2.1 + * deps: cookie@0.4.1 + - Fix `maxAge` option to reject invalid values + * deps: proxy-addr@~2.0.7 + - Use `req.socket` over deprecated `req.connection` + - deps: forwarded@0.2.0 + - deps: ipaddr.js@1.9.1 + * deps: qs@6.9.6 + * deps: safe-buffer@5.2.1 + * deps: send@0.17.2 + - deps: http-errors@1.8.1 + - deps: ms@2.1.3 + - pref: ignore empty http tokens + * deps: serve-static@1.14.2 + - deps: send@0.17.2 + * deps: setprototypeof@1.2.0 + +4.17.1 / 2019-05-25 +=================== + + * Revert "Improve error message for `null`/`undefined` to `res.status`" + +4.17.0 / 2019-05-16 +=================== + + * Add `express.raw` to parse bodies into `Buffer` + * Add `express.text` to parse bodies into string + * Improve error message for non-strings to `res.sendFile` + * Improve error message for `null`/`undefined` to `res.status` + * Support multiple hosts in `X-Forwarded-Host` + * deps: accepts@~1.3.7 + * deps: body-parser@1.19.0 + - Add encoding MIK + - Add petabyte (`pb`) support + - Fix parsing array brackets after index + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + - deps: qs@6.7.0 + - deps: raw-body@2.4.0 + - deps: type-is@~1.6.17 + * deps: content-disposition@0.5.3 + * deps: cookie@0.4.0 + - Add `SameSite=None` support + * deps: finalhandler@~1.1.2 + - Set stricter `Content-Security-Policy` header + - deps: parseurl@~1.3.3 + - deps: statuses@~1.5.0 + * deps: parseurl@~1.3.3 + * deps: proxy-addr@~2.0.5 + - deps: ipaddr.js@1.9.0 + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: range-parser@~1.2.1 + * deps: send@0.17.1 + - Set stricter CSP header in redirect & error responses + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: range-parser@~1.2.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + * deps: serve-static@1.14.1 + - Set stricter CSP header in redirect response + - deps: parseurl@~1.3.3 + - deps: send@0.17.1 + * deps: setprototypeof@1.1.1 + * deps: statuses@~1.5.0 + - Add `103 Early Hints` + * deps: type-is@~1.6.18 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +4.16.4 / 2018-10-10 +=================== + + * Fix issue where `"Request aborted"` may be logged in `res.sendfile` + * Fix JSDoc for `Router` constructor + * deps: body-parser@1.18.3 + - Fix deprecation warnings on Node.js 10+ + - Fix stack trace for strict json parse error + - deps: depd@~1.1.2 + - deps: http-errors@~1.6.3 + - deps: iconv-lite@0.4.23 + - deps: qs@6.5.2 + - deps: raw-body@2.3.3 + - deps: type-is@~1.6.16 + * deps: proxy-addr@~2.0.4 + - deps: ipaddr.js@1.8.0 + * deps: qs@6.5.2 + * deps: safe-buffer@5.1.2 + +4.16.3 / 2018-03-12 +=================== + + * deps: accepts@~1.3.5 + - deps: mime-types@~2.1.18 + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: finalhandler@1.1.1 + - Fix 404 output for bad / missing pathnames + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + * deps: proxy-addr@~2.0.3 + - deps: ipaddr.js@1.6.0 + * deps: send@0.16.2 + - Fix incorrect end tag in default error & redirects + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + * deps: serve-static@1.13.2 + - Fix incorrect end tag in redirects + - deps: encodeurl@~1.0.2 + - deps: send@0.16.2 + * deps: statuses@~1.4.0 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +4.16.2 / 2017-10-09 +=================== + + * Fix `TypeError` in `res.send` when given `Buffer` and `ETag` header set + * perf: skip parsing of entire `X-Forwarded-Proto` header + +4.16.1 / 2017-09-29 +=================== + + * deps: send@0.16.1 + * deps: serve-static@1.13.1 + - Fix regression when `root` is incorrectly set to a file + - deps: send@0.16.1 + +4.16.0 / 2017-09-28 +=================== + + * Add `"json escape"` setting for `res.json` and `res.jsonp` + * Add `express.json` and `express.urlencoded` to parse bodies + * Add `options` argument to `res.download` + * Improve error message when autoloading invalid view engine + * Improve error messages when non-function provided as middleware + * Skip `Buffer` encoding when not generating ETag for small response + * Use `safe-buffer` for improved Buffer API + * deps: accepts@~1.3.4 + - deps: mime-types@~2.1.16 + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: finalhandler@1.1.0 + - Use `res.headersSent` when available + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: proxy-addr@~2.0.2 + - Fix trimming leading / trailing OWS in `X-Forwarded-For` + - deps: forwarded@~0.1.2 + - deps: ipaddr.js@1.5.2 + - perf: reduce overhead when no `X-Forwarded-For` header + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + * deps: serve-static@1.13.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Set charset as "UTF-8" for .js and .json + - deps: send@0.16.0 + * deps: setprototypeof@1.1.0 + * deps: utils-merge@1.0.1 + * deps: vary@~1.1.2 + - perf: improve header token parsing speed + * perf: re-use options object when generating ETags + * perf: remove dead `.charset` set in `res.jsonp` + +4.15.5 / 2017-09-24 +=================== + + * deps: debug@2.6.9 + * deps: finalhandler@~1.0.6 + - deps: debug@2.6.9 + - deps: parseurl@~1.3.2 + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + * deps: send@0.15.6 + - Fix handling of modified headers with invalid dates + - deps: debug@2.6.9 + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + - perf: improve `If-Match` token parsing + * deps: serve-static@1.12.6 + - deps: parseurl@~1.3.2 + - deps: send@0.15.6 + - perf: improve slash collapsing + +4.15.4 / 2017-08-06 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: finalhandler@~1.0.4 + - deps: debug@2.6.8 + * deps: proxy-addr@~1.1.5 + - Fix array argument being altered + - deps: ipaddr.js@1.4.0 + * deps: qs@6.5.0 + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + * deps: serve-static@1.12.4 + - deps: send@0.15.4 + +4.15.3 / 2017-05-16 +=================== + + * Fix error when `res.set` cannot add charset to `Content-Type` + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: finalhandler@~1.0.3 + - Fix missing `` in HTML document + - deps: debug@2.6.7 + * deps: proxy-addr@~1.1.4 + - deps: ipaddr.js@1.3.0 + * deps: send@0.15.3 + - deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: serve-static@1.12.3 + - deps: send@0.15.3 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + * deps: vary@~1.1.1 + - perf: hoist regular expression + +4.15.2 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +4.15.1 / 2017-03-05 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + * deps: serve-static@1.12.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - deps: send@0.15.1 + +4.15.0 / 2017-03-01 +=================== + + * Add debug message when loading view engine + * Add `next("router")` to exit from router + * Fix case where `router.use` skipped requests routes did not + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Skip routing when `req.url` is not set + * Use `%o` in path debug to tell types apart + * Use `Object.create` to setup request & response prototypes + * Use `setprototypeof` module to replace `__proto__` setting + * Use `statuses` instead of `http` module for status messages + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + - Use SHA1 instead of MD5 for ETag hashing + - Works with FIPS 140-2 OpenSSL configuration + * deps: finalhandler@~1.0.0 + - Fix exception when `err` cannot be converted to a string + - Fully URL-encode the pathname in the 404 + - Only include the pathname in the 404 message + - Send complete HTML document + - Set `Content-Security-Policy: default-src 'self'` header + - deps: debug@2.6.1 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: qs@6.3.1 + - Fix array parsing from skipping empty values + - Fix compacting nested arrays + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + * deps: serve-static@1.12.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Send complete HTML document in redirect response + - Set default CSP header in redirect response + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: send@0.15.0 + * perf: add fast match path for `*` route + * perf: improve `req.ips` performance + +4.14.1 / 2017-01-28 +=================== + + * deps: content-disposition@0.5.2 + * deps: finalhandler@0.5.1 + - Fix exception when `err.headers` is not an object + - deps: statuses@~1.3.1 + - perf: hoist regular expressions + - perf: remove duplicate validation path + * deps: proxy-addr@~1.1.3 + - deps: ipaddr.js@1.2.0 + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + * deps: serve-static@~1.11.2 + - deps: send@0.14.2 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +4.14.0 / 2016-06-16 +=================== + + * Add `acceptRanges` option to `res.sendFile`/`res.sendfile` + * Add `cacheControl` option to `res.sendFile`/`res.sendfile` + * Add `options` argument to `req.range` + - Includes the `combine` option + * Encode URL in `res.location`/`res.redirect` if not already encoded + * Fix some redirect handling in `res.sendFile`/`res.sendfile` + * Fix Windows absolute path check using forward slashes + * Improve error with invalid arguments to `req.get()` + * Improve performance for `res.json`/`res.jsonp` in most cases + * Improve `Range` header handling in `res.sendFile`/`res.sendfile` + * deps: accepts@~1.3.3 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Many performance improvements + - deps: mime-types@~2.1.11 + - deps: negotiator@0.6.1 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: cookie@0.3.1 + - Add `sameSite` option + - Fix cookie `Max-Age` to never be a floating point number + - Improve error message when `encode` is not a function + - Improve error message when `expires` is not a `Date` + - Throw better error for invalid argument to parse + - Throw on invalid values provided to `serialize` + - perf: enable strict mode + - perf: hoist regular expression + - perf: use for loop in parse + - perf: use string concatenation for serialization + * deps: finalhandler@0.5.0 + - Change invalid or non-numeric status code to 500 + - Overwrite status message to match set status code + - Prefer `err.statusCode` if `err.status` is invalid + - Set response headers from `err.headers` object + - Use `statuses` instead of `http` module for status messages + * deps: proxy-addr@~1.1.2 + - Fix accepting various invalid netmasks + - Fix IPv6-mapped IPv4 validation edge cases + - IPv4 netmasks must be contiguous + - IPv6 addresses cannot be used as a netmask + - deps: ipaddr.js@1.1.1 + * deps: qs@6.2.0 + - Add `decoder` option in `parse` function + * deps: range-parser@~1.2.0 + - Add `combine` option to combine overlapping ranges + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: send@0.14.1 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Fix redirect error when `path` contains raw non-URL characters + - Fix redirect when `path` starts with multiple forward slashes + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + * deps: serve-static@~1.11.1 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Fix redirect error when `req.url` contains raw non-URL characters + - Ignore non-byte `Range` headers + - Use status code 301 for redirects + - deps: send@0.14.1 + * deps: type-is@~1.6.13 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.11 + * deps: vary@~1.1.0 + - Only accept valid field names in the `field` argument + * perf: use strict equality when possible + +4.13.4 / 2016-01-21 +=================== + + * deps: content-disposition@0.5.1 + - perf: enable strict mode + * deps: cookie@0.1.5 + - Throw on invalid values provided to `serialize` + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: finalhandler@0.4.1 + - deps: escape-html@~1.0.3 + * deps: merge-descriptors@1.0.1 + - perf: enable strict mode + * deps: methods@~1.1.2 + - perf: enable strict mode + * deps: parseurl@~1.3.1 + - perf: enable strict mode + * deps: proxy-addr@~1.0.10 + - deps: ipaddr.js@1.0.5 + - perf: enable strict mode + * deps: range-parser@~1.0.3 + - perf: enable strict mode + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + * deps: serve-static@~1.10.2 + - deps: escape-html@~1.0.3 + - deps: parseurl@~1.3.0 + - deps: send@0.13.1 + +4.13.3 / 2015-08-02 +=================== + + * Fix infinite loop condition using `mergeParams: true` + * Fix inner numeric indices incorrectly altering parent `req.params` + +4.13.2 / 2015-07-31 +=================== + + * deps: accepts@~1.2.12 + - deps: mime-types@~2.1.4 + * deps: array-flatten@1.1.1 + - perf: enable strict mode + * deps: path-to-regexp@0.1.7 + - Fix regression with escaped round brackets and matching groups + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +4.13.1 / 2015-07-05 +=================== + + * deps: accepts@~1.2.10 + - deps: mime-types@~2.1.2 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +4.13.0 / 2015-06-20 +=================== + + * Add settings to debug output + * Fix `res.format` error when only `default` provided + * Fix issue where `next('route')` in `app.param` would incorrectly skip values + * Fix hiding platform issues with `decodeURIComponent` + - Only `URIError`s are a 400 + * Fix using `*` before params in routes + * Fix using capture groups before params in routes + * Simplify `res.cookie` to call `res.append` + * Use `array-flatten` module for flattening arrays + * deps: accepts@~1.2.9 + - deps: mime-types@~2.1.1 + - perf: avoid argument reassignment & argument slice + - perf: avoid negotiator recursive construction + - perf: enable strict mode + - perf: remove unnecessary bitwise operator + * deps: cookie@0.1.3 + - perf: deduce the scope of try-catch deopt + - perf: remove argument reassignments + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Always include entity length in ETags for hash length extensions + - Generate non-Stats ETags using MD5 only (no longer CRC32) + - Improve stat performance by removing hashing + - Improve support for JXcore + - Remove base64 padding in ETags to shorten + - Support "fake" stats objects in environments without fs + - Use MD5 instead of MD4 in weak ETags over 1KB + * deps: finalhandler@0.4.0 + - Fix a false-positive when unpiping in Node.js 0.8 + - Support `statusCode` property on `Error` objects + - Use `unpipe` module for unpiping requests + - deps: escape-html@1.0.2 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove argument reassignment + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: path-to-regexp@0.1.6 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * deps: serve-static@~1.10.0 + - Add `fallthrough` option + - Fix reading options from options prototype + - Improve the default redirect response headers + - Malformed URLs now `next()` instead of 400 + - deps: escape-html@1.0.2 + - deps: send@0.13.0 + - perf: enable strict mode + - perf: remove argument reassignment + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: isolate `app.render` try block + * perf: remove argument reassignments in application + * perf: remove argument reassignments in request prototype + * perf: remove argument reassignments in response prototype + * perf: remove argument reassignments in routing + * perf: remove argument reassignments in `View` + * perf: skip attempting to decode zero length string + * perf: use saved reference to `http.STATUS_CODES` + +4.12.4 / 2015-05-17 +=================== + + * deps: accepts@~1.2.7 + - deps: mime-types@~2.0.11 + - deps: negotiator@0.5.3 + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: finalhandler@0.3.6 + - deps: debug@~2.2.0 + - deps: on-finished@~2.2.1 + * deps: on-finished@~2.2.1 + - Fix `isFinished(req)` when data buffered + * deps: proxy-addr@~1.0.8 + - deps: ipaddr.js@1.0.1 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + * deps: serve-static@~1.9.3 + - deps: send@0.12.3 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +4.12.3 / 2015-03-17 +=================== + + * deps: accepts@~1.2.5 + - deps: mime-types@~2.0.10 + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: finalhandler@0.3.4 + - deps: debug@~2.1.3 + * deps: proxy-addr@~1.0.7 + - deps: ipaddr.js@0.1.9 + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + * deps: serve-static@~1.9.2 + - deps: send@0.12.2 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +4.12.2 / 2015-03-02 +=================== + + * Fix regression where `"Request aborted"` is logged using `res.sendFile` + +4.12.1 / 2015-03-01 +=================== + + * Fix constructing application with non-configurable prototype properties + * Fix `ECONNRESET` errors from `res.sendFile` usage + * Fix `req.host` when using "trust proxy" hops count + * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count + * Fix wrong `code` on aborted connections from `res.sendFile` + * deps: merge-descriptors@1.0.0 + +4.12.0 / 2015-02-23 +=================== + + * Fix `"trust proxy"` setting to inherit when app is mounted + * Generate `ETag`s for all request responses + - No longer restricted to only responses for `GET` and `HEAD` requests + * Use `content-type` to parse `Content-Type` headers + * deps: accepts@~1.2.4 + - Fix preference sorting to be stable for long acceptable lists + - deps: mime-types@~2.0.9 + - deps: negotiator@0.5.1 + * deps: cookie-signature@1.0.6 + * deps: send@0.12.1 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + * deps: serve-static@~1.9.1 + - deps: send@0.12.1 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +4.11.2 / 2015-02-01 +=================== + + * Fix `res.redirect` double-calling `res.end` for `HEAD` requests + * deps: accepts@~1.2.3 + - deps: mime-types@~2.0.8 + * deps: proxy-addr@~1.0.6 + - deps: ipaddr.js@0.1.8 + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +4.11.1 / 2015-01-20 +=================== + + * deps: send@0.11.1 + - Fix root path disclosure + * deps: serve-static@~1.8.1 + - Fix redirect loop in Node.js 0.11.14 + - Fix root path disclosure + - deps: send@0.11.1 + +4.11.0 / 2015-01-13 +=================== + + * Add `res.append(field, val)` to append headers + * Deprecate leading `:` in `name` for `app.param(name, fn)` + * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead + * Deprecate `app.param(fn)` + * Fix `OPTIONS` responses to include the `HEAD` method properly + * Fix `res.sendFile` not always detecting aborted connection + * Match routes iteratively to prevent stack overflows + * deps: accepts@~1.2.2 + - deps: mime-types@~2.0.7 + - deps: negotiator@0.5.0 + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + * deps: serve-static@~1.8.0 + - deps: send@0.11.0 + +4.10.8 / 2015-01-13 +=================== + + * Fix crash from error within `OPTIONS` response handler + * deps: proxy-addr@~1.0.5 + - deps: ipaddr.js@0.1.6 + +4.10.7 / 2015-01-04 +=================== + + * Fix `Allow` header for `OPTIONS` to not contain duplicate methods + * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304 + * deps: debug@~2.1.1 + * deps: finalhandler@0.3.3 + - deps: debug@~2.1.1 + - deps: on-finished@~2.2.0 + * deps: methods@~1.1.1 + * deps: on-finished@~2.2.0 + * deps: serve-static@~1.7.2 + - Fix potential open redirect when mounted at root + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +4.10.6 / 2014-12-12 +=================== + + * Fix exception in `req.fresh`/`req.stale` without response headers + +4.10.5 / 2014-12-10 +=================== + + * Fix `res.send` double-calling `res.end` for `HEAD` requests + * deps: accepts@~1.1.4 + - deps: mime-types@~2.0.4 + * deps: type-is@~1.5.4 + - deps: mime-types@~2.0.4 + +4.10.4 / 2014-11-24 +=================== + + * Fix `res.sendfile` logging standard write errors + +4.10.3 / 2014-11-23 +=================== + + * Fix `res.sendFile` logging standard write errors + * deps: etag@~1.5.1 + * deps: proxy-addr@~1.0.4 + - deps: ipaddr.js@0.1.5 + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + +4.10.2 / 2014-11-09 +=================== + + * Correctly invoke async router callback asynchronously + * deps: accepts@~1.1.3 + - deps: mime-types@~2.0.3 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +4.10.1 / 2014-10-28 +=================== + + * Fix handling of URLs containing `://` in the path + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +4.10.0 / 2014-10-23 +=================== + + * Add support for `app.set('views', array)` + - Views are looked up in sequence in array of directories + * Fix `res.send(status)` to mention `res.sendStatus(status)` + * Fix handling of invalid empty URLs + * Use `content-disposition` module for `res.attachment`/`res.download` + - Sends standards-compliant `Content-Disposition` header + - Full Unicode support + * Use `path.resolve` in view lookup + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + * deps: finalhandler@0.3.2 + - Terminate in progress response only on error + - Use `on-finished` to determine request status + - deps: debug@~2.1.0 + - deps: on-finished@~2.1.1 + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: send@0.10.1 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + - deps: on-finished@~2.1.1 + * deps: serve-static@~1.7.1 + - deps: send@0.10.1 + +4.9.8 / 2014-10-17 +================== + + * Fix `res.redirect` body when redirect status specified + * deps: accepts@~1.1.2 + - Fix error when media type has invalid parameter + - deps: negotiator@0.4.9 + +4.9.7 / 2014-10-10 +================== + + * Fix using same param name in array of paths + +4.9.6 / 2014-10-08 +================== + + * deps: accepts@~1.1.1 + - deps: mime-types@~2.0.2 + - deps: negotiator@0.4.8 + * deps: serve-static@~1.6.4 + - Fix redirect loop when index file serving disabled + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +4.9.5 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + * deps: proxy-addr@~1.0.3 + - Use `forwarded` npm module + * deps: send@0.9.3 + - deps: etag@~1.4.0 + * deps: serve-static@~1.6.3 + - deps: send@0.9.3 + +4.9.4 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +4.9.3 / 2014-09-18 +================== + + * deps: proxy-addr@~1.0.2 + - Fix a global leak when multiple subnets are trusted + - deps: ipaddr.js@0.1.3 + +4.9.2 / 2014-09-17 +================== + + * Fix regression for empty string `path` in `app.use` + * Fix `router.use` to accept array of middleware without path + * Improve error message for bad `app.use` arguments + +4.9.1 / 2014-09-16 +================== + + * Fix `app.use` to accept array of middleware without path + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + * deps: serve-static@~1.6.2 + - deps: send@0.9.2 + +4.9.0 / 2014-09-08 +================== + + * Add `res.sendStatus` + * Invoke callback for sendfile when client aborts + - Applies to `res.sendFile`, `res.sendfile`, and `res.download` + - `err` will be populated with request aborted error + * Support IP address host in `req.subdomains` + * Use `etag` to generate `ETag` headers + * deps: accepts@~1.1.0 + - update `mime-types` + * deps: cookie-signature@1.0.5 + * deps: debug@~2.0.0 + * deps: finalhandler@0.2.0 + - Set `X-Content-Type-Options: nosniff` header + - deps: debug@~2.0.0 + * deps: fresh@0.2.4 + * deps: media-typer@0.3.0 + - Throw error when parameter format invalid on parse + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: range-parser@~1.0.2 + * deps: send@0.9.1 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + - deps: fresh@0.2.4 + * deps: serve-static@~1.6.1 + - Add `lastModified` option + - deps: send@0.9.1 + * deps: type-is@~1.5.1 + - fix `hasbody` to be true for `content-length: 0` + - deps: media-typer@0.3.0 + - deps: mime-types@~2.0.1 + * deps: vary@~1.0.0 + - Accept valid `Vary` header string as `field` + +4.8.8 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + * deps: serve-static@~1.5.4 + - deps: send@0.8.5 + +4.8.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +4.8.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +4.8.5 / 2014-08-18 +================== + + * deps: send@0.8.3 + - deps: destroy@1.0.3 + - deps: on-finished@2.1.0 + * deps: serve-static@~1.5.3 + - deps: send@0.8.3 + +4.8.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: serve-static@~1.5.2 + - deps: send@0.8.2 + +4.8.3 / 2014-08-10 +================== + + * deps: parseurl@~1.3.0 + * deps: qs@1.2.1 + * deps: serve-static@~1.5.1 + - Fix parsing of weird `req.originalUrl` values + - deps: parseurl@~1.3.0 + - deps: utils-merge@1.0.0 + +4.8.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +4.8.1 / 2014-08-06 +================== + + * fix incorrect deprecation warnings on `res.download` + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +4.8.0 / 2014-08-05 +================== + + * add `res.sendFile` + - accepts a file system path instead of a URL + - requires an absolute path or `root` option specified + * deprecate `res.sendfile` -- use `res.sendFile` instead + * support mounted app as any argument to `app.use()` + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + * deps: send@0.8.1 + - Add `extensions` option + * deps: serve-static@~1.5.0 + - Add `extensions` option + - deps: send@0.8.1 + +4.7.4 / 2014-08-04 +================== + + * fix `res.sendfile` regression for serving directory index files + * deps: send@0.7.4 + - Fix incorrect 403 on Windows and Node.js 0.11 + - Fix serving index files without root dir + * deps: serve-static@~1.4.4 + - deps: send@0.7.4 + +4.7.3 / 2014-08-04 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + * deps: serve-static@~1.4.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + - deps: send@0.7.3 + +4.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + * deps: send@0.7.2 + - deps: depd@0.4.4 + * deps: serve-static@~1.4.2 + +4.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + * deps: send@0.7.1 + - deps: depd@0.4.3 + * deps: serve-static@~1.4.1 + +4.7.0 / 2014-07-25 +================== + + * fix `req.protocol` for proxy-direct connections + * configurable query parser with `app.set('query parser', parser)` + - `app.set('query parser', 'extended')` parse with "qs" module + - `app.set('query parser', 'simple')` parse with "querystring" core module + - `app.set('query parser', false)` disable query string parsing + - `app.set('query parser', true)` enable simple parsing + * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead + * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead + * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: finalhandler@0.1.0 + - Respond after request fully read + - deps: debug@1.0.4 + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - Cap `maxAge` value to 1 year + - deps: debug@1.0.4 + - deps: depd@0.4.2 + * deps: serve-static@~1.4.0 + - deps: parseurl@~1.2.0 + - deps: send@0.7.0 + * perf: prevent multiple `Buffer` creation in `res.send` + +4.6.1 / 2014-07-12 +================== + + * fix `subapp.mountpath` regression for `app.use(subapp)` + +4.6.0 / 2014-07-11 +================== + + * accept multiple callbacks to `app.use()` + * add explicit "Rosetta Flash JSONP abuse" protection + - previous versions are not vulnerable; this is just explicit protection + * catch errors in multiple `req.param(name, fn)` handlers + * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead + * fix `res.send(status, num)` to send `num` as json (not error) + * remove unnecessary escaping when `res.jsonp` returns JSON response + * support non-string `path` in `app.use(path, fn)` + - supports array of paths + - supports `RegExp` + * router: fix optimization on router exit + * router: refactor location of `try` blocks + * router: speed up standard `app.use(fn)` + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + * deps: finalhandler@0.0.3 + - deps: debug@1.0.3 + * deps: methods@1.1.0 + - add `CONNECT` + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + * deps: path-to-regexp@0.1.3 + * deps: send@0.6.0 + - deps: debug@1.0.3 + * deps: serve-static@~1.3.2 + - deps: parseurl@~1.1.3 + - deps: send@0.6.0 + * perf: fix arguments reassign deopt in some `res` methods + +4.5.1 / 2014-07-06 +================== + + * fix routing regression when altering `req.method` + +4.5.0 / 2014-07-04 +================== + + * add deprecation message to non-plural `req.accepts*` + * add deprecation message to `res.send(body, status)` + * add deprecation message to `res.vary()` + * add `headers` option to `res.sendfile` + - use to set headers on successful file transfer + * add `mergeParams` option to `Router` + - merges `req.params` from parent routes + * add `req.hostname` -- correct name for what `req.host` returns + * deprecate things with `depd` module + * deprecate `req.host` -- use `req.hostname` instead + * fix behavior when handling request without routes + * fix handling when `route.all` is only route + * invoke `router.param()` only when route matches + * restore `req.params` after invoking router + * use `finalhandler` for final response handling + * use `media-typer` to alter content-type charset + * deps: accepts@~1.0.7 + * deps: send@0.5.0 + - Accept string for `maxage` (converted by `ms`) + - Include link in default redirect response + * deps: serve-static@~1.3.0 + - Accept string for `maxAge` (converted by `ms`) + - Add `setHeaders` option + - Include HTML link in redirect response + - deps: send@0.5.0 + * deps: type-is@~1.3.2 + +4.4.5 / 2014-06-26 +================== + + * deps: cookie-signature@1.0.4 + - fix for timing attacks + +4.4.4 / 2014-06-20 +================== + + * fix `res.attachment` Unicode filenames in Safari + * fix "trim prefix" debug message in `express:router` + * deps: accepts@~1.0.5 + * deps: buffer-crc32@0.2.3 + +4.4.3 / 2014-06-11 +================== + + * fix persistence of modified `req.params[name]` from `app.param()` + * deps: accepts@1.0.3 + - deps: negotiator@0.4.6 + * deps: debug@1.0.2 + * deps: send@0.4.3 + - Do not throw uncatchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + * deps: serve-static@1.2.3 + - Do not throw uncatchable error on file open race condition + - deps: send@0.4.3 + +4.4.2 / 2014-06-09 +================== + + * fix catching errors from top-level handlers + * use `vary` module for `res.vary` + * deps: debug@1.0.1 + * deps: proxy-addr@1.0.1 + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + * deps: serve-static@1.2.2 + - fix "event emitter leak" warnings + - deps: send@0.4.2 + * deps: type-is@1.2.1 + +4.4.1 / 2014-06-02 +================== + + * deps: methods@1.0.1 + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + * deps: serve-static@1.2.1 + - use `escape-html` for escaping + - deps: send@0.4.1 + +4.4.0 / 2014-05-30 +================== + + * custom etag control with `app.set('etag', val)` + - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation + - `app.set('etag', 'weak')` weak tag + - `app.set('etag', 'strong')` strong etag + - `app.set('etag', false)` turn off + - `app.set('etag', true)` standard etag + * mark `res.send` ETag as weak and reduce collisions + * update accepts to 1.0.2 + - Fix interpretation when header not in request + * update send to 0.4.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: debug@0.8.1 + * update serve-static to 1.2.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: send@0.4.0 + +4.3.2 / 2014-05-28 +================== + + * fix handling of errors from `router.param()` callbacks + +4.3.1 / 2014-05-23 +================== + + * revert "fix behavior of multiple `app.VERB` for the same path" + - this caused a regression in the order of route execution + +4.3.0 / 2014-05-21 +================== + + * add `req.baseUrl` to access the path stripped from `req.url` in routes + * fix behavior of multiple `app.VERB` for the same path + * fix issue routing requests among sub routers + * invoke `router.param()` only when necessary instead of every match + * proper proxy trust with `app.set('trust proxy', trust)` + - `app.set('trust proxy', 1)` trust first hop + - `app.set('trust proxy', 'loopback')` trust loopback addresses + - `app.set('trust proxy', '10.0.0.1')` trust single IP + - `app.set('trust proxy', '10.0.0.1/16')` trust subnet + - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list + - `app.set('trust proxy', false)` turn off + - `app.set('trust proxy', true)` trust everything + * set proper `charset` in `Content-Type` for `res.send` + * update type-is to 1.2.0 + - support suffix matching + +4.2.0 / 2014-05-11 +================== + + * deprecate `app.del()` -- use `app.delete()` instead + * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead + - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` + * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead + - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` + * fix `req.next` when inside router instance + * include `ETag` header in `HEAD` requests + * keep previous `Content-Type` for `res.jsonp` + * support PURGE method + - add `app.purge` + - add `router.purge` + - include PURGE in `app.all` + * update debug to 0.8.0 + - add `enable()` method + - change from stderr to stdout + * update methods to 1.0.0 + - add PURGE + +4.1.2 / 2014-05-08 +================== + + * fix `req.host` for IPv6 literals + * fix `res.jsonp` error if callback param is object + +4.1.1 / 2014-04-27 +================== + + * fix package.json to reflect supported node version + +4.1.0 / 2014-04-24 +================== + + * pass options from `res.sendfile` to `send` + * preserve casing of headers in `res.header` and `res.set` + * support unicode file names in `res.attachment` and `res.download` + * update accepts to 1.0.1 + - deps: negotiator@0.4.0 + * update cookie to 0.1.2 + - Fix for maxAge == 0 + - made compat with expires field + * update send to 0.3.0 + - Accept API options in options object + - Coerce option types + - Control whether to generate etags + - Default directory access to 403 when index disabled + - Fix sending files with dots without root set + - Include file path in etag + - Make "Can't set headers after they are sent." catchable + - Send full entity-body for multi range requests + - Set etags to "weak" + - Support "If-Range" header + - Support multiple index paths + - deps: mime@1.2.11 + * update serve-static to 1.1.0 + - Accept options directly to `send` module + - Resolve relative paths at middleware setup + - Use parseurl to parse the URL from request + - deps: send@0.3.0 + * update type-is to 1.1.0 + - add non-array values support + - add `multipart` as a shorthand + +4.0.0 / 2014-04-09 +================== + + * remove: + - node 0.8 support + - connect and connect's patches except for charset handling + - express(1) - moved to [express-generator](https://github.com/expressjs/generator) + - `express.createServer()` - it has been deprecated for a long time. Use `express()` + - `app.configure` - use logic in your own app code + - `app.router` - is removed + - `req.auth` - use `basic-auth` instead + - `req.accepted*` - use `req.accepts*()` instead + - `res.location` - relative URL resolution is removed + - `res.charset` - include the charset in the content type when using `res.set()` + - all bundled middleware except `static` + * change: + - `app.route` -> `app.mountpath` when mounting an express app in another express app + - `json spaces` no longer enabled by default in development + - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings` + - `req.params` is now an object instead of an array + - `res.locals` is no longer a function. It is a plain js object. Treat it as such. + - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object + * refactor: + - `req.accepts*` with [accepts](https://github.com/expressjs/accepts) + - `req.is` with [type-is](https://github.com/expressjs/type-is) + - [path-to-regexp](https://github.com/component/path-to-regexp) + * add: + - `app.router()` - returns the app Router instance + - `app.route()` - Proxy to the app's `Router#route()` method to create a new route + - Router & Route - public API + +3.21.2 / 2015-07-31 +=================== + + * deps: connect@2.30.2 + - deps: body-parser@~1.13.3 + - deps: compression@~1.5.2 + - deps: errorhandler@~1.4.2 + - deps: method-override@~2.3.5 + - deps: serve-index@~1.7.2 + - deps: type-is@~1.6.6 + - deps: vhost@~3.0.1 + * deps: vary@~1.0.1 + - Fix setting empty header from empty `field` + - perf: enable strict mode + - perf: remove argument reassignments + +3.21.1 / 2015-07-05 +=================== + + * deps: basic-auth@~1.0.3 + * deps: connect@2.30.1 + - deps: body-parser@~1.13.2 + - deps: compression@~1.5.1 + - deps: errorhandler@~1.4.1 + - deps: morgan@~1.6.1 + - deps: pause@0.1.0 + - deps: qs@4.0.0 + - deps: serve-index@~1.7.1 + - deps: type-is@~1.6.4 + +3.21.0 / 2015-06-18 +=================== + + * deps: basic-auth@1.0.2 + - perf: enable strict mode + - perf: hoist regular expression + - perf: parse with regular expressions + - perf: remove argument reassignment + * deps: connect@2.30.0 + - deps: body-parser@~1.13.1 + - deps: bytes@2.1.0 + - deps: compression@~1.5.0 + - deps: cookie@0.1.3 + - deps: cookie-parser@~1.3.5 + - deps: csurf@~1.8.3 + - deps: errorhandler@~1.4.0 + - deps: express-session@~1.11.3 + - deps: finalhandler@0.4.0 + - deps: fresh@0.3.0 + - deps: morgan@~1.6.0 + - deps: serve-favicon@~2.3.0 + - deps: serve-index@~1.7.0 + - deps: serve-static@~1.10.0 + - deps: type-is@~1.6.3 + * deps: cookie@0.1.3 + - perf: deduce the scope of try-catch deopt + - perf: remove argument reassignments + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Always include entity length in ETags for hash length extensions + - Generate non-Stats ETags using MD5 only (no longer CRC32) + - Improve stat performance by removing hashing + - Improve support for JXcore + - Remove base64 padding in ETags to shorten + - Support "fake" stats objects in environments without fs + - Use MD5 instead of MD4 in weak ETags over 1KB + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: mkdirp@0.5.1 + - Work in global strict mode + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + +3.20.3 / 2015-05-17 +=================== + + * deps: connect@2.29.2 + - deps: body-parser@~1.12.4 + - deps: compression@~1.4.4 + - deps: connect-timeout@~1.6.2 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: errorhandler@~1.3.6 + - deps: finalhandler@0.3.6 + - deps: method-override@~2.3.3 + - deps: morgan@~1.5.3 + - deps: qs@2.4.2 + - deps: response-time@~2.3.1 + - deps: serve-favicon@~2.2.1 + - deps: serve-index@~1.6.4 + - deps: serve-static@~1.9.3 + - deps: type-is@~1.6.2 + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: proxy-addr@~1.0.8 + - deps: ipaddr.js@1.0.1 + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +3.20.2 / 2015-03-16 +=================== + + * deps: connect@2.29.1 + - deps: body-parser@~1.12.2 + - deps: compression@~1.4.3 + - deps: connect-timeout@~1.6.1 + - deps: debug@~2.1.3 + - deps: errorhandler@~1.3.5 + - deps: express-session@~1.10.4 + - deps: finalhandler@0.3.4 + - deps: method-override@~2.3.2 + - deps: morgan@~1.5.2 + - deps: qs@2.4.1 + - deps: serve-index@~1.6.3 + - deps: serve-static@~1.9.2 + - deps: type-is@~1.6.1 + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: merge-descriptors@1.0.0 + * deps: proxy-addr@~1.0.7 + - deps: ipaddr.js@0.1.9 + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +3.20.1 / 2015-02-28 +=================== + + * Fix `req.host` when using "trust proxy" hops count + * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count + +3.20.0 / 2015-02-18 +=================== + + * Fix `"trust proxy"` setting to inherit when app is mounted + * Generate `ETag`s for all request responses + - No longer restricted to only responses for `GET` and `HEAD` requests + * Use `content-type` to parse `Content-Type` headers + * deps: connect@2.29.0 + - Use `content-type` to parse `Content-Type` headers + - deps: body-parser@~1.12.0 + - deps: compression@~1.4.1 + - deps: connect-timeout@~1.6.0 + - deps: cookie-parser@~1.3.4 + - deps: cookie-signature@1.0.6 + - deps: csurf@~1.7.0 + - deps: errorhandler@~1.3.4 + - deps: express-session@~1.10.3 + - deps: http-errors@~1.3.1 + - deps: response-time@~2.3.0 + - deps: serve-index@~1.6.2 + - deps: serve-static@~1.9.1 + - deps: type-is@~1.6.0 + * deps: cookie-signature@1.0.6 + * deps: send@0.12.1 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +3.19.2 / 2015-02-01 +=================== + + * deps: connect@2.28.3 + - deps: compression@~1.3.1 + - deps: csurf@~1.6.6 + - deps: errorhandler@~1.3.3 + - deps: express-session@~1.10.2 + - deps: serve-index@~1.6.1 + - deps: type-is@~1.5.6 + * deps: proxy-addr@~1.0.6 + - deps: ipaddr.js@0.1.8 + +3.19.1 / 2015-01-20 +=================== + + * deps: connect@2.28.2 + - deps: body-parser@~1.10.2 + - deps: serve-static@~1.8.1 + * deps: send@0.11.1 + - Fix root path disclosure + +3.19.0 / 2015-01-09 +=================== + + * Fix `OPTIONS` responses to include the `HEAD` method property + * Use `readline` for prompt in `express(1)` + * deps: commander@2.6.0 + * deps: connect@2.28.1 + - deps: body-parser@~1.10.1 + - deps: compression@~1.3.0 + - deps: connect-timeout@~1.5.0 + - deps: csurf@~1.6.4 + - deps: debug@~2.1.1 + - deps: errorhandler@~1.3.2 + - deps: express-session@~1.10.1 + - deps: finalhandler@0.3.3 + - deps: method-override@~2.3.1 + - deps: morgan@~1.5.1 + - deps: serve-favicon@~2.2.0 + - deps: serve-index@~1.6.0 + - deps: serve-static@~1.8.0 + - deps: type-is@~1.5.5 + * deps: debug@~2.1.1 + * deps: methods@~1.1.1 + * deps: proxy-addr@~1.0.5 + - deps: ipaddr.js@0.1.6 + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +3.18.6 / 2014-12-12 +=================== + + * Fix exception in `req.fresh`/`req.stale` without response headers + +3.18.5 / 2014-12-11 +=================== + + * deps: connect@2.27.6 + - deps: compression@~1.2.2 + - deps: express-session@~1.9.3 + - deps: http-errors@~1.2.8 + - deps: serve-index@~1.5.3 + - deps: type-is@~1.5.4 + +3.18.4 / 2014-11-23 +=================== + + * deps: connect@2.27.4 + - deps: body-parser@~1.9.3 + - deps: compression@~1.2.1 + - deps: errorhandler@~1.2.3 + - deps: express-session@~1.9.2 + - deps: qs@2.3.3 + - deps: serve-favicon@~2.1.7 + - deps: serve-static@~1.5.1 + - deps: type-is@~1.5.3 + * deps: etag@~1.5.1 + * deps: proxy-addr@~1.0.4 + - deps: ipaddr.js@0.1.5 + +3.18.3 / 2014-11-09 +=================== + + * deps: connect@2.27.3 + - Correctly invoke async callback asynchronously + - deps: csurf@~1.6.3 + +3.18.2 / 2014-10-28 +=================== + + * deps: connect@2.27.2 + - Fix handling of URLs containing `://` in the path + - deps: body-parser@~1.9.2 + - deps: qs@2.3.2 + +3.18.1 / 2014-10-22 +=================== + + * Fix internal `utils.merge` deprecation warnings + * deps: connect@2.27.1 + - deps: body-parser@~1.9.1 + - deps: express-session@~1.9.1 + - deps: finalhandler@0.3.2 + - deps: morgan@~1.4.1 + - deps: qs@2.3.0 + - deps: serve-static@~1.7.1 + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +3.18.0 / 2014-10-17 +=================== + + * Use `content-disposition` module for `res.attachment`/`res.download` + - Sends standards-compliant `Content-Disposition` header + - Full Unicode support + * Use `etag` module to generate `ETag` headers + * deps: connect@2.27.0 + - Use `http-errors` module for creating errors + - Use `utils-merge` module for merging objects + - deps: body-parser@~1.9.0 + - deps: compression@~1.2.0 + - deps: connect-timeout@~1.4.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: express-session@~1.9.0 + - deps: finalhandler@0.3.1 + - deps: method-override@~2.3.0 + - deps: morgan@~1.4.0 + - deps: response-time@~2.2.0 + - deps: serve-favicon@~2.1.6 + - deps: serve-index@~1.5.0 + - deps: serve-static@~1.7.0 + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +3.17.8 / 2014-10-15 +=================== + + * deps: connect@2.26.6 + - deps: compression@~1.1.2 + - deps: csurf@~1.6.2 + - deps: errorhandler@~1.2.2 + +3.17.7 / 2014-10-08 +=================== + + * deps: connect@2.26.5 + - Fix accepting non-object arguments to `logger` + - deps: serve-static@~1.6.4 + +3.17.6 / 2014-10-02 +=================== + + * deps: connect@2.26.4 + - deps: morgan@~1.3.2 + - deps: type-is@~1.5.2 + +3.17.5 / 2014-09-24 +=================== + + * deps: connect@2.26.3 + - deps: body-parser@~1.8.4 + - deps: serve-favicon@~2.1.5 + - deps: serve-static@~1.6.3 + * deps: proxy-addr@~1.0.3 + - Use `forwarded` npm module + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +3.17.4 / 2014-09-19 +=================== + + * deps: connect@2.26.2 + - deps: body-parser@~1.8.3 + - deps: qs@2.2.4 + +3.17.3 / 2014-09-18 +=================== + + * deps: proxy-addr@~1.0.2 + - Fix a global leak when multiple subnets are trusted + - deps: ipaddr.js@0.1.3 + +3.17.2 / 2014-09-15 +=================== + + * Use `crc` instead of `buffer-crc32` for speed + * deps: connect@2.26.1 + - deps: body-parser@~1.8.2 + - deps: depd@0.4.5 + - deps: express-session@~1.8.2 + - deps: morgan@~1.3.1 + - deps: serve-favicon@~2.1.3 + - deps: serve-static@~1.6.2 + * deps: depd@0.4.5 + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +3.17.1 / 2014-09-08 +=================== + + * Fix error in `req.subdomains` on empty host + +3.17.0 / 2014-09-08 +=================== + + * Support `X-Forwarded-Host` in `req.subdomains` + * Support IP address host in `req.subdomains` + * deps: connect@2.26.0 + - deps: body-parser@~1.8.1 + - deps: compression@~1.1.0 + - deps: connect-timeout@~1.3.0 + - deps: cookie-parser@~1.3.3 + - deps: cookie-signature@1.0.5 + - deps: csurf@~1.6.1 + - deps: debug@~2.0.0 + - deps: errorhandler@~1.2.0 + - deps: express-session@~1.8.1 + - deps: finalhandler@0.2.0 + - deps: fresh@0.2.4 + - deps: media-typer@0.3.0 + - deps: method-override@~2.2.0 + - deps: morgan@~1.3.0 + - deps: qs@2.2.3 + - deps: serve-favicon@~2.1.3 + - deps: serve-index@~1.2.1 + - deps: serve-static@~1.6.1 + - deps: type-is@~1.5.1 + - deps: vhost@~3.0.0 + * deps: cookie-signature@1.0.5 + * deps: debug@~2.0.0 + * deps: fresh@0.2.4 + * deps: media-typer@0.3.0 + - Throw error when parameter format invalid on parse + * deps: range-parser@~1.0.2 + * deps: send@0.9.1 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + - deps: fresh@0.2.4 + * deps: vary@~1.0.0 + - Accept valid `Vary` header string as `field` + +3.16.10 / 2014-09-04 +==================== + + * deps: connect@2.25.10 + - deps: serve-static@~1.5.4 + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +3.16.9 / 2014-08-29 +=================== + + * deps: connect@2.25.9 + - deps: body-parser@~1.6.7 + - deps: qs@2.2.2 + +3.16.8 / 2014-08-27 +=================== + + * deps: connect@2.25.8 + - deps: body-parser@~1.6.6 + - deps: csurf@~1.4.1 + - deps: qs@2.2.0 + +3.16.7 / 2014-08-18 +=================== + + * deps: connect@2.25.7 + - deps: body-parser@~1.6.5 + - deps: express-session@~1.7.6 + - deps: morgan@~1.2.3 + - deps: serve-static@~1.5.3 + * deps: send@0.8.3 + - deps: destroy@1.0.3 + - deps: on-finished@2.1.0 + +3.16.6 / 2014-08-14 +=================== + + * deps: connect@2.25.6 + - deps: body-parser@~1.6.4 + - deps: qs@1.2.2 + - deps: serve-static@~1.5.2 + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +3.16.5 / 2014-08-11 +=================== + + * deps: connect@2.25.5 + - Fix backwards compatibility in `logger` + +3.16.4 / 2014-08-10 +=================== + + * Fix original URL parsing in `res.location` + * deps: connect@2.25.4 + - Fix `query` middleware breaking with argument + - deps: body-parser@~1.6.3 + - deps: compression@~1.0.11 + - deps: connect-timeout@~1.2.2 + - deps: express-session@~1.7.5 + - deps: method-override@~2.1.3 + - deps: on-headers@~1.0.0 + - deps: parseurl@~1.3.0 + - deps: qs@1.2.1 + - deps: response-time@~2.0.1 + - deps: serve-index@~1.1.6 + - deps: serve-static@~1.5.1 + * deps: parseurl@~1.3.0 + +3.16.3 / 2014-08-07 +=================== + + * deps: connect@2.25.3 + - deps: multiparty@3.3.2 + +3.16.2 / 2014-08-07 +=================== + + * deps: connect@2.25.2 + - deps: body-parser@~1.6.2 + - deps: qs@1.2.0 + +3.16.1 / 2014-08-06 +=================== + + * deps: connect@2.25.1 + - deps: body-parser@~1.6.1 + - deps: qs@1.1.0 + +3.16.0 / 2014-08-05 +=================== + + * deps: connect@2.25.0 + - deps: body-parser@~1.6.0 + - deps: compression@~1.0.10 + - deps: csurf@~1.4.0 + - deps: express-session@~1.7.4 + - deps: qs@1.0.2 + - deps: serve-static@~1.5.0 + * deps: send@0.8.1 + - Add `extensions` option + +3.15.3 / 2014-08-04 +=================== + + * fix `res.sendfile` regression for serving directory index files + * deps: connect@2.24.3 + - deps: serve-index@~1.1.5 + - deps: serve-static@~1.4.4 + * deps: send@0.7.4 + - Fix incorrect 403 on Windows and Node.js 0.11 + - Fix serving index files without root dir + +3.15.2 / 2014-07-27 +=================== + + * deps: connect@2.24.2 + - deps: body-parser@~1.5.2 + - deps: depd@0.4.4 + - deps: express-session@~1.7.2 + - deps: morgan@~1.2.2 + - deps: serve-static@~1.4.2 + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + * deps: send@0.7.2 + - deps: depd@0.4.4 + +3.15.1 / 2014-07-26 +=================== + + * deps: connect@2.24.1 + - deps: body-parser@~1.5.1 + - deps: depd@0.4.3 + - deps: express-session@~1.7.1 + - deps: morgan@~1.2.1 + - deps: serve-index@~1.1.4 + - deps: serve-static@~1.4.1 + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + * deps: send@0.7.1 + - deps: depd@0.4.3 + +3.15.0 / 2014-07-22 +=================== + + * Fix `req.protocol` for proxy-direct connections + * Pass options from `res.sendfile` to `send` + * deps: connect@2.24.0 + - deps: body-parser@~1.5.0 + - deps: compression@~1.0.9 + - deps: connect-timeout@~1.2.1 + - deps: debug@1.0.4 + - deps: depd@0.4.2 + - deps: express-session@~1.7.0 + - deps: finalhandler@0.1.0 + - deps: method-override@~2.1.2 + - deps: morgan@~1.2.0 + - deps: multiparty@3.3.1 + - deps: parseurl@~1.2.0 + - deps: serve-static@~1.4.0 + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - Cap `maxAge` value to 1 year + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +3.14.0 / 2014-07-11 +=================== + + * add explicit "Rosetta Flash JSONP abuse" protection + - previous versions are not vulnerable; this is just explicit protection + * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead + * fix `res.send(status, num)` to send `num` as json (not error) + * remove unnecessary escaping when `res.jsonp` returns JSON response + * deps: basic-auth@1.0.0 + - support empty password + - support empty username + * deps: connect@2.23.0 + - deps: debug@1.0.3 + - deps: express-session@~1.6.4 + - deps: method-override@~2.1.0 + - deps: parseurl@~1.1.3 + - deps: serve-static@~1.3.1 + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + * deps: methods@1.1.0 + - add `CONNECT` + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +3.13.0 / 2014-07-03 +=================== + + * add deprecation message to `app.configure` + * add deprecation message to `req.auth` + * use `basic-auth` to parse `Authorization` header + * deps: connect@2.22.0 + - deps: csurf@~1.3.0 + - deps: express-session@~1.6.1 + - deps: multiparty@3.3.0 + - deps: serve-static@~1.3.0 + * deps: send@0.5.0 + - Accept string for `maxage` (converted by `ms`) + - Include link in default redirect response + +3.12.1 / 2014-06-26 +=================== + + * deps: connect@2.21.1 + - deps: cookie-parser@1.3.2 + - deps: cookie-signature@1.0.4 + - deps: express-session@~1.5.2 + - deps: type-is@~1.3.2 + * deps: cookie-signature@1.0.4 + - fix for timing attacks + +3.12.0 / 2014-06-21 +=================== + + * use `media-typer` to alter content-type charset + * deps: connect@2.21.0 + - deprecate `connect(middleware)` -- use `app.use(middleware)` instead + - deprecate `connect.createServer()` -- use `connect()` instead + - fix `res.setHeader()` patch to work with get -> append -> set pattern + - deps: compression@~1.0.8 + - deps: errorhandler@~1.1.1 + - deps: express-session@~1.5.0 + - deps: serve-index@~1.1.3 + +3.11.0 / 2014-06-19 +=================== + + * deprecate things with `depd` module + * deps: buffer-crc32@0.2.3 + * deps: connect@2.20.2 + - deprecate `verify` option to `json` -- use `body-parser` npm module instead + - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead + - deprecate things with `depd` module + - use `finalhandler` for final response handling + - use `media-typer` to parse `content-type` for charset + - deps: body-parser@1.4.3 + - deps: connect-timeout@1.1.1 + - deps: cookie-parser@1.3.1 + - deps: csurf@1.2.2 + - deps: errorhandler@1.1.0 + - deps: express-session@1.4.0 + - deps: multiparty@3.2.9 + - deps: serve-index@1.1.2 + - deps: type-is@1.3.1 + - deps: vhost@2.0.0 + +3.10.5 / 2014-06-11 +=================== + + * deps: connect@2.19.6 + - deps: body-parser@1.3.1 + - deps: compression@1.0.7 + - deps: debug@1.0.2 + - deps: serve-index@1.1.1 + - deps: serve-static@1.2.3 + * deps: debug@1.0.2 + * deps: send@0.4.3 + - Do not throw uncatchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +3.10.4 / 2014-06-09 +=================== + + * deps: connect@2.19.5 + - fix "event emitter leak" warnings + - deps: csurf@1.2.1 + - deps: debug@1.0.1 + - deps: serve-static@1.2.2 + - deps: type-is@1.2.1 + * deps: debug@1.0.1 + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: finished@1.2.1 + - deps: debug@1.0.1 + +3.10.3 / 2014-06-05 +=================== + + * use `vary` module for `res.vary` + * deps: connect@2.19.4 + - deps: errorhandler@1.0.2 + - deps: method-override@2.0.2 + - deps: serve-favicon@2.0.1 + * deps: debug@1.0.0 + +3.10.2 / 2014-06-03 +=================== + + * deps: connect@2.19.3 + - deps: compression@1.0.6 + +3.10.1 / 2014-06-03 +=================== + + * deps: connect@2.19.2 + - deps: compression@1.0.4 + * deps: proxy-addr@1.0.1 + +3.10.0 / 2014-06-02 +=================== + + * deps: connect@2.19.1 + - deprecate `methodOverride()` -- use `method-override` npm module instead + - deps: body-parser@1.3.0 + - deps: method-override@2.0.1 + - deps: multiparty@3.2.8 + - deps: response-time@2.0.0 + - deps: serve-static@1.2.1 + * deps: methods@1.0.1 + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +3.9.0 / 2014-05-30 +================== + + * custom etag control with `app.set('etag', val)` + - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation + - `app.set('etag', 'weak')` weak tag + - `app.set('etag', 'strong')` strong etag + - `app.set('etag', false)` turn off + - `app.set('etag', true)` standard etag + * Include ETag in HEAD requests + * mark `res.send` ETag as weak and reduce collisions + * update connect to 2.18.0 + - deps: compression@1.0.3 + - deps: serve-index@1.1.0 + - deps: serve-static@1.2.0 + * update send to 0.4.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: debug@0.8.1 + +3.8.1 / 2014-05-27 +================== + + * update connect to 2.17.3 + - deps: body-parser@1.2.2 + - deps: express-session@1.2.1 + - deps: method-override@1.0.2 + +3.8.0 / 2014-05-21 +================== + + * keep previous `Content-Type` for `res.jsonp` + * set proper `charset` in `Content-Type` for `res.send` + * update connect to 2.17.1 + - fix `res.charset` appending charset when `content-type` has one + - deps: express-session@1.2.0 + - deps: morgan@1.1.1 + - deps: serve-index@1.0.3 + +3.7.0 / 2014-05-18 +================== + + * proper proxy trust with `app.set('trust proxy', trust)` + - `app.set('trust proxy', 1)` trust first hop + - `app.set('trust proxy', 'loopback')` trust loopback addresses + - `app.set('trust proxy', '10.0.0.1')` trust single IP + - `app.set('trust proxy', '10.0.0.1/16')` trust subnet + - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list + - `app.set('trust proxy', false)` turn off + - `app.set('trust proxy', true)` trust everything + * update connect to 2.16.2 + - deprecate `res.headerSent` -- use `res.headersSent` + - deprecate `res.on("header")` -- use on-headers module instead + - fix edge-case in `res.appendHeader` that would append in wrong order + - json: use body-parser + - urlencoded: use body-parser + - dep: bytes@1.0.0 + - dep: cookie-parser@1.1.0 + - dep: csurf@1.2.0 + - dep: express-session@1.1.0 + - dep: method-override@1.0.1 + +3.6.0 / 2014-05-09 +================== + + * deprecate `app.del()` -- use `app.delete()` instead + * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead + - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` + * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead + - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` + * support PURGE method + - add `app.purge` + - add `router.purge` + - include PURGE in `app.all` + * update connect to 2.15.0 + * Add `res.appendHeader` + * Call error stack even when response has been sent + * Patch `res.headerSent` to return Boolean + * Patch `res.headersSent` for node.js 0.8 + * Prevent default 404 handler after response sent + * dep: compression@1.0.2 + * dep: connect-timeout@1.1.0 + * dep: debug@^0.8.0 + * dep: errorhandler@1.0.1 + * dep: express-session@1.0.4 + * dep: morgan@1.0.1 + * dep: serve-favicon@2.0.0 + * dep: serve-index@1.0.2 + * update debug to 0.8.0 + * add `enable()` method + * change from stderr to stdout + * update methods to 1.0.0 + - add PURGE + * update mkdirp to 0.5.0 + +3.5.3 / 2014-05-08 +================== + + * fix `req.host` for IPv6 literals + * fix `res.jsonp` error if callback param is object + +3.5.2 / 2014-04-24 +================== + + * update connect to 2.14.5 + * update cookie to 0.1.2 + * update mkdirp to 0.4.0 + * update send to 0.3.0 + +3.5.1 / 2014-03-25 +================== + + * pin less-middleware in generated app + +3.5.0 / 2014-03-06 +================== + + * bump deps + +3.4.8 / 2014-01-13 +================== + + * prevent incorrect automatic OPTIONS responses #1868 @dpatti + * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi + * throw 400 in case of malformed paths @rlidwka + +3.4.7 / 2013-12-10 +================== + + * update connect + +3.4.6 / 2013-12-01 +================== + + * update connect (raw-body) + +3.4.5 / 2013-11-27 +================== + + * update connect + * res.location: remove leading ./ #1802 @kapouer + * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra + * res.send: always send ETag when content-length > 0 + * router: add Router.all() method + +3.4.4 / 2013-10-29 +================== + + * update connect + * update supertest + * update methods + * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04 + +3.4.3 / 2013-10-23 +================== + + * update connect + +3.4.2 / 2013-10-18 +================== + + * update connect + * downgrade commander + +3.4.1 / 2013-10-15 +================== + + * update connect + * update commander + * jsonp: check if callback is a function + * router: wrap encodeURIComponent in a try/catch #1735 (@lxe) + * res.format: now includes charset @1747 (@sorribas) + * res.links: allow multiple calls @1746 (@sorribas) + +3.4.0 / 2013-09-07 +================== + + * add res.vary(). Closes #1682 + * update connect + +3.3.8 / 2013-09-02 +================== + + * update connect + +3.3.7 / 2013-08-28 +================== + + * update connect + +3.3.6 / 2013-08-27 +================== + + * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients) + * add: req.accepts take an argument list + +3.3.4 / 2013-07-08 +================== + + * update send and connect + +3.3.3 / 2013-07-04 +================== + + * update connect + +3.3.2 / 2013-07-03 +================== + + * update connect + * update send + * remove .version export + +3.3.1 / 2013-06-27 +================== + + * update connect + +3.3.0 / 2013-06-26 +================== + + * update connect + * add support for multiple X-Forwarded-Proto values. Closes #1646 + * change: remove charset from json responses. Closes #1631 + * change: return actual booleans from req.accept* functions + * fix jsonp callback array throw + +3.2.6 / 2013-06-02 +================== + + * update connect + +3.2.5 / 2013-05-21 +================== + + * update connect + * update node-cookie + * add: throw a meaningful error when there is no default engine + * change generation of ETags with res.send() to GET requests only. Closes #1619 + +3.2.4 / 2013-05-09 +================== + + * fix `req.subdomains` when no Host is present + * fix `req.host` when no Host is present, return undefined + +3.2.3 / 2013-05-07 +================== + + * update connect / qs + +3.2.2 / 2013-05-03 +================== + + * update qs + +3.2.1 / 2013-04-29 +================== + + * add app.VERB() paths array deprecation warning + * update connect + * update qs and remove all ~ semver crap + * fix: accept number as value of Signed Cookie + +3.2.0 / 2013-04-15 +================== + + * add "view" constructor setting to override view behaviour + * add req.acceptsEncoding(name) + * add req.acceptedEncodings + * revert cookie signature change causing session race conditions + * fix sorting of Accept values of the same quality + +3.1.2 / 2013-04-12 +================== + + * add support for custom Accept parameters + * update cookie-signature + +3.1.1 / 2013-04-01 +================== + + * add X-Forwarded-Host support to `req.host` + * fix relative redirects + * update mkdirp + * update buffer-crc32 + * remove legacy app.configure() method from app template. + +3.1.0 / 2013-01-25 +================== + + * add support for leading "." in "view engine" setting + * add array support to `res.set()` + * add node 0.8.x to travis.yml + * add "subdomain offset" setting for tweaking `req.subdomains` + * add `res.location(url)` implementing `res.redirect()`-like setting of Location + * use app.get() for x-powered-by setting for inheritance + * fix colons in passwords for `req.auth` + +3.0.6 / 2013-01-04 +================== + + * add http verb methods to Router + * update connect + * fix mangling of the `res.cookie()` options object + * fix jsonp whitespace escape. Closes #1132 + +3.0.5 / 2012-12-19 +================== + + * add throwing when a non-function is passed to a route + * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses + * revert "add 'etag' option" + +3.0.4 / 2012-12-05 +================== + + * add 'etag' option to disable `res.send()` Etags + * add escaping of urls in text/plain in `res.redirect()` + for old browsers interpreting as html + * change crc32 module for a more liberal license + * update connect + +3.0.3 / 2012-11-13 +================== + + * update connect + * update cookie module + * fix cookie max-age + +3.0.2 / 2012-11-08 +================== + + * add OPTIONS to cors example. Closes #1398 + * fix route chaining regression. Closes #1397 + +3.0.1 / 2012-11-01 +================== + + * update connect + +3.0.0 / 2012-10-23 +================== + + * add `make clean` + * add "Basic" check to req.auth + * add `req.auth` test coverage + * add cb && cb(payload) to `res.jsonp()`. Closes #1374 + * add backwards compat for `res.redirect()` status. Closes #1336 + * add support for `res.json()` to retain previously defined Content-Types. Closes #1349 + * update connect + * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382 + * remove non-primitive string support for `res.send()` + * fix view-locals example. Closes #1370 + * fix route-separation example + +3.0.0rc5 / 2012-09-18 +================== + + * update connect + * add redis search example + * add static-files example + * add "x-powered-by" setting (`app.disable('x-powered-by')`) + * add "application/octet-stream" redirect Accept test case. Closes #1317 + +3.0.0rc4 / 2012-08-30 +================== + + * add `res.jsonp()`. Closes #1307 + * add "verbose errors" option to error-pages example + * add another route example to express(1) so people are not so confused + * add redis online user activity tracking example + * update connect dep + * fix etag quoting. Closes #1310 + * fix error-pages 404 status + * fix jsonp callback char restrictions + * remove old OPTIONS default response + +3.0.0rc3 / 2012-08-13 +================== + + * update connect dep + * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds] + * fix `res.render()` clobbering of "locals" + +3.0.0rc2 / 2012-08-03 +================== + + * add CORS example + * update connect dep + * deprecate `.createServer()` & remove old stale examples + * fix: escape `res.redirect()` link + * fix vhost example + +3.0.0rc1 / 2012-07-24 +================== + + * add more examples to view-locals + * add scheme-relative redirects (`res.redirect("//foo.com")`) support + * update cookie dep + * update connect dep + * update send dep + * fix `express(1)` -h flag, use -H for hogan. Closes #1245 + * fix `res.sendfile()` socket error handling regression + +3.0.0beta7 / 2012-07-16 +================== + + * update connect dep for `send()` root normalization regression + +3.0.0beta6 / 2012-07-13 +================== + + * add `err.view` property for view errors. Closes #1226 + * add "jsonp callback name" setting + * add support for "/foo/:bar*" non-greedy matches + * change `res.sendfile()` to use `send()` module + * change `res.send` to use "response-send" module + * remove `app.locals.use` and `res.locals.use`, use regular middleware + +3.0.0beta5 / 2012-07-03 +================== + + * add "make check" support + * add route-map example + * add `res.json(obj, status)` support back for BC + * add "methods" dep, remove internal methods module + * update connect dep + * update auth example to utilize cores pbkdf2 + * updated tests to use "supertest" + +3.0.0beta4 / 2012-06-25 +================== + + * Added `req.auth` + * Added `req.range(size)` + * Added `res.links(obj)` + * Added `res.send(body, status)` support back for backwards compat + * Added `.default()` support to `res.format()` + * Added 2xx / 304 check to `req.fresh` + * Revert "Added + support to the router" + * Fixed `res.send()` freshness check, respect res.statusCode + +3.0.0beta3 / 2012-06-15 +================== + + * Added hogan `--hjs` to express(1) [nullfirm] + * Added another example to content-negotiation + * Added `fresh` dep + * Changed: `res.send()` always checks freshness + * Fixed: expose connects mime module. Closes #1165 + +3.0.0beta2 / 2012-06-06 +================== + + * Added `+` support to the router + * Added `req.host` + * Changed `req.param()` to check route first + * Update connect dep + +3.0.0beta1 / 2012-06-01 +================== + + * Added `res.format()` callback to override default 406 behaviour + * Fixed `res.redirect()` 406. Closes #1154 + +3.0.0alpha5 / 2012-05-30 +================== + + * Added `req.ip` + * Added `{ signed: true }` option to `res.cookie()` + * Removed `res.signedCookie()` + * Changed: dont reverse `req.ips` + * Fixed "trust proxy" setting check for `req.ips` + +3.0.0alpha4 / 2012-05-09 +================== + + * Added: allow `[]` in jsonp callback. Closes #1128 + * Added `PORT` env var support in generated template. Closes #1118 [benatkin] + * Updated: connect 2.2.2 + +3.0.0alpha3 / 2012-05-04 +================== + + * Added public `app.routes`. Closes #887 + * Added _view-locals_ example + * Added _mvc_ example + * Added `res.locals.use()`. Closes #1120 + * Added conditional-GET support to `res.send()` + * Added: coerce `res.set()` values to strings + * Changed: moved `static()` in generated apps below router + * Changed: `res.send()` only set ETag when not previously set + * Changed connect 2.2.1 dep + * Changed: `make test` now runs unit / acceptance tests + * Fixed req/res proto inheritance + +3.0.0alpha2 / 2012-04-26 +================== + + * Added `make benchmark` back + * Added `res.send()` support for `String` objects + * Added client-side data exposing example + * Added `res.header()` and `req.header()` aliases for BC + * Added `express.createServer()` for BC + * Perf: memoize parsed urls + * Perf: connect 2.2.0 dep + * Changed: make `expressInit()` middleware self-aware + * Fixed: use app.get() for all core settings + * Fixed redis session example + * Fixed session example. Closes #1105 + * Fixed generated express dep. Closes #1078 + +3.0.0alpha1 / 2012-04-15 +================== + + * Added `app.locals.use(callback)` + * Added `app.locals` object + * Added `app.locals(obj)` + * Added `res.locals` object + * Added `res.locals(obj)` + * Added `res.format()` for content-negotiation + * Added `app.engine()` + * Added `res.cookie()` JSON cookie support + * Added "trust proxy" setting + * Added `req.subdomains` + * Added `req.protocol` + * Added `req.secure` + * Added `req.path` + * Added `req.ips` + * Added `req.fresh` + * Added `req.stale` + * Added comma-delimited / array support for `req.accepts()` + * Added debug instrumentation + * Added `res.set(obj)` + * Added `res.set(field, value)` + * Added `res.get(field)` + * Added `app.get(setting)`. Closes #842 + * Added `req.acceptsLanguage()` + * Added `req.acceptsCharset()` + * Added `req.accepted` + * Added `req.acceptedLanguages` + * Added `req.acceptedCharsets` + * Added "json replacer" setting + * Added "json spaces" setting + * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92 + * Added `--less` support to express(1) + * Added `express.response` prototype + * Added `express.request` prototype + * Added `express.application` prototype + * Added `app.path()` + * Added `app.render()` + * Added `res.type()` to replace `res.contentType()` + * Changed: `res.redirect()` to add relative support + * Changed: enable "jsonp callback" by default + * Changed: renamed "case sensitive routes" to "case sensitive routing" + * Rewrite of all tests with mocha + * Removed "root" setting + * Removed `res.redirect('home')` support + * Removed `req.notify()` + * Removed `app.register()` + * Removed `app.redirect()` + * Removed `app.is()` + * Removed `app.helpers()` + * Removed `app.dynamicHelpers()` + * Fixed `res.sendfile()` with non-GET. Closes #723 + * Fixed express(1) public dir for windows. Closes #866 + +2.5.9/ 2012-04-02 +================== + + * Added support for PURGE request method [pbuyle] + * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki] + +2.5.8 / 2012-02-08 +================== + + * Update mkdirp dep. Closes #991 + +2.5.7 / 2012-02-06 +================== + + * Fixed `app.all` duplicate DELETE requests [mscdex] + +2.5.6 / 2012-01-13 +================== + + * Updated hamljs dev dep. Closes #953 + +2.5.5 / 2012-01-08 +================== + + * Fixed: set `filename` on cached templates [matthewleon] + +2.5.4 / 2012-01-02 +================== + + * Fixed `express(1)` eol on 0.4.x. Closes #947 + +2.5.3 / 2011-12-30 +================== + + * Fixed `req.is()` when a charset is present + +2.5.2 / 2011-12-10 +================== + + * Fixed: express(1) LF -> CRLF for windows + +2.5.1 / 2011-11-17 +================== + + * Changed: updated connect to 1.8.x + * Removed sass.js support from express(1) + +2.5.0 / 2011-10-24 +================== + + * Added ./routes dir for generated app by default + * Added npm install reminder to express(1) app gen + * Added 0.5.x support + * Removed `make test-cov` since it wont work with node 0.5.x + * Fixed express(1) public dir for windows. Closes #866 + +2.4.7 / 2011-10-05 +================== + + * Added mkdirp to express(1). Closes #795 + * Added simple _json-config_ example + * Added shorthand for the parsed request's pathname via `req.path` + * Changed connect dep to 1.7.x to fix npm issue... + * Fixed `res.redirect()` __HEAD__ support. [reported by xerox] + * Fixed `req.flash()`, only escape args + * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie] + +2.4.6 / 2011-08-22 +================== + + * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode] + +2.4.5 / 2011-08-19 +================== + + * Added support for routes to handle errors. Closes #809 + * Added `app.routes.all()`. Closes #803 + * Added "basepath" setting to work in conjunction with reverse proxies etc. + * Refactored `Route` to use a single array of callbacks + * Added support for multiple callbacks for `app.param()`. Closes #801 +Closes #805 + * Changed: removed .call(self) for route callbacks + * Dependency: `qs >= 0.3.1` + * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808 + +2.4.4 / 2011-08-05 +================== + + * Fixed `res.header()` intention of a set, even when `undefined` + * Fixed `*`, value no longer required + * Fixed `res.send(204)` support. Closes #771 + +2.4.3 / 2011-07-14 +================== + + * Added docs for `status` option special-case. Closes #739 + * Fixed `options.filename`, exposing the view path to template engines + +2.4.2. / 2011-07-06 +================== + + * Revert "removed jsonp stripping" for XSS + +2.4.1 / 2011-07-06 +================== + + * Added `res.json()` JSONP support. Closes #737 + * Added _extending-templates_ example. Closes #730 + * Added "strict routing" setting for trailing slashes + * Added support for multiple envs in `app.configure()` calls. Closes #735 + * Changed: `res.send()` using `res.json()` + * Changed: when cookie `path === null` don't default it + * Changed; default cookie path to "home" setting. Closes #731 + * Removed _pids/logs_ creation from express(1) + +2.4.0 / 2011-06-28 +================== + + * Added chainable `res.status(code)` + * Added `res.json()`, an explicit version of `res.send(obj)` + * Added simple web-service example + +2.3.12 / 2011-06-22 +================== + + * \#express is now on freenode! come join! + * Added `req.get(field, param)` + * Added links to Japanese documentation, thanks @hideyukisaito! + * Added; the `express(1)` generated app outputs the env + * Added `content-negotiation` example + * Dependency: connect >= 1.5.1 < 2.0.0 + * Fixed view layout bug. Closes #720 + * Fixed; ignore body on 304. Closes #701 + +2.3.11 / 2011-06-04 +================== + + * Added `npm test` + * Removed generation of dummy test file from `express(1)` + * Fixed; `express(1)` adds express as a dep + * Fixed; prune on `prepublish` + +2.3.10 / 2011-05-27 +================== + + * Added `req.route`, exposing the current route + * Added _package.json_ generation support to `express(1)` + * Fixed call to `app.param()` function for optional params. Closes #682 + +2.3.9 / 2011-05-25 +================== + + * Fixed bug-ish with `../' in `res.partial()` calls + +2.3.8 / 2011-05-24 +================== + + * Fixed `app.options()` + +2.3.7 / 2011-05-23 +================== + + * Added route `Collection`, ex: `app.get('/user/:id').remove();` + * Added support for `app.param(fn)` to define param logic + * Removed `app.param()` support for callback with return value + * Removed module.parent check from express(1) generated app. Closes #670 + * Refactored router. Closes #639 + +2.3.6 / 2011-05-20 +================== + + * Changed; using devDependencies instead of git submodules + * Fixed redis session example + * Fixed markdown example + * Fixed view caching, should not be enabled in development + +2.3.5 / 2011-05-20 +================== + + * Added export `.view` as alias for `.View` + +2.3.4 / 2011-05-08 +================== + + * Added `./examples/say` + * Fixed `res.sendfile()` bug preventing the transfer of files with spaces + +2.3.3 / 2011-05-03 +================== + + * Added "case sensitive routes" option. + * Changed; split methods supported per rfc [slaskis] + * Fixed route-specific middleware when using the same callback function several times + +2.3.2 / 2011-04-27 +================== + + * Fixed view hints + +2.3.1 / 2011-04-26 +================== + + * Added `app.match()` as `app.match.all()` + * Added `app.lookup()` as `app.lookup.all()` + * Added `app.remove()` for `app.remove.all()` + * Added `app.remove.VERB()` + * Fixed template caching collision issue. Closes #644 + * Moved router over from connect and started refactor + +2.3.0 / 2011-04-25 +================== + + * Added options support to `res.clearCookie()` + * Added `res.helpers()` as alias of `res.locals()` + * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0` + * Changed; auto set Content-Type in res.attachement [Aaron Heckmann] + * Renamed "cache views" to "view cache". Closes #628 + * Fixed caching of views when using several apps. Closes #637 + * Fixed gotcha invoking `app.param()` callbacks once per route middleware. +Closes #638 + * Fixed partial lookup precedence. Closes #631 +Shaw] + +2.2.2 / 2011-04-12 +================== + + * Added second callback support for `res.download()` connection errors + * Fixed `filename` option passing to template engine + +2.2.1 / 2011-04-04 +================== + + * Added `layout(path)` helper to change the layout within a view. Closes #610 + * Fixed `partial()` collection object support. + Previously only anything with `.length` would work. + When `.length` is present one must still be aware of holes, + however now `{ collection: {foo: 'bar'}}` is valid, exposes + `keyInCollection` and `keysInCollection`. + + * Performance improved with better view caching + * Removed `request` and `response` locals + * Changed; errorHandler page title is now `Express` instead of `Connect` + +2.2.0 / 2011-03-30 +================== + + * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606 + * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606 + * Added `app.VERB(path)` as alias of `app.lookup.VERB()`. + * Dependency `connect >= 1.2.0` + +2.1.1 / 2011-03-29 +================== + + * Added; expose `err.view` object when failing to locate a view + * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann] + * Fixed; `res.send(undefined)` responds with 204 [aheckmann] + +2.1.0 / 2011-03-24 +================== + + * Added `/_?` partial lookup support. Closes #447 + * Added `request`, `response`, and `app` local variables + * Added `settings` local variable, containing the app's settings + * Added `req.flash()` exception if `req.session` is not available + * Added `res.send(bool)` support (json response) + * Fixed stylus example for latest version + * Fixed; wrap try/catch around `res.render()` + +2.0.0 / 2011-03-17 +================== + + * Fixed up index view path alternative. + * Changed; `res.locals()` without object returns the locals + +2.0.0rc3 / 2011-03-17 +================== + + * Added `res.locals(obj)` to compliment `res.local(key, val)` + * Added `res.partial()` callback support + * Fixed recursive error reporting issue in `res.render()` + +2.0.0rc2 / 2011-03-17 +================== + + * Changed; `partial()` "locals" are now optional + * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01] + * Fixed .filename view engine option [reported by drudge] + * Fixed blog example + * Fixed `{req,res}.app` reference when mounting [Ben Weaver] + +2.0.0rc / 2011-03-14 +================== + + * Fixed; expose `HTTPSServer` constructor + * Fixed express(1) default test charset. Closes #579 [reported by secoif] + * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP] + +2.0.0beta3 / 2011-03-09 +================== + + * Added support for `res.contentType()` literal + The original `res.contentType('.json')`, + `res.contentType('application/json')`, and `res.contentType('json')` + will work now. + * Added `res.render()` status option support back + * Added charset option for `res.render()` + * Added `.charset` support (via connect 1.0.4) + * Added view resolution hints when in development and a lookup fails + * Added layout lookup support relative to the page view. + For example while rendering `./views/user/index.jade` if you create + `./views/user/layout.jade` it will be used in favour of the root layout. + * Fixed `res.redirect()`. RFC states absolute url [reported by unlink] + * Fixed; default `res.send()` string charset to utf8 + * Removed `Partial` constructor (not currently used) + +2.0.0beta2 / 2011-03-07 +================== + + * Added res.render() `.locals` support back to aid in migration process + * Fixed flash example + +2.0.0beta / 2011-03-03 +================== + + * Added HTTPS support + * Added `res.cookie()` maxAge support + * Added `req.header()` _Referrer_ / _Referer_ special-case, either works + * Added mount support for `res.redirect()`, now respects the mount-point + * Added `union()` util, taking place of `merge(clone())` combo + * Added stylus support to express(1) generated app + * Added secret to session middleware used in examples and generated app + * Added `res.local(name, val)` for progressive view locals + * Added default param support to `req.param(name, default)` + * Added `app.disabled()` and `app.enabled()` + * Added `app.register()` support for omitting leading ".", either works + * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539 + * Added `app.param()` to map route params to async/sync logic + * Added; aliased `app.helpers()` as `app.locals()`. Closes #481 + * Added extname with no leading "." support to `res.contentType()` + * Added `cache views` setting, defaulting to enabled in "production" env + * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_. + * Added `req.accepts()` support for extensions + * Changed; `res.download()` and `res.sendfile()` now utilize Connect's + static file server `connect.static.send()`. + * Changed; replaced `connect.utils.mime()` with npm _mime_ module + * Changed; allow `req.query` to be pre-defined (via middleware or other parent + * Changed view partial resolution, now relative to parent view + * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`. + * Fixed `req.param()` bug returning Array.prototype methods. Closes #552 + * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()` + * Fixed; using _qs_ module instead of _querystring_ + * Fixed; strip unsafe chars from jsonp callbacks + * Removed "stream threshold" setting + +1.0.8 / 2011-03-01 +================== + + * Allow `req.query` to be pre-defined (via middleware or other parent app) + * "connect": ">= 0.5.0 < 1.0.0". Closes #547 + * Removed the long deprecated __EXPRESS_ENV__ support + +1.0.7 / 2011-02-07 +================== + + * Fixed `render()` setting inheritance. + Mounted apps would not inherit "view engine" + +1.0.6 / 2011-02-07 +================== + + * Fixed `view engine` setting bug when period is in dirname + +1.0.5 / 2011-02-05 +================== + + * Added secret to generated app `session()` call + +1.0.4 / 2011-02-05 +================== + + * Added `qs` dependency to _package.json_ + * Fixed namespaced `require()`s for latest connect support + +1.0.3 / 2011-01-13 +================== + + * Remove unsafe characters from JSONP callback names [Ryan Grove] + +1.0.2 / 2011-01-10 +================== + + * Removed nested require, using `connect.router` + +1.0.1 / 2010-12-29 +================== + + * Fixed for middleware stacked via `createServer()` + previously the `foo` middleware passed to `createServer(foo)` + would not have access to Express methods such as `res.send()` + or props like `req.query` etc. + +1.0.0 / 2010-11-16 +================== + + * Added; deduce partial object names from the last segment. + For example by default `partial('forum/post', postObject)` will + give you the _post_ object, providing a meaningful default. + * Added http status code string representation to `res.redirect()` body + * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__. + * Added `req.is()` to aid in content negotiation + * Added partial local inheritance [suggested by masylum]. Closes #102 + providing access to parent template locals. + * Added _-s, --session[s]_ flag to express(1) to add session related middleware + * Added _--template_ flag to express(1) to specify the + template engine to use. + * Added _--css_ flag to express(1) to specify the + stylesheet engine to use (or just plain css by default). + * Added `app.all()` support [thanks aheckmann] + * Added partial direct object support. + You may now `partial('user', user)` providing the "user" local, + vs previously `partial('user', { object: user })`. + * Added _route-separation_ example since many people question ways + to do this with CommonJS modules. Also view the _blog_ example for + an alternative. + * Performance; caching view path derived partial object names + * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454 + * Fixed jsonp support; _text/javascript_ as per mailinglist discussion + +1.0.0rc4 / 2010-10-14 +================== + + * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0 + * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware)) + * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass] + * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass] + * Added `partial()` support for array-like collections. Closes #434 + * Added support for swappable querystring parsers + * Added session usage docs. Closes #443 + * Added dynamic helper caching. Closes #439 [suggested by maritz] + * Added authentication example + * Added basic Range support to `res.sendfile()` (and `res.download()` etc) + * Changed; `express(1)` generated app using 2 spaces instead of 4 + * Default env to "development" again [aheckmann] + * Removed _context_ option is no more, use "scope" + * Fixed; exposing _./support_ libs to examples so they can run without installs + * Fixed mvc example + +1.0.0rc3 / 2010-09-20 +================== + + * Added confirmation for `express(1)` app generation. Closes #391 + * Added extending of flash formatters via `app.flashFormatters` + * Added flash formatter support. Closes #411 + * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold" + * Added _stream threshold_ setting for `res.sendfile()` + * Added `res.send()` __HEAD__ support + * Added `res.clearCookie()` + * Added `res.cookie()` + * Added `res.render()` headers option + * Added `res.redirect()` response bodies + * Added `res.render()` status option support. Closes #425 [thanks aheckmann] + * Fixed `res.sendfile()` responding with 403 on malicious path + * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_ + * Fixed; mounted apps settings now inherit from parent app [aheckmann] + * Fixed; stripping Content-Length / Content-Type when 204 + * Fixed `res.send()` 204. Closes #419 + * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402 + * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo] + + +1.0.0rc2 / 2010-08-17 +================== + + * Added `app.register()` for template engine mapping. Closes #390 + * Added `res.render()` callback support as second argument (no options) + * Added callback support to `res.download()` + * Added callback support for `res.sendfile()` + * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()` + * Added "partials" setting to docs + * Added default expresso tests to `express(1)` generated app. Closes #384 + * Fixed `res.sendfile()` error handling, defer via `next()` + * Fixed `res.render()` callback when a layout is used [thanks guillermo] + * Fixed; `make install` creating ~/.node_libraries when not present + * Fixed issue preventing error handlers from being defined anywhere. Closes #387 + +1.0.0rc / 2010-07-28 +================== + + * Added mounted hook. Closes #369 + * Added connect dependency to _package.json_ + + * Removed "reload views" setting and support code + development env never caches, production always caches. + + * Removed _param_ in route callbacks, signature is now + simply (req, res, next), previously (req, res, params, next). + Use _req.params_ for path captures, _req.query_ for GET params. + + * Fixed "home" setting + * Fixed middleware/router precedence issue. Closes #366 + * Fixed; _configure()_ callbacks called immediately. Closes #368 + +1.0.0beta2 / 2010-07-23 +================== + + * Added more examples + * Added; exporting `Server` constructor + * Added `Server#helpers()` for view locals + * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349 + * Added support for absolute view paths + * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363 + * Added Guillermo Rauch to the contributor list + * Added support for "as" for non-collection partials. Closes #341 + * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf] + * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo] + * Fixed instanceof `Array` checks, now `Array.isArray()` + * Fixed express(1) expansion of public dirs. Closes #348 + * Fixed middleware precedence. Closes #345 + * Fixed view watcher, now async [thanks aheckmann] + +1.0.0beta / 2010-07-15 +================== + + * Re-write + - much faster + - much lighter + - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs + +0.14.0 / 2010-06-15 +================== + + * Utilize relative requires + * Added Static bufferSize option [aheckmann] + * Fixed caching of view and partial subdirectories [aheckmann] + * Fixed mime.type() comments now that ".ext" is not supported + * Updated haml submodule + * Updated class submodule + * Removed bin/express + +0.13.0 / 2010-06-01 +================== + + * Added node v0.1.97 compatibility + * Added support for deleting cookies via Request#cookie('key', null) + * Updated haml submodule + * Fixed not-found page, now using charset utf-8 + * Fixed show-exceptions page, now using charset utf-8 + * Fixed view support due to fs.readFile Buffers + * Changed; mime.type() no longer accepts ".type" due to node extname() changes + +0.12.0 / 2010-05-22 +================== + + * Added node v0.1.96 compatibility + * Added view `helpers` export which act as additional local variables + * Updated haml submodule + * Changed ETag; removed inode, modified time only + * Fixed LF to CRLF for setting multiple cookies + * Fixed cookie compilation; values are now urlencoded + * Fixed cookies parsing; accepts quoted values and url escaped cookies + +0.11.0 / 2010-05-06 +================== + + * Added support for layouts using different engines + - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' }) + - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml' + - this.render('page.html.haml', { layout: false }) // no layout + * Updated ext submodule + * Updated haml submodule + * Fixed EJS partial support by passing along the context. Issue #307 + +0.10.1 / 2010-05-03 +================== + + * Fixed binary uploads. + +0.10.0 / 2010-04-30 +================== + + * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s + encoding is set to 'utf8' or 'utf-8'). + * Added "encoding" option to Request#render(). Closes #299 + * Added "dump exceptions" setting, which is enabled by default. + * Added simple ejs template engine support + * Added error response support for text/plain, application/json. Closes #297 + * Added callback function param to Request#error() + * Added Request#sendHead() + * Added Request#stream() + * Added support for Request#respond(304, null) for empty response bodies + * Added ETag support to Request#sendfile() + * Added options to Request#sendfile(), passed to fs.createReadStream() + * Added filename arg to Request#download() + * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request + * Performance enhanced by preventing several calls to toLowerCase() in Router#match() + * Changed; Request#sendfile() now streams + * Changed; Renamed Request#halt() to Request#respond(). Closes #289 + * Changed; Using sys.inspect() instead of JSON.encode() for error output + * Changed; run() returns the http.Server instance. Closes #298 + * Changed; Defaulting Server#host to null (INADDR_ANY) + * Changed; Logger "common" format scale of 0.4f + * Removed Logger "request" format + * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found + * Fixed several issues with http client + * Fixed Logger Content-Length output + * Fixed bug preventing Opera from retaining the generated session id. Closes #292 + +0.9.0 / 2010-04-14 +================== + + * Added DSL level error() route support + * Added DSL level notFound() route support + * Added Request#error() + * Added Request#notFound() + * Added Request#render() callback function. Closes #258 + * Added "max upload size" setting + * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254 + * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js + * Added callback function support to Request#halt() as 3rd/4th arg + * Added preprocessing of route param wildcards using param(). Closes #251 + * Added view partial support (with collections etc.) + * Fixed bug preventing falsey params (such as ?page=0). Closes #286 + * Fixed setting of multiple cookies. Closes #199 + * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml) + * Changed; session cookie is now httpOnly + * Changed; Request is no longer global + * Changed; Event is no longer global + * Changed; "sys" module is no longer global + * Changed; moved Request#download to Static plugin where it belongs + * Changed; Request instance created before body parsing. Closes #262 + * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253 + * Changed; Pre-caching view partials in memory when "cache view partials" is enabled + * Updated support to node --version 0.1.90 + * Updated dependencies + * Removed set("session cookie") in favour of use(Session, { cookie: { ... }}) + * Removed utils.mixin(); use Object#mergeDeep() + +0.8.0 / 2010-03-19 +================== + + * Added coffeescript example app. Closes #242 + * Changed; cache api now async friendly. Closes #240 + * Removed deprecated 'express/static' support. Use 'express/plugins/static' + +0.7.6 / 2010-03-19 +================== + + * Added Request#isXHR. Closes #229 + * Added `make install` (for the executable) + * Added `express` executable for setting up simple app templates + * Added "GET /public/*" to Static plugin, defaulting to /public + * Added Static plugin + * Fixed; Request#render() only calls cache.get() once + * Fixed; Namespacing View caches with "view:" + * Fixed; Namespacing Static caches with "static:" + * Fixed; Both example apps now use the Static plugin + * Fixed set("views"). Closes #239 + * Fixed missing space for combined log format + * Deprecated Request#sendfile() and 'express/static' + * Removed Server#running + +0.7.5 / 2010-03-16 +================== + + * Added Request#flash() support without args, now returns all flashes + * Updated ext submodule + +0.7.4 / 2010-03-16 +================== + + * Fixed session reaper + * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft) + +0.7.3 / 2010-03-16 +================== + + * Added package.json + * Fixed requiring of haml / sass due to kiwi removal + +0.7.2 / 2010-03-16 +================== + + * Fixed GIT submodules (HAH!) + +0.7.1 / 2010-03-16 +================== + + * Changed; Express now using submodules again until a PM is adopted + * Changed; chat example using millisecond conversions from ext + +0.7.0 / 2010-03-15 +================== + + * Added Request#pass() support (finds the next matching route, or the given path) + * Added Logger plugin (default "common" format replaces CommonLogger) + * Removed Profiler plugin + * Removed CommonLogger plugin + +0.6.0 / 2010-03-11 +================== + + * Added seed.yml for kiwi package management support + * Added HTTP client query string support when method is GET. Closes #205 + + * Added support for arbitrary view engines. + For example "foo.engine.html" will now require('engine'), + the exports from this module are cached after the first require(). + + * Added async plugin support + + * Removed usage of RESTful route funcs as http client + get() etc, use http.get() and friends + + * Removed custom exceptions + +0.5.0 / 2010-03-10 +================== + + * Added ext dependency (library of js extensions) + * Removed extname() / basename() utils. Use path module + * Removed toArray() util. Use arguments.values + * Removed escapeRegexp() util. Use RegExp.escape() + * Removed process.mixin() dependency. Use utils.mixin() + * Removed Collection + * Removed ElementCollection + * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;) + +0.4.0 / 2010-02-11 +================== + + * Added flash() example to sample upload app + * Added high level restful http client module (express/http) + * Changed; RESTful route functions double as HTTP clients. Closes #69 + * Changed; throwing error when routes are added at runtime + * Changed; defaulting render() context to the current Request. Closes #197 + * Updated haml submodule + +0.3.0 / 2010-02-11 +================== + + * Updated haml / sass submodules. Closes #200 + * Added flash message support. Closes #64 + * Added accepts() now allows multiple args. fixes #117 + * Added support for plugins to halt. Closes #189 + * Added alternate layout support. Closes #119 + * Removed Route#run(). Closes #188 + * Fixed broken specs due to use(Cookie) missing + +0.2.1 / 2010-02-05 +================== + + * Added "plot" format option for Profiler (for gnuplot processing) + * Added request number to Profiler plugin + * Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8 + * Fixed issue with routes not firing when not files are present. Closes #184 + * Fixed process.Promise -> events.Promise + +0.2.0 / 2010-02-03 +================== + + * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180 + * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174 + * Added expiration support to cache api with reaper. Closes #133 + * Added cache Store.Memory#reap() + * Added Cache; cache api now uses first class Cache instances + * Added abstract session Store. Closes #172 + * Changed; cache Memory.Store#get() utilizing Collection + * Renamed MemoryStore -> Store.Memory + * Fixed use() of the same plugin several time will always use latest options. Closes #176 + +0.1.0 / 2010-02-03 +================== + + * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context + * Updated node support to 0.1.27 Closes #169 + * Updated dirname(__filename) -> __dirname + * Updated libxmljs support to v0.2.0 + * Added session support with memory store / reaping + * Added quick uid() helper + * Added multi-part upload support + * Added Sass.js support / submodule + * Added production env caching view contents and static files + * Added static file caching. Closes #136 + * Added cache plugin with memory stores + * Added support to StaticFile so that it works with non-textual files. + * Removed dirname() helper + * Removed several globals (now their modules must be required) + +0.0.2 / 2010-01-10 +================== + + * Added view benchmarks; currently haml vs ejs + * Added Request#attachment() specs. Closes #116 + * Added use of node's parseQuery() util. Closes #123 + * Added `make init` for submodules + * Updated Haml + * Updated sample chat app to show messages on load + * Updated libxmljs parseString -> parseHtmlString + * Fixed `make init` to work with older versions of git + * Fixed specs can now run independent specs for those who can't build deps. Closes #127 + * Fixed issues introduced by the node url module changes. Closes 126. + * Fixed two assertions failing due to Collection#keys() returning strings + * Fixed faulty Collection#toArray() spec due to keys() returning strings + * Fixed `make test` now builds libxmljs.node before testing + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/express/LICENSE b/node_modules/express/LICENSE new file mode 100644 index 0000000..aa927e4 --- /dev/null +++ b/node_modules/express/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2009-2014 TJ Holowaychuk +Copyright (c) 2013-2014 Roman Shtylman +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/express/Readme.md b/node_modules/express/Readme.md new file mode 100644 index 0000000..bc108d5 --- /dev/null +++ b/node_modules/express/Readme.md @@ -0,0 +1,260 @@ +[![Express Logo](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png)](http://expressjs.com/) + +**Fast, unopinionated, minimalist web framework for [Node.js](http://nodejs.org).** + +**This project has a [Code of Conduct][].** + +## Table of contents + +* [Installation](#Installation) +* [Features](#Features) +* [Docs & Community](#docs--community) +* [Quick Start](#Quick-Start) +* [Running Tests](#Running-Tests) +* [Philosophy](#Philosophy) +* [Examples](#Examples) +* [Contributing to Express](#Contributing) +* [TC (Technical Committee)](#tc-technical-committee) +* [Triagers](#triagers) +* [License](#license) + + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Install Size][npm-install-size-image]][npm-install-size-url] +[![NPM Downloads][npm-downloads-image]][npm-downloads-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + + +```js +const express = require('express') +const app = express() + +app.get('/', function (req, res) { + res.send('Hello World') +}) + +app.listen(3000) +``` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). + +Before installing, [download and install Node.js](https://nodejs.org/en/download/). +Node.js 0.10 or higher is required. + +If this is a brand new project, make sure to create a `package.json` first with +the [`npm init` command](https://docs.npmjs.com/creating-a-package-json-file). + +Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```console +$ npm install express +``` + +Follow [our installing guide](http://expressjs.com/en/starter/installing.html) +for more information. + +## Features + + * Robust routing + * Focus on high performance + * Super-high test coverage + * HTTP helpers (redirection, caching, etc) + * View system supporting 14+ template engines + * Content negotiation + * Executable for generating applications quickly + +## Docs & Community + + * [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)] + * [#express](https://web.libera.chat/#express) on [Libera Chat](https://libera.chat) IRC + * [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules + * Visit the [Wiki](https://github.com/expressjs/express/wiki) + * [Google Group](https://groups.google.com/group/express-js) for discussion + * [Gitter](https://gitter.im/expressjs/express) for support and discussion + +**PROTIP** Be sure to read [Migrating from 3.x to 4.x](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x) as well as [New features in 4.x](https://github.com/expressjs/express/wiki/New-features-in-4.x). + +## Quick Start + + The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below: + + Install the executable. The executable's major version will match Express's: + +```console +$ npm install -g express-generator@4 +``` + + Create the app: + +```console +$ express /tmp/foo && cd /tmp/foo +``` + + Install dependencies: + +```console +$ npm install +``` + + Start the server: + +```console +$ npm start +``` + + View the website at: http://localhost:3000 + +## Philosophy + + The Express philosophy is to provide small, robust tooling for HTTP servers, making + it a great solution for single page applications, websites, hybrids, or public + HTTP APIs. + + Express does not force you to use any specific ORM or template engine. With support for over + 14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js), + you can quickly craft your perfect framework. + +## Examples + + To view the examples, clone the Express repo and install the dependencies: + +```console +$ git clone https://github.com/expressjs/express.git --depth 1 +$ cd express +$ npm install +``` + + Then run whichever example you want: + +```console +$ node examples/content-negotiation +``` + +## Contributing + + [![Linux Build][github-actions-ci-image]][github-actions-ci-url] + [![Windows Build][appveyor-image]][appveyor-url] + [![Test Coverage][coveralls-image]][coveralls-url] + +The Express.js project welcomes all constructive contributions. Contributions take many forms, +from code for bug fixes and enhancements, to additions and fixes to documentation, additional +tests, triaging incoming pull requests and issues, and more! + +See the [Contributing Guide](Contributing.md) for more technical details on contributing. + +### Security Issues + +If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md). + +### Running Tests + +To run the test suite, first install the dependencies, then run `npm test`: + +```console +$ npm install +$ npm test +``` + +## People + +The original author of Express is [TJ Holowaychuk](https://github.com/tj) + +[List of all contributors](https://github.com/expressjs/express/graphs/contributors) + +### TC (Technical Committee) + +* [UlisesGascon](https://github.com/UlisesGascon) - **Ulises Gascón** (he/him) +* [jonchurch](https://github.com/jonchurch) - **Jon Church** +* [wesleytodd](https://github.com/wesleytodd) - **Wes Todd** +* [LinusU](https://github.com/LinusU) - **Linus Unnebäck** +* [blakeembrey](https://github.com/blakeembrey) - **Blake Embrey** +* [sheplu](https://github.com/sheplu) - **Jean Burellier** +* [crandmck](https://github.com/crandmck) - **Rand McKinney** +* [ctcpip](https://github.com/ctcpip) - **Chris de Almeida** + +
+TC emeriti members + +#### TC emeriti members + + * [dougwilson](https://github.com/dougwilson) - **Douglas Wilson** + * [hacksparrow](https://github.com/hacksparrow) - **Hage Yaapa** + * [jonathanong](https://github.com/jonathanong) - **jongleberry** + * [niftylettuce](https://github.com/niftylettuce) - **niftylettuce** + * [troygoode](https://github.com/troygoode) - **Troy Goode** +
+ + +### Triagers + +* [aravindvnair99](https://github.com/aravindvnair99) - **Aravind Nair** +* [carpasse](https://github.com/carpasse) - **Carlos Serrano** +* [CBID2](https://github.com/CBID2) - **Christine Belzie** +* [enyoghasim](https://github.com/enyoghasim) - **David Enyoghasim** +* [UlisesGascon](https://github.com/UlisesGascon) - **Ulises Gascón** (he/him) +* [mertcanaltin](https://github.com/mertcanaltin) - **Mert Can Altin** +* [0ss](https://github.com/0ss) - **Salah** +* [import-brain](https://github.com/import-brain) - **Eric Cheng** (he/him) +* [3imed-jaberi](https://github.com/3imed-jaberi) - **Imed Jaberi** +* [dakshkhetan](https://github.com/dakshkhetan) - **Daksh Khetan** (he/him) +* [lucasraziel](https://github.com/lucasraziel) - **Lucas Soares Do Rego** +* [IamLizu](https://github.com/IamLizu) - **S M Mahmudul Hasan** (he/him) +* [Sushmeet](https://github.com/Sushmeet) - **Sushmeet Sunger** + +
+Triagers emeriti members + +#### Emeritus Triagers + + * [AuggieH](https://github.com/AuggieH) - **Auggie Hudak** + * [G-Rath](https://github.com/G-Rath) - **Gareth Jones** + * [MohammadXroid](https://github.com/MohammadXroid) - **Mohammad Ayashi** + * [NawafSwe](https://github.com/NawafSwe) - **Nawaf Alsharqi** + * [NotMoni](https://github.com/NotMoni) - **Moni** + * [VigneshMurugan](https://github.com/VigneshMurugan) - **Vignesh Murugan** + * [davidmashe](https://github.com/davidmashe) - **David Ashe** + * [digitaIfabric](https://github.com/digitaIfabric) - **David** + * [e-l-i-s-e](https://github.com/e-l-i-s-e) - **Elise Bonner** + * [fed135](https://github.com/fed135) - **Frederic Charette** + * [firmanJS](https://github.com/firmanJS) - **Firman Abdul Hakim** + * [getspooky](https://github.com/getspooky) - **Yasser Ameur** + * [ghinks](https://github.com/ghinks) - **Glenn** + * [ghousemohamed](https://github.com/ghousemohamed) - **Ghouse Mohamed** + * [gireeshpunathil](https://github.com/gireeshpunathil) - **Gireesh Punathil** + * [jake32321](https://github.com/jake32321) - **Jake Reed** + * [jonchurch](https://github.com/jonchurch) - **Jon Church** + * [lekanikotun](https://github.com/lekanikotun) - **Troy Goode** + * [marsonya](https://github.com/marsonya) - **Lekan Ikotun** + * [mastermatt](https://github.com/mastermatt) - **Matt R. Wilson** + * [maxakuru](https://github.com/maxakuru) - **Max Edell** + * [mlrawlings](https://github.com/mlrawlings) - **Michael Rawlings** + * [rodion-arr](https://github.com/rodion-arr) - **Rodion Abdurakhimov** + * [sheplu](https://github.com/sheplu) - **Jean Burellier** + * [tarunyadav1](https://github.com/tarunyadav1) - **Tarun yadav** + * [tunniclm](https://github.com/tunniclm) - **Mike Tunnicliffe** +
+ + +## License + + [MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/express/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/express/master +[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/expressjs/express/master?label=linux +[github-actions-ci-url]: https://github.com/expressjs/express/actions/workflows/ci.yml +[npm-downloads-image]: https://badgen.net/npm/dm/express +[npm-downloads-url]: https://npmcharts.com/compare/express?minimal=true +[npm-install-size-image]: https://badgen.net/packagephobia/install/express +[npm-install-size-url]: https://packagephobia.com/result?p=express +[npm-url]: https://npmjs.org/package/express +[npm-version-image]: https://badgen.net/npm/v/express +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/express/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/express +[Code of Conduct]: https://github.com/expressjs/express/blob/master/Code-Of-Conduct.md diff --git a/node_modules/express/index.js b/node_modules/express/index.js new file mode 100644 index 0000000..d219b0c --- /dev/null +++ b/node_modules/express/index.js @@ -0,0 +1,11 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +module.exports = require('./lib/express'); diff --git a/node_modules/express/lib/application.js b/node_modules/express/lib/application.js new file mode 100644 index 0000000..ebb30b5 --- /dev/null +++ b/node_modules/express/lib/application.js @@ -0,0 +1,661 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var finalhandler = require('finalhandler'); +var Router = require('./router'); +var methods = require('methods'); +var middleware = require('./middleware/init'); +var query = require('./middleware/query'); +var debug = require('debug')('express:application'); +var View = require('./view'); +var http = require('http'); +var compileETag = require('./utils').compileETag; +var compileQueryParser = require('./utils').compileQueryParser; +var compileTrust = require('./utils').compileTrust; +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var merge = require('utils-merge'); +var resolve = require('path').resolve; +var setPrototypeOf = require('setprototypeof') + +/** + * Module variables. + * @private + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty +var slice = Array.prototype.slice; + +/** + * Application prototype. + */ + +var app = exports = module.exports = {}; + +/** + * Variable for trust proxy inheritance back-compat + * @private + */ + +var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default'; + +/** + * Initialize the server. + * + * - setup default configuration + * - setup default middleware + * - setup route reflection methods + * + * @private + */ + +app.init = function init() { + this.cache = {}; + this.engines = {}; + this.settings = {}; + + this.defaultConfiguration(); +}; + +/** + * Initialize application configuration. + * @private + */ + +app.defaultConfiguration = function defaultConfiguration() { + var env = process.env.NODE_ENV || 'development'; + + // default settings + this.enable('x-powered-by'); + this.set('etag', 'weak'); + this.set('env', env); + this.set('query parser', 'extended'); + this.set('subdomain offset', 2); + this.set('trust proxy', false); + + // trust proxy inherit back-compat + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: true + }); + + debug('booting in %s mode', env); + + this.on('mount', function onmount(parent) { + // inherit trust proxy + if (this.settings[trustProxyDefaultSymbol] === true + && typeof parent.settings['trust proxy fn'] === 'function') { + delete this.settings['trust proxy']; + delete this.settings['trust proxy fn']; + } + + // inherit protos + setPrototypeOf(this.request, parent.request) + setPrototypeOf(this.response, parent.response) + setPrototypeOf(this.engines, parent.engines) + setPrototypeOf(this.settings, parent.settings) + }); + + // setup locals + this.locals = Object.create(null); + + // top-most app is mounted at / + this.mountpath = '/'; + + // default locals + this.locals.settings = this.settings; + + // default configuration + this.set('view', View); + this.set('views', resolve('views')); + this.set('jsonp callback name', 'callback'); + + if (env === 'production') { + this.enable('view cache'); + } + + Object.defineProperty(this, 'router', { + get: function() { + throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.'); + } + }); +}; + +/** + * lazily adds the base router if it has not yet been added. + * + * We cannot add the base router in the defaultConfiguration because + * it reads app settings which might be set after that has run. + * + * @private + */ +app.lazyrouter = function lazyrouter() { + if (!this._router) { + this._router = new Router({ + caseSensitive: this.enabled('case sensitive routing'), + strict: this.enabled('strict routing') + }); + + this._router.use(query(this.get('query parser fn'))); + this._router.use(middleware.init(this)); + } +}; + +/** + * Dispatch a req, res pair into the application. Starts pipeline processing. + * + * If no callback is provided, then default error handlers will respond + * in the event of an error bubbling through the stack. + * + * @private + */ + +app.handle = function handle(req, res, callback) { + var router = this._router; + + // final handler + var done = callback || finalhandler(req, res, { + env: this.get('env'), + onerror: logerror.bind(this) + }); + + // no routes + if (!router) { + debug('no routes defined on app'); + done(); + return; + } + + router.handle(req, res, done); +}; + +/** + * Proxy `Router#use()` to add middleware to the app router. + * See Router#use() documentation for details. + * + * If the _fn_ parameter is an express app, then it will be + * mounted at the _route_ specified. + * + * @public + */ + +app.use = function use(fn) { + var offset = 0; + var path = '/'; + + // default path to '/' + // disambiguate app.use([fn]) + if (typeof fn !== 'function') { + var arg = fn; + + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + + // first arg is the path + if (typeof arg !== 'function') { + offset = 1; + path = fn; + } + } + + var fns = flatten(slice.call(arguments, offset)); + + if (fns.length === 0) { + throw new TypeError('app.use() requires a middleware function') + } + + // setup router + this.lazyrouter(); + var router = this._router; + + fns.forEach(function (fn) { + // non-express app + if (!fn || !fn.handle || !fn.set) { + return router.use(path, fn); + } + + debug('.use app under %s', path); + fn.mountpath = path; + fn.parent = this; + + // restore .app property on req and res + router.use(path, function mounted_app(req, res, next) { + var orig = req.app; + fn.handle(req, res, function (err) { + setPrototypeOf(req, orig.request) + setPrototypeOf(res, orig.response) + next(err); + }); + }); + + // mounted an app + fn.emit('mount', this); + }, this); + + return this; +}; + +/** + * Proxy to the app `Router#route()` + * Returns a new `Route` instance for the _path_. + * + * Routes are isolated middleware stacks for specific paths. + * See the Route api docs for details. + * + * @public + */ + +app.route = function route(path) { + this.lazyrouter(); + return this._router.route(path); +}; + +/** + * Register the given template engine callback `fn` + * as `ext`. + * + * By default will `require()` the engine based on the + * file extension. For example if you try to render + * a "foo.ejs" file Express will invoke the following internally: + * + * app.engine('ejs', require('ejs').__express); + * + * For engines that do not provide `.__express` out of the box, + * or if you wish to "map" a different extension to the template engine + * you may use this method. For example mapping the EJS template engine to + * ".html" files: + * + * app.engine('html', require('ejs').renderFile); + * + * In this case EJS provides a `.renderFile()` method with + * the same signature that Express expects: `(path, options, callback)`, + * though note that it aliases this method as `ejs.__express` internally + * so if you're using ".ejs" extensions you don't need to do anything. + * + * Some template engines do not follow this convention, the + * [Consolidate.js](https://github.com/tj/consolidate.js) + * library was created to map all of node's popular template + * engines to follow this convention, thus allowing them to + * work seamlessly within Express. + * + * @param {String} ext + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +app.engine = function engine(ext, fn) { + if (typeof fn !== 'function') { + throw new Error('callback function required'); + } + + // get file extension + var extension = ext[0] !== '.' + ? '.' + ext + : ext; + + // store engine + this.engines[extension] = fn; + + return this; +}; + +/** + * Proxy to `Router#param()` with one added api feature. The _name_ parameter + * can be an array of names. + * + * See the Router#param() docs for more details. + * + * @param {String|Array} name + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +app.param = function param(name, fn) { + this.lazyrouter(); + + if (Array.isArray(name)) { + for (var i = 0; i < name.length; i++) { + this.param(name[i], fn); + } + + return this; + } + + this._router.param(name, fn); + + return this; +}; + +/** + * Assign `setting` to `val`, or return `setting`'s value. + * + * app.set('foo', 'bar'); + * app.set('foo'); + * // => "bar" + * + * Mounted servers inherit their parent server's settings. + * + * @param {String} setting + * @param {*} [val] + * @return {Server} for chaining + * @public + */ + +app.set = function set(setting, val) { + if (arguments.length === 1) { + // app.get(setting) + var settings = this.settings + + while (settings && settings !== Object.prototype) { + if (hasOwnProperty.call(settings, setting)) { + return settings[setting] + } + + settings = Object.getPrototypeOf(settings) + } + + return undefined + } + + debug('set "%s" to %o', setting, val); + + // set value + this.settings[setting] = val; + + // trigger matched settings + switch (setting) { + case 'etag': + this.set('etag fn', compileETag(val)); + break; + case 'query parser': + this.set('query parser fn', compileQueryParser(val)); + break; + case 'trust proxy': + this.set('trust proxy fn', compileTrust(val)); + + // trust proxy inherit back-compat + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: false + }); + + break; + } + + return this; +}; + +/** + * Return the app's absolute pathname + * based on the parent(s) that have + * mounted it. + * + * For example if the application was + * mounted as "/admin", which itself + * was mounted as "/blog" then the + * return value would be "/blog/admin". + * + * @return {String} + * @private + */ + +app.path = function path() { + return this.parent + ? this.parent.path() + this.mountpath + : ''; +}; + +/** + * Check if `setting` is enabled (truthy). + * + * app.enabled('foo') + * // => false + * + * app.enable('foo') + * app.enabled('foo') + * // => true + * + * @param {String} setting + * @return {Boolean} + * @public + */ + +app.enabled = function enabled(setting) { + return Boolean(this.set(setting)); +}; + +/** + * Check if `setting` is disabled. + * + * app.disabled('foo') + * // => true + * + * app.enable('foo') + * app.disabled('foo') + * // => false + * + * @param {String} setting + * @return {Boolean} + * @public + */ + +app.disabled = function disabled(setting) { + return !this.set(setting); +}; + +/** + * Enable `setting`. + * + * @param {String} setting + * @return {app} for chaining + * @public + */ + +app.enable = function enable(setting) { + return this.set(setting, true); +}; + +/** + * Disable `setting`. + * + * @param {String} setting + * @return {app} for chaining + * @public + */ + +app.disable = function disable(setting) { + return this.set(setting, false); +}; + +/** + * Delegate `.VERB(...)` calls to `router.VERB(...)`. + */ + +methods.forEach(function(method){ + app[method] = function(path){ + if (method === 'get' && arguments.length === 1) { + // app.get(setting) + return this.set(path); + } + + this.lazyrouter(); + + var route = this._router.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; +}); + +/** + * Special-cased "all" method, applying the given route `path`, + * middleware, and callback to _every_ HTTP method. + * + * @param {String} path + * @param {Function} ... + * @return {app} for chaining + * @public + */ + +app.all = function all(path) { + this.lazyrouter(); + + var route = this._router.route(path); + var args = slice.call(arguments, 1); + + for (var i = 0; i < methods.length; i++) { + route[methods[i]].apply(route, args); + } + + return this; +}; + +// del -> delete alias + +app.del = deprecate.function(app.delete, 'app.del: Use app.delete instead'); + +/** + * Render the given view `name` name with `options` + * and a callback accepting an error and the + * rendered template string. + * + * Example: + * + * app.render('email', { name: 'Tobi' }, function(err, html){ + * // ... + * }) + * + * @param {String} name + * @param {Object|Function} options or fn + * @param {Function} callback + * @public + */ + +app.render = function render(name, options, callback) { + var cache = this.cache; + var done = callback; + var engines = this.engines; + var opts = options; + var renderOptions = {}; + var view; + + // support callback function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // merge app.locals + merge(renderOptions, this.locals); + + // merge options._locals + if (opts._locals) { + merge(renderOptions, opts._locals); + } + + // merge options + merge(renderOptions, opts); + + // set .cache unless explicitly provided + if (renderOptions.cache == null) { + renderOptions.cache = this.enabled('view cache'); + } + + // primed cache + if (renderOptions.cache) { + view = cache[name]; + } + + // view + if (!view) { + var View = this.get('view'); + + view = new View(name, { + defaultEngine: this.get('view engine'), + root: this.get('views'), + engines: engines + }); + + if (!view.path) { + var dirs = Array.isArray(view.root) && view.root.length > 1 + ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' + : 'directory "' + view.root + '"' + var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); + err.view = view; + return done(err); + } + + // prime the cache + if (renderOptions.cache) { + cache[name] = view; + } + } + + // render + tryRender(view, renderOptions, done); +}; + +/** + * Listen for connections. + * + * A node `http.Server` is returned, with this + * application (which is a `Function`) as its + * callback. If you wish to create both an HTTP + * and HTTPS server you may do so with the "http" + * and "https" modules as shown here: + * + * var http = require('http') + * , https = require('https') + * , express = require('express') + * , app = express(); + * + * http.createServer(app).listen(80); + * https.createServer({ ... }, app).listen(443); + * + * @return {http.Server} + * @public + */ + +app.listen = function listen() { + var server = http.createServer(this); + return server.listen.apply(server, arguments); +}; + +/** + * Log error using console.error. + * + * @param {Error} err + * @private + */ + +function logerror(err) { + /* istanbul ignore next */ + if (this.get('env') !== 'test') console.error(err.stack || err.toString()); +} + +/** + * Try rendering a view. + * @private + */ + +function tryRender(view, options, callback) { + try { + view.render(options, callback); + } catch (err) { + callback(err); + } +} diff --git a/node_modules/express/lib/express.js b/node_modules/express/lib/express.js new file mode 100644 index 0000000..d188a16 --- /dev/null +++ b/node_modules/express/lib/express.js @@ -0,0 +1,116 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var bodyParser = require('body-parser') +var EventEmitter = require('events').EventEmitter; +var mixin = require('merge-descriptors'); +var proto = require('./application'); +var Route = require('./router/route'); +var Router = require('./router'); +var req = require('./request'); +var res = require('./response'); + +/** + * Expose `createApplication()`. + */ + +exports = module.exports = createApplication; + +/** + * Create an express application. + * + * @return {Function} + * @api public + */ + +function createApplication() { + var app = function(req, res, next) { + app.handle(req, res, next); + }; + + mixin(app, EventEmitter.prototype, false); + mixin(app, proto, false); + + // expose the prototype that will get set on requests + app.request = Object.create(req, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }) + + // expose the prototype that will get set on responses + app.response = Object.create(res, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }) + + app.init(); + return app; +} + +/** + * Expose the prototypes. + */ + +exports.application = proto; +exports.request = req; +exports.response = res; + +/** + * Expose constructors. + */ + +exports.Route = Route; +exports.Router = Router; + +/** + * Expose middleware + */ + +exports.json = bodyParser.json +exports.query = require('./middleware/query'); +exports.raw = bodyParser.raw +exports.static = require('serve-static'); +exports.text = bodyParser.text +exports.urlencoded = bodyParser.urlencoded + +/** + * Replace removed middleware with an appropriate error message. + */ + +var removedMiddlewares = [ + 'bodyParser', + 'compress', + 'cookieSession', + 'session', + 'logger', + 'cookieParser', + 'favicon', + 'responseTime', + 'errorHandler', + 'timeout', + 'methodOverride', + 'vhost', + 'csrf', + 'directory', + 'limit', + 'multipart', + 'staticCache' +] + +removedMiddlewares.forEach(function (name) { + Object.defineProperty(exports, name, { + get: function () { + throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.'); + }, + configurable: true + }); +}); diff --git a/node_modules/express/lib/middleware/init.js b/node_modules/express/lib/middleware/init.js new file mode 100644 index 0000000..dfd0427 --- /dev/null +++ b/node_modules/express/lib/middleware/init.js @@ -0,0 +1,43 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var setPrototypeOf = require('setprototypeof') + +/** + * Initialization middleware, exposing the + * request and response to each other, as well + * as defaulting the X-Powered-By header field. + * + * @param {Function} app + * @return {Function} + * @api private + */ + +exports.init = function(app){ + return function expressInit(req, res, next){ + if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); + req.res = res; + res.req = req; + req.next = next; + + setPrototypeOf(req, app.request) + setPrototypeOf(res, app.response) + + res.locals = res.locals || Object.create(null); + + next(); + }; +}; + diff --git a/node_modules/express/lib/middleware/query.js b/node_modules/express/lib/middleware/query.js new file mode 100644 index 0000000..7e91669 --- /dev/null +++ b/node_modules/express/lib/middleware/query.js @@ -0,0 +1,47 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var merge = require('utils-merge') +var parseUrl = require('parseurl'); +var qs = require('qs'); + +/** + * @param {Object} options + * @return {Function} + * @api public + */ + +module.exports = function query(options) { + var opts = merge({}, options) + var queryparse = qs.parse; + + if (typeof options === 'function') { + queryparse = options; + opts = undefined; + } + + if (opts !== undefined && opts.allowPrototypes === undefined) { + // back-compat for qs module + opts.allowPrototypes = true; + } + + return function query(req, res, next){ + if (!req.query) { + var val = parseUrl(req).query; + req.query = queryparse(val, opts); + } + + next(); + }; +}; diff --git a/node_modules/express/lib/request.js b/node_modules/express/lib/request.js new file mode 100644 index 0000000..3f1eeca --- /dev/null +++ b/node_modules/express/lib/request.js @@ -0,0 +1,525 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var accepts = require('accepts'); +var deprecate = require('depd')('express'); +var isIP = require('net').isIP; +var typeis = require('type-is'); +var http = require('http'); +var fresh = require('fresh'); +var parseRange = require('range-parser'); +var parse = require('parseurl'); +var proxyaddr = require('proxy-addr'); + +/** + * Request prototype. + * @public + */ + +var req = Object.create(http.IncomingMessage.prototype) + +/** + * Module exports. + * @public + */ + +module.exports = req + +/** + * Return request header. + * + * The `Referrer` header field is special-cased, + * both `Referrer` and `Referer` are interchangeable. + * + * Examples: + * + * req.get('Content-Type'); + * // => "text/plain" + * + * req.get('content-type'); + * // => "text/plain" + * + * req.get('Something'); + * // => undefined + * + * Aliased as `req.header()`. + * + * @param {String} name + * @return {String} + * @public + */ + +req.get = +req.header = function header(name) { + if (!name) { + throw new TypeError('name argument is required to req.get'); + } + + if (typeof name !== 'string') { + throw new TypeError('name must be a string to req.get'); + } + + var lc = name.toLowerCase(); + + switch (lc) { + case 'referer': + case 'referrer': + return this.headers.referrer + || this.headers.referer; + default: + return this.headers[lc]; + } +}; + +/** + * To do: update docs. + * + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single MIME type string + * such as "application/json", an extension name + * such as "json", a comma-delimited list such as "json, html, text/plain", + * an argument list such as `"json", "html", "text/plain"`, + * or an array `["json", "html", "text/plain"]`. When a list + * or array is given, the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * req.accepts('html'); + * // => "html" + * + * // Accept: text/*, application/json + * req.accepts('html'); + * // => "html" + * req.accepts('text/html'); + * // => "text/html" + * req.accepts('json, text'); + * // => "json" + * req.accepts('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * req.accepts('image/png'); + * req.accepts('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * req.accepts(['html', 'json']); + * req.accepts('html', 'json'); + * req.accepts('html, json'); + * // => "json" + * + * @param {String|Array} type(s) + * @return {String|Array|Boolean} + * @public + */ + +req.accepts = function(){ + var accept = accepts(this); + return accept.types.apply(accept, arguments); +}; + +/** + * Check if the given `encoding`s are accepted. + * + * @param {String} ...encoding + * @return {String|Array} + * @public + */ + +req.acceptsEncodings = function(){ + var accept = accepts(this); + return accept.encodings.apply(accept, arguments); +}; + +req.acceptsEncoding = deprecate.function(req.acceptsEncodings, + 'req.acceptsEncoding: Use acceptsEncodings instead'); + +/** + * Check if the given `charset`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + * + * @param {String} ...charset + * @return {String|Array} + * @public + */ + +req.acceptsCharsets = function(){ + var accept = accepts(this); + return accept.charsets.apply(accept, arguments); +}; + +req.acceptsCharset = deprecate.function(req.acceptsCharsets, + 'req.acceptsCharset: Use acceptsCharsets instead'); + +/** + * Check if the given `lang`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + * + * @param {String} ...lang + * @return {String|Array} + * @public + */ + +req.acceptsLanguages = function(){ + var accept = accepts(this); + return accept.languages.apply(accept, arguments); +}; + +req.acceptsLanguage = deprecate.function(req.acceptsLanguages, + 'req.acceptsLanguage: Use acceptsLanguages instead'); + +/** + * Parse Range header field, capping to the given `size`. + * + * Unspecified ranges such as "0-" require knowledge of your resource length. In + * the case of a byte range this is of course the total number of bytes. If the + * Range header field is not given `undefined` is returned, `-1` when unsatisfiable, + * and `-2` when syntactically invalid. + * + * When ranges are returned, the array has a "type" property which is the type of + * range that is required (most commonly, "bytes"). Each array element is an object + * with a "start" and "end" property for the portion of the range. + * + * The "combine" option can be set to `true` and overlapping & adjacent ranges + * will be combined into a single range. + * + * NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" + * should respond with 4 users when available, not 3. + * + * @param {number} size + * @param {object} [options] + * @param {boolean} [options.combine=false] + * @return {number|array} + * @public + */ + +req.range = function range(size, options) { + var range = this.get('Range'); + if (!range) return; + return parseRange(size, range, options); +}; + +/** + * Return the value of param `name` when present or `defaultValue`. + * + * - Checks route placeholders, ex: _/user/:id_ + * - Checks body params, ex: id=12, {"id":12} + * - Checks query string params, ex: ?id=12 + * + * To utilize request bodies, `req.body` + * should be an object. This can be done by using + * the `bodyParser()` middleware. + * + * @param {String} name + * @param {Mixed} [defaultValue] + * @return {String} + * @public + */ + +req.param = function param(name, defaultValue) { + var params = this.params || {}; + var body = this.body || {}; + var query = this.query || {}; + + var args = arguments.length === 1 + ? 'name' + : 'name, default'; + deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead'); + + if (null != params[name] && params.hasOwnProperty(name)) return params[name]; + if (null != body[name]) return body[name]; + if (null != query[name]) return query[name]; + + return defaultValue; +}; + +/** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains the given mime `type`. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * req.is('html'); + * req.is('text/html'); + * req.is('text/*'); + * // => true + * + * // When Content-Type is application/json + * req.is('json'); + * req.is('application/json'); + * req.is('application/*'); + * // => true + * + * req.is('html'); + * // => false + * + * @param {String|Array} types... + * @return {String|false|null} + * @public + */ + +req.is = function is(types) { + var arr = types; + + // support flattened arguments + if (!Array.isArray(types)) { + arr = new Array(arguments.length); + for (var i = 0; i < arr.length; i++) { + arr[i] = arguments[i]; + } + } + + return typeis(this, arr); +}; + +/** + * Return the protocol string "http" or "https" + * when requested with TLS. When the "trust proxy" + * setting trusts the socket address, the + * "X-Forwarded-Proto" header field will be trusted + * and used if present. + * + * If you're running behind a reverse proxy that + * supplies https for you this may be enabled. + * + * @return {String} + * @public + */ + +defineGetter(req, 'protocol', function protocol(){ + var proto = this.connection.encrypted + ? 'https' + : 'http'; + var trust = this.app.get('trust proxy fn'); + + if (!trust(this.connection.remoteAddress, 0)) { + return proto; + } + + // Note: X-Forwarded-Proto is normally only ever a + // single value, but this is to be safe. + var header = this.get('X-Forwarded-Proto') || proto + var index = header.indexOf(',') + + return index !== -1 + ? header.substring(0, index).trim() + : header.trim() +}); + +/** + * Short-hand for: + * + * req.protocol === 'https' + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'secure', function secure(){ + return this.protocol === 'https'; +}); + +/** + * Return the remote address from the trusted proxy. + * + * The is the remote address on the socket unless + * "trust proxy" is set. + * + * @return {String} + * @public + */ + +defineGetter(req, 'ip', function ip(){ + var trust = this.app.get('trust proxy fn'); + return proxyaddr(this, trust); +}); + +/** + * When "trust proxy" is set, trusted proxy addresses + client. + * + * For example if the value were "client, proxy1, proxy2" + * you would receive the array `["client", "proxy1", "proxy2"]` + * where "proxy2" is the furthest down-stream and "proxy1" and + * "proxy2" were trusted. + * + * @return {Array} + * @public + */ + +defineGetter(req, 'ips', function ips() { + var trust = this.app.get('trust proxy fn'); + var addrs = proxyaddr.all(this, trust); + + // reverse the order (to farthest -> closest) + // and remove socket address + addrs.reverse().pop() + + return addrs +}); + +/** + * Return subdomains as an array. + * + * Subdomains are the dot-separated parts of the host before the main domain of + * the app. By default, the domain of the app is assumed to be the last two + * parts of the host. This can be changed by setting "subdomain offset". + * + * For example, if the domain is "tobi.ferrets.example.com": + * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. + * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. + * + * @return {Array} + * @public + */ + +defineGetter(req, 'subdomains', function subdomains() { + var hostname = this.hostname; + + if (!hostname) return []; + + var offset = this.app.get('subdomain offset'); + var subdomains = !isIP(hostname) + ? hostname.split('.').reverse() + : [hostname]; + + return subdomains.slice(offset); +}); + +/** + * Short-hand for `url.parse(req.url).pathname`. + * + * @return {String} + * @public + */ + +defineGetter(req, 'path', function path() { + return parse(this).pathname; +}); + +/** + * Parse the "Host" header field to a hostname. + * + * When the "trust proxy" setting trusts the socket + * address, the "X-Forwarded-Host" header field will + * be trusted. + * + * @return {String} + * @public + */ + +defineGetter(req, 'hostname', function hostname(){ + var trust = this.app.get('trust proxy fn'); + var host = this.get('X-Forwarded-Host'); + + if (!host || !trust(this.connection.remoteAddress, 0)) { + host = this.get('Host'); + } else if (host.indexOf(',') !== -1) { + // Note: X-Forwarded-Host is normally only ever a + // single value, but this is to be safe. + host = host.substring(0, host.indexOf(',')).trimRight() + } + + if (!host) return; + + // IPv6 literal support + var offset = host[0] === '[' + ? host.indexOf(']') + 1 + : 0; + var index = host.indexOf(':', offset); + + return index !== -1 + ? host.substring(0, index) + : host; +}); + +// TODO: change req.host to return host in next major + +defineGetter(req, 'host', deprecate.function(function host(){ + return this.hostname; +}, 'req.host: Use req.hostname instead')); + +/** + * Check if the request is fresh, aka + * Last-Modified and/or the ETag + * still match. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'fresh', function(){ + var method = this.method; + var res = this.res + var status = res.statusCode + + // GET or HEAD for weak freshness validation only + if ('GET' !== method && 'HEAD' !== method) return false; + + // 2xx or 304 as per rfc2616 14.26 + if ((status >= 200 && status < 300) || 304 === status) { + return fresh(this.headers, { + 'etag': res.get('ETag'), + 'last-modified': res.get('Last-Modified') + }) + } + + return false; +}); + +/** + * Check if the request is stale, aka + * "Last-Modified" and / or the "ETag" for the + * resource has changed. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'stale', function stale(){ + return !this.fresh; +}); + +/** + * Check if the request was an _XMLHttpRequest_. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'xhr', function xhr(){ + var val = this.get('X-Requested-With') || ''; + return val.toLowerCase() === 'xmlhttprequest'; +}); + +/** + * Helper function for creating a getter on an object. + * + * @param {Object} obj + * @param {String} name + * @param {Function} getter + * @private + */ +function defineGetter(obj, name, getter) { + Object.defineProperty(obj, name, { + configurable: true, + enumerable: true, + get: getter + }); +} diff --git a/node_modules/express/lib/response.js b/node_modules/express/lib/response.js new file mode 100644 index 0000000..2b654f4 --- /dev/null +++ b/node_modules/express/lib/response.js @@ -0,0 +1,1179 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var Buffer = require('safe-buffer').Buffer +var contentDisposition = require('content-disposition'); +var createError = require('http-errors') +var deprecate = require('depd')('express'); +var encodeUrl = require('encodeurl'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var isAbsolute = require('./utils').isAbsolute; +var onFinished = require('on-finished'); +var path = require('path'); +var statuses = require('statuses') +var merge = require('utils-merge'); +var sign = require('cookie-signature').sign; +var normalizeType = require('./utils').normalizeType; +var normalizeTypes = require('./utils').normalizeTypes; +var setCharset = require('./utils').setCharset; +var cookie = require('cookie'); +var send = require('send'); +var extname = path.extname; +var mime = send.mime; +var resolve = path.resolve; +var vary = require('vary'); + +/** + * Response prototype. + * @public + */ + +var res = Object.create(http.ServerResponse.prototype) + +/** + * Module exports. + * @public + */ + +module.exports = res + +/** + * Module variables. + * @private + */ + +var charsetRegExp = /;\s*charset\s*=/; + +/** + * Set status `code`. + * + * @param {Number} code + * @return {ServerResponse} + * @public + */ + +res.status = function status(code) { + if ((typeof code === 'string' || Math.floor(code) !== code) && code > 99 && code < 1000) { + deprecate('res.status(' + JSON.stringify(code) + '): use res.status(' + Math.floor(code) + ') instead') + } + this.statusCode = code; + return this; +}; + +/** + * Set Link header field with the given `links`. + * + * Examples: + * + * res.links({ + * next: 'http://api.example.com/users?page=2', + * last: 'http://api.example.com/users?page=5' + * }); + * + * @param {Object} links + * @return {ServerResponse} + * @public + */ + +res.links = function(links){ + var link = this.get('Link') || ''; + if (link) link += ', '; + return this.set('Link', link + Object.keys(links).map(function(rel){ + return '<' + links[rel] + '>; rel="' + rel + '"'; + }).join(', ')); +}; + +/** + * Send a response. + * + * Examples: + * + * res.send(Buffer.from('wahoo')); + * res.send({ some: 'json' }); + * res.send('

some html

'); + * + * @param {string|number|boolean|object|Buffer} body + * @public + */ + +res.send = function send(body) { + var chunk = body; + var encoding; + var req = this.req; + var type; + + // settings + var app = this.app; + + // allow status / body + if (arguments.length === 2) { + // res.send(body, status) backwards compat + if (typeof arguments[0] !== 'number' && typeof arguments[1] === 'number') { + deprecate('res.send(body, status): Use res.status(status).send(body) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.send(status, body): Use res.status(status).send(body) instead'); + this.statusCode = arguments[0]; + chunk = arguments[1]; + } + } + + // disambiguate res.send(status) and res.send(status, num) + if (typeof chunk === 'number' && arguments.length === 1) { + // res.send(status) will set status message as text string + if (!this.get('Content-Type')) { + this.type('txt'); + } + + deprecate('res.send(status): Use res.sendStatus(status) instead'); + this.statusCode = chunk; + chunk = statuses.message[chunk] + } + + switch (typeof chunk) { + // string defaulting to html + case 'string': + if (!this.get('Content-Type')) { + this.type('html'); + } + break; + case 'boolean': + case 'number': + case 'object': + if (chunk === null) { + chunk = ''; + } else if (Buffer.isBuffer(chunk)) { + if (!this.get('Content-Type')) { + this.type('bin'); + } + } else { + return this.json(chunk); + } + break; + } + + // write strings in utf-8 + if (typeof chunk === 'string') { + encoding = 'utf8'; + type = this.get('Content-Type'); + + // reflect this in content-type + if (typeof type === 'string') { + this.set('Content-Type', setCharset(type, 'utf-8')); + } + } + + // determine if ETag should be generated + var etagFn = app.get('etag fn') + var generateETag = !this.get('ETag') && typeof etagFn === 'function' + + // populate Content-Length + var len + if (chunk !== undefined) { + if (Buffer.isBuffer(chunk)) { + // get length of Buffer + len = chunk.length + } else if (!generateETag && chunk.length < 1000) { + // just calculate length when no ETag + small chunk + len = Buffer.byteLength(chunk, encoding) + } else { + // convert chunk to Buffer and calculate + chunk = Buffer.from(chunk, encoding) + encoding = undefined; + len = chunk.length + } + + this.set('Content-Length', len); + } + + // populate ETag + var etag; + if (generateETag && len !== undefined) { + if ((etag = etagFn(chunk, encoding))) { + this.set('ETag', etag); + } + } + + // freshness + if (req.fresh) this.statusCode = 304; + + // strip irrelevant headers + if (204 === this.statusCode || 304 === this.statusCode) { + this.removeHeader('Content-Type'); + this.removeHeader('Content-Length'); + this.removeHeader('Transfer-Encoding'); + chunk = ''; + } + + // alter headers for 205 + if (this.statusCode === 205) { + this.set('Content-Length', '0') + this.removeHeader('Transfer-Encoding') + chunk = '' + } + + if (req.method === 'HEAD') { + // skip body for HEAD + this.end(); + } else { + // respond + this.end(chunk, encoding); + } + + return this; +}; + +/** + * Send JSON response. + * + * Examples: + * + * res.json(null); + * res.json({ user: 'tj' }); + * + * @param {string|number|boolean|object} obj + * @public + */ + +res.json = function json(obj) { + var val = obj; + + // allow status / body + if (arguments.length === 2) { + // res.json(body, status) backwards compat + if (typeof arguments[1] === 'number') { + deprecate('res.json(obj, status): Use res.status(status).json(obj) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.json(status, obj): Use res.status(status).json(obj) instead'); + this.statusCode = arguments[0]; + val = arguments[1]; + } + } + + // settings + var app = this.app; + var escape = app.get('json escape') + var replacer = app.get('json replacer'); + var spaces = app.get('json spaces'); + var body = stringify(val, replacer, spaces, escape) + + // content-type + if (!this.get('Content-Type')) { + this.set('Content-Type', 'application/json'); + } + + return this.send(body); +}; + +/** + * Send JSON response with JSONP callback support. + * + * Examples: + * + * res.jsonp(null); + * res.jsonp({ user: 'tj' }); + * + * @param {string|number|boolean|object} obj + * @public + */ + +res.jsonp = function jsonp(obj) { + var val = obj; + + // allow status / body + if (arguments.length === 2) { + // res.jsonp(body, status) backwards compat + if (typeof arguments[1] === 'number') { + deprecate('res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead'); + this.statusCode = arguments[0]; + val = arguments[1]; + } + } + + // settings + var app = this.app; + var escape = app.get('json escape') + var replacer = app.get('json replacer'); + var spaces = app.get('json spaces'); + var body = stringify(val, replacer, spaces, escape) + var callback = this.req.query[app.get('jsonp callback name')]; + + // content-type + if (!this.get('Content-Type')) { + this.set('X-Content-Type-Options', 'nosniff'); + this.set('Content-Type', 'application/json'); + } + + // fixup callback + if (Array.isArray(callback)) { + callback = callback[0]; + } + + // jsonp + if (typeof callback === 'string' && callback.length !== 0) { + this.set('X-Content-Type-Options', 'nosniff'); + this.set('Content-Type', 'text/javascript'); + + // restrict callback charset + callback = callback.replace(/[^\[\]\w$.]/g, ''); + + if (body === undefined) { + // empty argument + body = '' + } else if (typeof body === 'string') { + // replace chars not allowed in JavaScript that are in JSON + body = body + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + } + + // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse" + // the typeof check is just to reduce client error noise + body = '/**/ typeof ' + callback + ' === \'function\' && ' + callback + '(' + body + ');'; + } + + return this.send(body); +}; + +/** + * Send given HTTP status code. + * + * Sets the response status to `statusCode` and the body of the + * response to the standard description from node's http.STATUS_CODES + * or the statusCode number if no description. + * + * Examples: + * + * res.sendStatus(200); + * + * @param {number} statusCode + * @public + */ + +res.sendStatus = function sendStatus(statusCode) { + var body = statuses.message[statusCode] || String(statusCode) + + this.statusCode = statusCode; + this.type('txt'); + + return this.send(body); +}; + +/** + * Transfer the file at the given `path`. + * + * Automatically sets the _Content-Type_ response header field. + * The callback `callback(err)` is invoked when the transfer is complete + * or when an error occurs. Be sure to check `res.headersSent` + * if you wish to attempt responding, as the header and some data + * may have already been transferred. + * + * Options: + * + * - `maxAge` defaulting to 0 (can be string converted by `ms`) + * - `root` root directory for relative filenames + * - `headers` object of headers to serve with file + * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them + * + * Other options are passed along to `send`. + * + * Examples: + * + * The following example illustrates how `res.sendFile()` may + * be used as an alternative for the `static()` middleware for + * dynamic situations. The code backing `res.sendFile()` is actually + * the same code, so HTTP cache support etc is identical. + * + * app.get('/user/:uid/photos/:file', function(req, res){ + * var uid = req.params.uid + * , file = req.params.file; + * + * req.user.mayViewFilesFrom(uid, function(yes){ + * if (yes) { + * res.sendFile('/uploads/' + uid + '/' + file); + * } else { + * res.send(403, 'Sorry! you cant see that.'); + * } + * }); + * }); + * + * @public + */ + +res.sendFile = function sendFile(path, options, callback) { + var done = callback; + var req = this.req; + var res = this; + var next = req.next; + var opts = options || {}; + + if (!path) { + throw new TypeError('path argument is required to res.sendFile'); + } + + if (typeof path !== 'string') { + throw new TypeError('path must be a string to res.sendFile') + } + + // support function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + if (!opts.root && !isAbsolute(path)) { + throw new TypeError('path must be absolute or specify root to res.sendFile'); + } + + // create file stream + var pathname = encodeURI(path); + var file = send(req, pathname, opts); + + // transfer + sendfile(res, file, opts, function (err) { + if (done) return done(err); + if (err && err.code === 'EISDIR') return next(); + + // next() all but write errors + if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') { + next(err); + } + }); +}; + +/** + * Transfer the file at the given `path`. + * + * Automatically sets the _Content-Type_ response header field. + * The callback `callback(err)` is invoked when the transfer is complete + * or when an error occurs. Be sure to check `res.headersSent` + * if you wish to attempt responding, as the header and some data + * may have already been transferred. + * + * Options: + * + * - `maxAge` defaulting to 0 (can be string converted by `ms`) + * - `root` root directory for relative filenames + * - `headers` object of headers to serve with file + * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them + * + * Other options are passed along to `send`. + * + * Examples: + * + * The following example illustrates how `res.sendfile()` may + * be used as an alternative for the `static()` middleware for + * dynamic situations. The code backing `res.sendfile()` is actually + * the same code, so HTTP cache support etc is identical. + * + * app.get('/user/:uid/photos/:file', function(req, res){ + * var uid = req.params.uid + * , file = req.params.file; + * + * req.user.mayViewFilesFrom(uid, function(yes){ + * if (yes) { + * res.sendfile('/uploads/' + uid + '/' + file); + * } else { + * res.send(403, 'Sorry! you cant see that.'); + * } + * }); + * }); + * + * @public + */ + +res.sendfile = function (path, options, callback) { + var done = callback; + var req = this.req; + var res = this; + var next = req.next; + var opts = options || {}; + + // support function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // create file stream + var file = send(req, path, opts); + + // transfer + sendfile(res, file, opts, function (err) { + if (done) return done(err); + if (err && err.code === 'EISDIR') return next(); + + // next() all but write errors + if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') { + next(err); + } + }); +}; + +res.sendfile = deprecate.function(res.sendfile, + 'res.sendfile: Use res.sendFile instead'); + +/** + * Transfer the file at the given `path` as an attachment. + * + * Optionally providing an alternate attachment `filename`, + * and optional callback `callback(err)`. The callback is invoked + * when the data transfer is complete, or when an error has + * occurred. Be sure to check `res.headersSent` if you plan to respond. + * + * Optionally providing an `options` object to use with `res.sendFile()`. + * This function will set the `Content-Disposition` header, overriding + * any `Content-Disposition` header passed as header options in order + * to set the attachment and filename. + * + * This method uses `res.sendFile()`. + * + * @public + */ + +res.download = function download (path, filename, options, callback) { + var done = callback; + var name = filename; + var opts = options || null + + // support function as second or third arg + if (typeof filename === 'function') { + done = filename; + name = null; + opts = null + } else if (typeof options === 'function') { + done = options + opts = null + } + + // support optional filename, where options may be in it's place + if (typeof filename === 'object' && + (typeof options === 'function' || options === undefined)) { + name = null + opts = filename + } + + // set Content-Disposition when file is sent + var headers = { + 'Content-Disposition': contentDisposition(name || path) + }; + + // merge user-provided headers + if (opts && opts.headers) { + var keys = Object.keys(opts.headers) + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key.toLowerCase() !== 'content-disposition') { + headers[key] = opts.headers[key] + } + } + } + + // merge user-provided options + opts = Object.create(opts) + opts.headers = headers + + // Resolve the full path for sendFile + var fullPath = !opts.root + ? resolve(path) + : path + + // send file + return this.sendFile(fullPath, opts, done) +}; + +/** + * Set _Content-Type_ response header with `type` through `mime.lookup()` + * when it does not contain "/", or set the Content-Type to `type` otherwise. + * + * Examples: + * + * res.type('.html'); + * res.type('html'); + * res.type('json'); + * res.type('application/json'); + * res.type('png'); + * + * @param {String} type + * @return {ServerResponse} for chaining + * @public + */ + +res.contentType = +res.type = function contentType(type) { + var ct = type.indexOf('/') === -1 + ? mime.lookup(type) + : type; + + return this.set('Content-Type', ct); +}; + +/** + * Respond to the Acceptable formats using an `obj` + * of mime-type callbacks. + * + * This method uses `req.accepted`, an array of + * acceptable types ordered by their quality values. + * When "Accept" is not present the _first_ callback + * is invoked, otherwise the first match is used. When + * no match is performed the server responds with + * 406 "Not Acceptable". + * + * Content-Type is set for you, however if you choose + * you may alter this within the callback using `res.type()` + * or `res.set('Content-Type', ...)`. + * + * res.format({ + * 'text/plain': function(){ + * res.send('hey'); + * }, + * + * 'text/html': function(){ + * res.send('

hey

'); + * }, + * + * 'application/json': function () { + * res.send({ message: 'hey' }); + * } + * }); + * + * In addition to canonicalized MIME types you may + * also use extnames mapped to these types: + * + * res.format({ + * text: function(){ + * res.send('hey'); + * }, + * + * html: function(){ + * res.send('

hey

'); + * }, + * + * json: function(){ + * res.send({ message: 'hey' }); + * } + * }); + * + * By default Express passes an `Error` + * with a `.status` of 406 to `next(err)` + * if a match is not made. If you provide + * a `.default` callback it will be invoked + * instead. + * + * @param {Object} obj + * @return {ServerResponse} for chaining + * @public + */ + +res.format = function(obj){ + var req = this.req; + var next = req.next; + + var keys = Object.keys(obj) + .filter(function (v) { return v !== 'default' }) + + var key = keys.length > 0 + ? req.accepts(keys) + : false; + + this.vary("Accept"); + + if (key) { + this.set('Content-Type', normalizeType(key).value); + obj[key](req, this, next); + } else if (obj.default) { + obj.default(req, this, next) + } else { + next(createError(406, { + types: normalizeTypes(keys).map(function (o) { return o.value }) + })) + } + + return this; +}; + +/** + * Set _Content-Disposition_ header to _attachment_ with optional `filename`. + * + * @param {String} filename + * @return {ServerResponse} + * @public + */ + +res.attachment = function attachment(filename) { + if (filename) { + this.type(extname(filename)); + } + + this.set('Content-Disposition', contentDisposition(filename)); + + return this; +}; + +/** + * Append additional header `field` with value `val`. + * + * Example: + * + * res.append('Link', ['', '']); + * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly'); + * res.append('Warning', '199 Miscellaneous warning'); + * + * @param {String} field + * @param {String|Array} val + * @return {ServerResponse} for chaining + * @public + */ + +res.append = function append(field, val) { + var prev = this.get(field); + var value = val; + + if (prev) { + // concat the new and prev vals + value = Array.isArray(prev) ? prev.concat(val) + : Array.isArray(val) ? [prev].concat(val) + : [prev, val] + } + + return this.set(field, value); +}; + +/** + * Set header `field` to `val`, or pass + * an object of header fields. + * + * Examples: + * + * res.set('Foo', ['bar', 'baz']); + * res.set('Accept', 'application/json'); + * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); + * + * Aliased as `res.header()`. + * + * @param {String|Object} field + * @param {String|Array} val + * @return {ServerResponse} for chaining + * @public + */ + +res.set = +res.header = function header(field, val) { + if (arguments.length === 2) { + var value = Array.isArray(val) + ? val.map(String) + : String(val); + + // add charset to content-type + if (field.toLowerCase() === 'content-type') { + if (Array.isArray(value)) { + throw new TypeError('Content-Type cannot be set to an Array'); + } + if (!charsetRegExp.test(value)) { + var charset = mime.charsets.lookup(value.split(';')[0]); + if (charset) value += '; charset=' + charset.toLowerCase(); + } + } + + this.setHeader(field, value); + } else { + for (var key in field) { + this.set(key, field[key]); + } + } + return this; +}; + +/** + * Get value for header `field`. + * + * @param {String} field + * @return {String} + * @public + */ + +res.get = function(field){ + return this.getHeader(field); +}; + +/** + * Clear cookie `name`. + * + * @param {String} name + * @param {Object} [options] + * @return {ServerResponse} for chaining + * @public + */ + +res.clearCookie = function clearCookie(name, options) { + if (options) { + if (options.maxAge) { + deprecate('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'); + } + if (options.expires) { + deprecate('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'); + } + } + var opts = merge({ expires: new Date(1), path: '/' }, options); + + return this.cookie(name, '', opts); +}; + +/** + * Set cookie `name` to `value`, with the given `options`. + * + * Options: + * + * - `maxAge` max-age in milliseconds, converted to `expires` + * - `signed` sign the cookie + * - `path` defaults to "/" + * + * Examples: + * + * // "Remember Me" for 15 minutes + * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true }); + * + * // same as above + * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) + * + * @param {String} name + * @param {String|Object} value + * @param {Object} [options] + * @return {ServerResponse} for chaining + * @public + */ + +res.cookie = function (name, value, options) { + var opts = merge({}, options); + var secret = this.req.secret; + var signed = opts.signed; + + if (signed && !secret) { + throw new Error('cookieParser("secret") required for signed cookies'); + } + + var val = typeof value === 'object' + ? 'j:' + JSON.stringify(value) + : String(value); + + if (signed) { + val = 's:' + sign(val, secret); + } + + if (opts.maxAge != null) { + var maxAge = opts.maxAge - 0 + + if (!isNaN(maxAge)) { + opts.expires = new Date(Date.now() + maxAge) + opts.maxAge = Math.floor(maxAge / 1000) + } + } + + if (opts.path == null) { + opts.path = '/'; + } + + this.append('Set-Cookie', cookie.serialize(name, String(val), opts)); + + return this; +}; + +/** + * Set the location header to `url`. + * + * The given `url` can also be "back", which redirects + * to the _Referrer_ or _Referer_ headers or "/". + * + * Examples: + * + * res.location('/foo/bar').; + * res.location('http://example.com'); + * res.location('../login'); + * + * @param {String} url + * @return {ServerResponse} for chaining + * @public + */ + +res.location = function location(url) { + var loc; + + // "back" is an alias for the referrer + if (url === 'back') { + deprecate('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'); + loc = this.req.get('Referrer') || '/'; + } else { + loc = String(url); + } + + return this.set('Location', encodeUrl(loc)); +}; + +/** + * Redirect to the given `url` with optional response `status` + * defaulting to 302. + * + * The resulting `url` is determined by `res.location()`, so + * it will play nicely with mounted apps, relative paths, + * `"back"` etc. + * + * Examples: + * + * res.redirect('/foo/bar'); + * res.redirect('http://example.com'); + * res.redirect(301, 'http://example.com'); + * res.redirect('../login'); // /blog/post/1 -> /blog/login + * + * @public + */ + +res.redirect = function redirect(url) { + var address = url; + var body; + var status = 302; + + // allow status / url + if (arguments.length === 2) { + if (typeof arguments[0] === 'number') { + status = arguments[0]; + address = arguments[1]; + } else { + deprecate('res.redirect(url, status): Use res.redirect(status, url) instead'); + status = arguments[1]; + } + } + + // Set location header + address = this.location(address).get('Location'); + + // Support text/{plain,html} by default + this.format({ + text: function(){ + body = statuses.message[status] + '. Redirecting to ' + address + }, + + html: function(){ + var u = escapeHtml(address); + body = '

' + statuses.message[status] + '. Redirecting to ' + u + '

' + }, + + default: function(){ + body = ''; + } + }); + + // Respond + this.statusCode = status; + this.set('Content-Length', Buffer.byteLength(body)); + + if (this.req.method === 'HEAD') { + this.end(); + } else { + this.end(body); + } +}; + +/** + * Add `field` to Vary. If already present in the Vary set, then + * this call is simply ignored. + * + * @param {Array|String} field + * @return {ServerResponse} for chaining + * @public + */ + +res.vary = function(field){ + // checks for back-compat + if (!field || (Array.isArray(field) && !field.length)) { + deprecate('res.vary(): Provide a field name'); + return this; + } + + vary(this, field); + + return this; +}; + +/** + * Render `view` with the given `options` and optional callback `fn`. + * When a callback function is given a response will _not_ be made + * automatically, otherwise a response of _200_ and _text/html_ is given. + * + * Options: + * + * - `cache` boolean hinting to the engine it should cache + * - `filename` filename of the view being rendered + * + * @public + */ + +res.render = function render(view, options, callback) { + var app = this.req.app; + var done = callback; + var opts = options || {}; + var req = this.req; + var self = this; + + // support callback function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // merge res.locals + opts._locals = self.locals; + + // default callback to respond + done = done || function (err, str) { + if (err) return req.next(err); + self.send(str); + }; + + // render + app.render(view, opts, done); +}; + +// pipe the send file stream +function sendfile(res, file, options, callback) { + var done = false; + var streaming; + + // request aborted + function onaborted() { + if (done) return; + done = true; + + var err = new Error('Request aborted'); + err.code = 'ECONNABORTED'; + callback(err); + } + + // directory + function ondirectory() { + if (done) return; + done = true; + + var err = new Error('EISDIR, read'); + err.code = 'EISDIR'; + callback(err); + } + + // errors + function onerror(err) { + if (done) return; + done = true; + callback(err); + } + + // ended + function onend() { + if (done) return; + done = true; + callback(); + } + + // file + function onfile() { + streaming = false; + } + + // finished + function onfinish(err) { + if (err && err.code === 'ECONNRESET') return onaborted(); + if (err) return onerror(err); + if (done) return; + + setImmediate(function () { + if (streaming !== false && !done) { + onaborted(); + return; + } + + if (done) return; + done = true; + callback(); + }); + } + + // streaming + function onstream() { + streaming = true; + } + + file.on('directory', ondirectory); + file.on('end', onend); + file.on('error', onerror); + file.on('file', onfile); + file.on('stream', onstream); + onFinished(res, onfinish); + + if (options.headers) { + // set headers on successful transfer + file.on('headers', function headers(res) { + var obj = options.headers; + var keys = Object.keys(obj); + + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + res.setHeader(k, obj[k]); + } + }); + } + + // pipe + file.pipe(res); +} + +/** + * Stringify JSON, like JSON.stringify, but v8 optimized, with the + * ability to escape characters that can trigger HTML sniffing. + * + * @param {*} value + * @param {function} replacer + * @param {number} spaces + * @param {boolean} escape + * @returns {string} + * @private + */ + +function stringify (value, replacer, spaces, escape) { + // v8 checks arguments.length for optimizing simple call + // https://bugs.chromium.org/p/v8/issues/detail?id=4730 + var json = replacer || spaces + ? JSON.stringify(value, replacer, spaces) + : JSON.stringify(value); + + if (escape && typeof json === 'string') { + json = json.replace(/[<>&]/g, function (c) { + switch (c.charCodeAt(0)) { + case 0x3c: + return '\\u003c' + case 0x3e: + return '\\u003e' + case 0x26: + return '\\u0026' + /* istanbul ignore next: unreachable default */ + default: + return c + } + }) + } + + return json +} diff --git a/node_modules/express/lib/router/index.js b/node_modules/express/lib/router/index.js new file mode 100644 index 0000000..abb3a6f --- /dev/null +++ b/node_modules/express/lib/router/index.js @@ -0,0 +1,673 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var Route = require('./route'); +var Layer = require('./layer'); +var methods = require('methods'); +var mixin = require('utils-merge'); +var debug = require('debug')('express:router'); +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var parseUrl = require('parseurl'); +var setPrototypeOf = require('setprototypeof') + +/** + * Module variables. + * @private + */ + +var objectRegExp = /^\[object (\S+)\]$/; +var slice = Array.prototype.slice; +var toString = Object.prototype.toString; + +/** + * Initialize a new `Router` with the given `options`. + * + * @param {Object} [options] + * @return {Router} which is a callable function + * @public + */ + +var proto = module.exports = function(options) { + var opts = options || {}; + + function router(req, res, next) { + router.handle(req, res, next); + } + + // mixin Router class functions + setPrototypeOf(router, proto) + + router.params = {}; + router._params = []; + router.caseSensitive = opts.caseSensitive; + router.mergeParams = opts.mergeParams; + router.strict = opts.strict; + router.stack = []; + + return router; +}; + +/** + * Map the given param placeholder `name`(s) to the given callback. + * + * Parameter mapping is used to provide pre-conditions to routes + * which use normalized placeholders. For example a _:user_id_ parameter + * could automatically load a user's information from the database without + * any additional code, + * + * The callback uses the same signature as middleware, the only difference + * being that the value of the placeholder is passed, in this case the _id_ + * of the user. Once the `next()` function is invoked, just like middleware + * it will continue on to execute the route, or subsequent parameter functions. + * + * Just like in middleware, you must either respond to the request or call next + * to avoid stalling the request. + * + * app.param('user_id', function(req, res, next, id){ + * User.find(id, function(err, user){ + * if (err) { + * return next(err); + * } else if (!user) { + * return next(new Error('failed to load user')); + * } + * req.user = user; + * next(); + * }); + * }); + * + * @param {String} name + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +proto.param = function param(name, fn) { + // param logic + if (typeof name === 'function') { + deprecate('router.param(fn): Refactor to use path params'); + this._params.push(name); + return; + } + + // apply param functions + var params = this._params; + var len = params.length; + var ret; + + if (name[0] === ':') { + deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.slice(1)) + ', fn) instead') + name = name.slice(1) + } + + for (var i = 0; i < len; ++i) { + if (ret = params[i](name, fn)) { + fn = ret; + } + } + + // ensure we end up with a + // middleware function + if ('function' !== typeof fn) { + throw new Error('invalid param() call for ' + name + ', got ' + fn); + } + + (this.params[name] = this.params[name] || []).push(fn); + return this; +}; + +/** + * Dispatch a req, res into the router. + * @private + */ + +proto.handle = function handle(req, res, out) { + var self = this; + + debug('dispatching %s %s', req.method, req.url); + + var idx = 0; + var protohost = getProtohost(req.url) || '' + var removed = ''; + var slashAdded = false; + var sync = 0 + var paramcalled = {}; + + // store options for OPTIONS request + // only used if OPTIONS request + var options = []; + + // middleware and routes + var stack = self.stack; + + // manage inter-router variables + var parentParams = req.params; + var parentUrl = req.baseUrl || ''; + var done = restore(out, req, 'baseUrl', 'next', 'params'); + + // setup next layer + req.next = next; + + // for options requests, respond with a default if nothing else responds + if (req.method === 'OPTIONS') { + done = wrap(done, function(old, err) { + if (err || options.length === 0) return old(err); + sendOptionsResponse(res, options, old); + }); + } + + // setup basic req values + req.baseUrl = parentUrl; + req.originalUrl = req.originalUrl || req.url; + + next(); + + function next(err) { + var layerError = err === 'route' + ? null + : err; + + // remove added slash + if (slashAdded) { + req.url = req.url.slice(1) + slashAdded = false; + } + + // restore altered req.url + if (removed.length !== 0) { + req.baseUrl = parentUrl; + req.url = protohost + removed + req.url.slice(protohost.length) + removed = ''; + } + + // signal to exit router + if (layerError === 'router') { + setImmediate(done, null) + return + } + + // no more matching layers + if (idx >= stack.length) { + setImmediate(done, layerError); + return; + } + + // max sync stack + if (++sync > 100) { + return setImmediate(next, err) + } + + // get pathname of request + var path = getPathname(req); + + if (path == null) { + return done(layerError); + } + + // find next matching layer + var layer; + var match; + var route; + + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = matchLayer(layer, path); + route = layer.route; + + if (typeof match !== 'boolean') { + // hold on to layerError + layerError = layerError || match; + } + + if (match !== true) { + continue; + } + + if (!route) { + // process non-route handlers normally + continue; + } + + if (layerError) { + // routes do not match with a pending error + match = false; + continue; + } + + var method = req.method; + var has_method = route._handles_method(method); + + // build up automatic options response + if (!has_method && method === 'OPTIONS') { + appendMethods(options, route._options()); + } + + // don't even bother matching route + if (!has_method && method !== 'HEAD') { + match = false; + } + } + + // no match + if (match !== true) { + return done(layerError); + } + + // store route for dispatch on change + if (route) { + req.route = route; + } + + // Capture one-time layer values + req.params = self.mergeParams + ? mergeParams(layer.params, parentParams) + : layer.params; + var layerPath = layer.path; + + // this should be done for the layer + self.process_params(layer, paramcalled, req, res, function (err) { + if (err) { + next(layerError || err) + } else if (route) { + layer.handle_request(req, res, next) + } else { + trim_prefix(layer, layerError, layerPath, path) + } + + sync = 0 + }); + } + + function trim_prefix(layer, layerError, layerPath, path) { + if (layerPath.length !== 0) { + // Validate path is a prefix match + if (layerPath !== path.slice(0, layerPath.length)) { + next(layerError) + return + } + + // Validate path breaks on a path separator + var c = path[layerPath.length] + if (c && c !== '/' && c !== '.') return next(layerError) + + // Trim off the part of the url that matches the route + // middleware (.use stuff) needs to have the path stripped + debug('trim prefix (%s) from url %s', layerPath, req.url); + removed = layerPath; + req.url = protohost + req.url.slice(protohost.length + removed.length) + + // Ensure leading slash + if (!protohost && req.url[0] !== '/') { + req.url = '/' + req.url; + slashAdded = true; + } + + // Setup base URL (no trailing slash) + req.baseUrl = parentUrl + (removed[removed.length - 1] === '/' + ? removed.substring(0, removed.length - 1) + : removed); + } + + debug('%s %s : %s', layer.name, layerPath, req.originalUrl); + + if (layerError) { + layer.handle_error(layerError, req, res, next); + } else { + layer.handle_request(req, res, next); + } + } +}; + +/** + * Process any parameters for the layer. + * @private + */ + +proto.process_params = function process_params(layer, called, req, res, done) { + var params = this.params; + + // captured parameters from the layer, keys and values + var keys = layer.keys; + + // fast track + if (!keys || keys.length === 0) { + return done(); + } + + var i = 0; + var name; + var paramIndex = 0; + var key; + var paramVal; + var paramCallbacks; + var paramCalled; + + // process params in order + // param callbacks can be async + function param(err) { + if (err) { + return done(err); + } + + if (i >= keys.length ) { + return done(); + } + + paramIndex = 0; + key = keys[i++]; + name = key.name; + paramVal = req.params[name]; + paramCallbacks = params[name]; + paramCalled = called[name]; + + if (paramVal === undefined || !paramCallbacks) { + return param(); + } + + // param previously called with same value or error occurred + if (paramCalled && (paramCalled.match === paramVal + || (paramCalled.error && paramCalled.error !== 'route'))) { + // restore value + req.params[name] = paramCalled.value; + + // next param + return param(paramCalled.error); + } + + called[name] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }; + + paramCallback(); + } + + // single param callbacks + function paramCallback(err) { + var fn = paramCallbacks[paramIndex++]; + + // store updated value + paramCalled.value = req.params[key.name]; + + if (err) { + // store error + paramCalled.error = err; + param(err); + return; + } + + if (!fn) return param(); + + try { + fn(req, res, paramCallback, paramVal, key.name); + } catch (e) { + paramCallback(e); + } + } + + param(); +}; + +/** + * Use the given middleware function, with optional path, defaulting to "/". + * + * Use (like `.all`) will run for any http METHOD, but it will not add + * handlers for those methods so OPTIONS requests will not consider `.use` + * functions even if they could respond. + * + * The other difference is that _route_ path is stripped and not visible + * to the handler function. The main effect of this feature is that mounted + * handlers can operate without any code changes regardless of the "prefix" + * pathname. + * + * @public + */ + +proto.use = function use(fn) { + var offset = 0; + var path = '/'; + + // default path to '/' + // disambiguate router.use([fn]) + if (typeof fn !== 'function') { + var arg = fn; + + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + + // first arg is the path + if (typeof arg !== 'function') { + offset = 1; + path = fn; + } + } + + var callbacks = flatten(slice.call(arguments, offset)); + + if (callbacks.length === 0) { + throw new TypeError('Router.use() requires a middleware function') + } + + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + + if (typeof fn !== 'function') { + throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn)) + } + + // add the middleware + debug('use %o %s', path, fn.name || '') + + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: false, + end: false + }, fn); + + layer.route = undefined; + + this.stack.push(layer); + } + + return this; +}; + +/** + * Create a new Route for the given path. + * + * Each route contains a separate middleware stack and VERB handlers. + * + * See the Route api documentation for details on adding handlers + * and middleware to routes. + * + * @param {String} path + * @return {Route} + * @public + */ + +proto.route = function route(path) { + var route = new Route(path); + + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: true + }, route.dispatch.bind(route)); + + layer.route = route; + + this.stack.push(layer); + return route; +}; + +// create Router#VERB functions +methods.concat('all').forEach(function(method){ + proto[method] = function(path){ + var route = this.route(path) + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; +}); + +// append methods to a list of methods +function appendMethods(list, addition) { + for (var i = 0; i < addition.length; i++) { + var method = addition[i]; + if (list.indexOf(method) === -1) { + list.push(method); + } + } +} + +// get pathname of request +function getPathname(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return undefined; + } +} + +// Get get protocol + host for a URL +function getProtohost(url) { + if (typeof url !== 'string' || url.length === 0 || url[0] === '/') { + return undefined + } + + var searchIndex = url.indexOf('?') + var pathLength = searchIndex !== -1 + ? searchIndex + : url.length + var fqdnIndex = url.slice(0, pathLength).indexOf('://') + + return fqdnIndex !== -1 + ? url.substring(0, url.indexOf('/', 3 + fqdnIndex)) + : undefined +} + +// get type for error message +function gettype(obj) { + var type = typeof obj; + + if (type !== 'object') { + return type; + } + + // inspect [[Class]] for objects + return toString.call(obj) + .replace(objectRegExp, '$1'); +} + +/** + * Match path to a layer. + * + * @param {Layer} layer + * @param {string} path + * @private + */ + +function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } +} + +// merge params with parent params +function mergeParams(params, parent) { + if (typeof parent !== 'object' || !parent) { + return params; + } + + // make copy of parent for base + var obj = mixin({}, parent); + + // simple non-numeric merging + if (!(0 in params) || !(0 in parent)) { + return mixin(obj, params); + } + + var i = 0; + var o = 0; + + // determine numeric gaps + while (i in params) { + i++; + } + + while (o in parent) { + o++; + } + + // offset numeric indices in params before merge + for (i--; i >= 0; i--) { + params[i + o] = params[i]; + + // create holes for the merge when necessary + if (i < o) { + delete params[i]; + } + } + + return mixin(obj, params); +} + +// restore obj props after function +function restore(fn, obj) { + var props = new Array(arguments.length - 2); + var vals = new Array(arguments.length - 2); + + for (var i = 0; i < props.length; i++) { + props[i] = arguments[i + 2]; + vals[i] = obj[props[i]]; + } + + return function () { + // restore vals + for (var i = 0; i < props.length; i++) { + obj[props[i]] = vals[i]; + } + + return fn.apply(this, arguments); + }; +} + +// send an OPTIONS response +function sendOptionsResponse(res, options, next) { + try { + var body = options.join(','); + res.set('Allow', body); + res.send(body); + } catch (err) { + next(err); + } +} + +// wrap a function +function wrap(old, fn) { + return function proxy() { + var args = new Array(arguments.length + 1); + + args[0] = old; + for (var i = 0, len = arguments.length; i < len; i++) { + args[i + 1] = arguments[i]; + } + + fn.apply(this, args); + }; +} diff --git a/node_modules/express/lib/router/layer.js b/node_modules/express/lib/router/layer.js new file mode 100644 index 0000000..4dc8e86 --- /dev/null +++ b/node_modules/express/lib/router/layer.js @@ -0,0 +1,181 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var pathRegexp = require('path-to-regexp'); +var debug = require('debug')('express:router:layer'); + +/** + * Module variables. + * @private + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Module exports. + * @public + */ + +module.exports = Layer; + +function Layer(path, options, fn) { + if (!(this instanceof Layer)) { + return new Layer(path, options, fn); + } + + debug('new %o', path) + var opts = options || {}; + + this.handle = fn; + this.name = fn.name || ''; + this.params = undefined; + this.path = undefined; + this.regexp = pathRegexp(path, this.keys = [], opts); + + // set fast path flags + this.regexp.fast_star = path === '*' + this.regexp.fast_slash = path === '/' && opts.end === false +} + +/** + * Handle the error for the layer. + * + * @param {Error} error + * @param {Request} req + * @param {Response} res + * @param {function} next + * @api private + */ + +Layer.prototype.handle_error = function handle_error(error, req, res, next) { + var fn = this.handle; + + if (fn.length !== 4) { + // not a standard error handler + return next(error); + } + + try { + fn(error, req, res, next); + } catch (err) { + next(err); + } +}; + +/** + * Handle the request for the layer. + * + * @param {Request} req + * @param {Response} res + * @param {function} next + * @api private + */ + +Layer.prototype.handle_request = function handle(req, res, next) { + var fn = this.handle; + + if (fn.length > 3) { + // not a standard request handler + return next(); + } + + try { + fn(req, res, next); + } catch (err) { + next(err); + } +}; + +/** + * Check if this route matches `path`, if so + * populate `.params`. + * + * @param {String} path + * @return {Boolean} + * @api private + */ + +Layer.prototype.match = function match(path) { + var match + + if (path != null) { + // fast path non-ending match for / (any path matches) + if (this.regexp.fast_slash) { + this.params = {} + this.path = '' + return true + } + + // fast path for * (everything matched in a param) + if (this.regexp.fast_star) { + this.params = {'0': decode_param(path)} + this.path = path + return true + } + + // match the path + match = this.regexp.exec(path) + } + + if (!match) { + this.params = undefined; + this.path = undefined; + return false; + } + + // store values + this.params = {}; + this.path = match[0] + + var keys = this.keys; + var params = this.params; + + for (var i = 1; i < match.length; i++) { + var key = keys[i - 1]; + var prop = key.name; + var val = decode_param(match[i]) + + if (val !== undefined || !(hasOwnProperty.call(params, prop))) { + params[prop] = val; + } + } + + return true; +}; + +/** + * Decode param value. + * + * @param {string} val + * @return {string} + * @private + */ + +function decode_param(val) { + if (typeof val !== 'string' || val.length === 0) { + return val; + } + + try { + return decodeURIComponent(val); + } catch (err) { + if (err instanceof URIError) { + err.message = 'Failed to decode param \'' + val + '\''; + err.status = err.statusCode = 400; + } + + throw err; + } +} diff --git a/node_modules/express/lib/router/route.js b/node_modules/express/lib/router/route.js new file mode 100644 index 0000000..a65756d --- /dev/null +++ b/node_modules/express/lib/router/route.js @@ -0,0 +1,230 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('express:router:route'); +var flatten = require('array-flatten'); +var Layer = require('./layer'); +var methods = require('methods'); + +/** + * Module variables. + * @private + */ + +var slice = Array.prototype.slice; +var toString = Object.prototype.toString; + +/** + * Module exports. + * @public + */ + +module.exports = Route; + +/** + * Initialize `Route` with the given `path`, + * + * @param {String} path + * @public + */ + +function Route(path) { + this.path = path; + this.stack = []; + + debug('new %o', path) + + // route handlers for various http methods + this.methods = {}; +} + +/** + * Determine if the route handles a given method. + * @private + */ + +Route.prototype._handles_method = function _handles_method(method) { + if (this.methods._all) { + return true; + } + + // normalize name + var name = typeof method === 'string' + ? method.toLowerCase() + : method + + if (name === 'head' && !this.methods['head']) { + name = 'get'; + } + + return Boolean(this.methods[name]); +}; + +/** + * @return {Array} supported HTTP methods + * @private + */ + +Route.prototype._options = function _options() { + var methods = Object.keys(this.methods); + + // append automatic head + if (this.methods.get && !this.methods.head) { + methods.push('head'); + } + + for (var i = 0; i < methods.length; i++) { + // make upper case + methods[i] = methods[i].toUpperCase(); + } + + return methods; +}; + +/** + * dispatch req, res into this route + * @private + */ + +Route.prototype.dispatch = function dispatch(req, res, done) { + var idx = 0; + var stack = this.stack; + var sync = 0 + + if (stack.length === 0) { + return done(); + } + var method = typeof req.method === 'string' + ? req.method.toLowerCase() + : req.method + + if (method === 'head' && !this.methods['head']) { + method = 'get'; + } + + req.route = this; + + next(); + + function next(err) { + // signal to exit route + if (err && err === 'route') { + return done(); + } + + // signal to exit router + if (err && err === 'router') { + return done(err) + } + + // max sync stack + if (++sync > 100) { + return setImmediate(next, err) + } + + var layer = stack[idx++] + + // end of layers + if (!layer) { + return done(err) + } + + if (layer.method && layer.method !== method) { + next(err) + } else if (err) { + layer.handle_error(err, req, res, next); + } else { + layer.handle_request(req, res, next); + } + + sync = 0 + } +}; + +/** + * Add a handler for all HTTP verbs to this route. + * + * Behaves just like middleware and can respond or call `next` + * to continue processing. + * + * You can use multiple `.all` call to add multiple handlers. + * + * function check_something(req, res, next){ + * next(); + * }; + * + * function validate_user(req, res, next){ + * next(); + * }; + * + * route + * .all(validate_user) + * .all(check_something) + * .get(function(req, res, next){ + * res.send('hello world'); + * }); + * + * @param {function} handler + * @return {Route} for chaining + * @api public + */ + +Route.prototype.all = function all() { + var handles = flatten(slice.call(arguments)); + + for (var i = 0; i < handles.length; i++) { + var handle = handles[i]; + + if (typeof handle !== 'function') { + var type = toString.call(handle); + var msg = 'Route.all() requires a callback function but got a ' + type + throw new TypeError(msg); + } + + var layer = Layer('/', {}, handle); + layer.method = undefined; + + this.methods._all = true; + this.stack.push(layer); + } + + return this; +}; + +methods.forEach(function(method){ + Route.prototype[method] = function(){ + var handles = flatten(slice.call(arguments)); + + for (var i = 0; i < handles.length; i++) { + var handle = handles[i]; + + if (typeof handle !== 'function') { + var type = toString.call(handle); + var msg = 'Route.' + method + '() requires a callback function but got a ' + type + throw new Error(msg); + } + + debug('%s %o', method, this.path) + + var layer = Layer('/', {}, handle); + layer.method = method; + + this.methods[method] = true; + this.stack.push(layer); + } + + return this; + }; +}); diff --git a/node_modules/express/lib/utils.js b/node_modules/express/lib/utils.js new file mode 100644 index 0000000..56e12b9 --- /dev/null +++ b/node_modules/express/lib/utils.js @@ -0,0 +1,303 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @api private + */ + +var Buffer = require('safe-buffer').Buffer +var contentDisposition = require('content-disposition'); +var contentType = require('content-type'); +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var mime = require('send').mime; +var etag = require('etag'); +var proxyaddr = require('proxy-addr'); +var qs = require('qs'); +var querystring = require('querystring'); + +/** + * Return strong ETag for `body`. + * + * @param {String|Buffer} body + * @param {String} [encoding] + * @return {String} + * @api private + */ + +exports.etag = createETagGenerator({ weak: false }) + +/** + * Return weak ETag for `body`. + * + * @param {String|Buffer} body + * @param {String} [encoding] + * @return {String} + * @api private + */ + +exports.wetag = createETagGenerator({ weak: true }) + +/** + * Check if `path` looks absolute. + * + * @param {String} path + * @return {Boolean} + * @api private + */ + +exports.isAbsolute = function(path){ + if ('/' === path[0]) return true; + if (':' === path[1] && ('\\' === path[2] || '/' === path[2])) return true; // Windows device path + if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path +}; + +/** + * Flatten the given `arr`. + * + * @param {Array} arr + * @return {Array} + * @api private + */ + +exports.flatten = deprecate.function(flatten, + 'utils.flatten: use array-flatten npm module instead'); + +/** + * Normalize the given `type`, for example "html" becomes "text/html". + * + * @param {String} type + * @return {Object} + * @api private + */ + +exports.normalizeType = function(type){ + return ~type.indexOf('/') + ? acceptParams(type) + : { value: mime.lookup(type), params: {} }; +}; + +/** + * Normalize `types`, for example "html" becomes "text/html". + * + * @param {Array} types + * @return {Array} + * @api private + */ + +exports.normalizeTypes = function(types){ + var ret = []; + + for (var i = 0; i < types.length; ++i) { + ret.push(exports.normalizeType(types[i])); + } + + return ret; +}; + +/** + * Generate Content-Disposition header appropriate for the filename. + * non-ascii filenames are urlencoded and a filename* parameter is added + * + * @param {String} filename + * @return {String} + * @api private + */ + +exports.contentDisposition = deprecate.function(contentDisposition, + 'utils.contentDisposition: use content-disposition npm module instead'); + +/** + * Parse accept params `str` returning an + * object with `.value`, `.quality` and `.params`. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function acceptParams (str) { + var parts = str.split(/ *; */); + var ret = { value: parts[0], quality: 1, params: {} } + + for (var i = 1; i < parts.length; ++i) { + var pms = parts[i].split(/ *= */); + if ('q' === pms[0]) { + ret.quality = parseFloat(pms[1]); + } else { + ret.params[pms[0]] = pms[1]; + } + } + + return ret; +} + +/** + * Compile "etag" value to function. + * + * @param {Boolean|String|Function} val + * @return {Function} + * @api private + */ + +exports.compileETag = function(val) { + var fn; + + if (typeof val === 'function') { + return val; + } + + switch (val) { + case true: + case 'weak': + fn = exports.wetag; + break; + case false: + break; + case 'strong': + fn = exports.etag; + break; + default: + throw new TypeError('unknown value for etag function: ' + val); + } + + return fn; +} + +/** + * Compile "query parser" value to function. + * + * @param {String|Function} val + * @return {Function} + * @api private + */ + +exports.compileQueryParser = function compileQueryParser(val) { + var fn; + + if (typeof val === 'function') { + return val; + } + + switch (val) { + case true: + case 'simple': + fn = querystring.parse; + break; + case false: + fn = newObject; + break; + case 'extended': + fn = parseExtendedQueryString; + break; + default: + throw new TypeError('unknown value for query parser function: ' + val); + } + + return fn; +} + +/** + * Compile "proxy trust" value to function. + * + * @param {Boolean|String|Number|Array|Function} val + * @return {Function} + * @api private + */ + +exports.compileTrust = function(val) { + if (typeof val === 'function') return val; + + if (val === true) { + // Support plain true/false + return function(){ return true }; + } + + if (typeof val === 'number') { + // Support trusting hop count + return function(a, i){ return i < val }; + } + + if (typeof val === 'string') { + // Support comma-separated values + val = val.split(',') + .map(function (v) { return v.trim() }) + } + + return proxyaddr.compile(val || []); +} + +/** + * Set the charset in a given Content-Type string. + * + * @param {String} type + * @param {String} charset + * @return {String} + * @api private + */ + +exports.setCharset = function setCharset(type, charset) { + if (!type || !charset) { + return type; + } + + // parse type + var parsed = contentType.parse(type); + + // set charset + parsed.parameters.charset = charset; + + // format type + return contentType.format(parsed); +}; + +/** + * Create an ETag generator function, generating ETags with + * the given options. + * + * @param {object} options + * @return {function} + * @private + */ + +function createETagGenerator (options) { + return function generateETag (body, encoding) { + var buf = !Buffer.isBuffer(body) + ? Buffer.from(body, encoding) + : body + + return etag(buf, options) + } +} + +/** + * Parse an extended query string with qs. + * + * @param {String} str + * @return {Object} + * @private + */ + +function parseExtendedQueryString(str) { + return qs.parse(str, { + allowPrototypes: true + }); +} + +/** + * Return new empty object. + * + * @return {Object} + * @api private + */ + +function newObject() { + return {}; +} diff --git a/node_modules/express/lib/view.js b/node_modules/express/lib/view.js new file mode 100644 index 0000000..c08ab4d --- /dev/null +++ b/node_modules/express/lib/view.js @@ -0,0 +1,182 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('express:view'); +var path = require('path'); +var fs = require('fs'); + +/** + * Module variables. + * @private + */ + +var dirname = path.dirname; +var basename = path.basename; +var extname = path.extname; +var join = path.join; +var resolve = path.resolve; + +/** + * Module exports. + * @public + */ + +module.exports = View; + +/** + * Initialize a new `View` with the given `name`. + * + * Options: + * + * - `defaultEngine` the default template engine name + * - `engines` template engine require() cache + * - `root` root path for view lookup + * + * @param {string} name + * @param {object} options + * @public + */ + +function View(name, options) { + var opts = options || {}; + + this.defaultEngine = opts.defaultEngine; + this.ext = extname(name); + this.name = name; + this.root = opts.root; + + if (!this.ext && !this.defaultEngine) { + throw new Error('No default engine was specified and no extension was provided.'); + } + + var fileName = name; + + if (!this.ext) { + // get extension from default engine name + this.ext = this.defaultEngine[0] !== '.' + ? '.' + this.defaultEngine + : this.defaultEngine; + + fileName += this.ext; + } + + if (!opts.engines[this.ext]) { + // load engine + var mod = this.ext.slice(1) + debug('require "%s"', mod) + + // default engine export + var fn = require(mod).__express + + if (typeof fn !== 'function') { + throw new Error('Module "' + mod + '" does not provide a view engine.') + } + + opts.engines[this.ext] = fn + } + + // store loaded engine + this.engine = opts.engines[this.ext]; + + // lookup path + this.path = this.lookup(fileName); +} + +/** + * Lookup view by the given `name` + * + * @param {string} name + * @private + */ + +View.prototype.lookup = function lookup(name) { + var path; + var roots = [].concat(this.root); + + debug('lookup "%s"', name); + + for (var i = 0; i < roots.length && !path; i++) { + var root = roots[i]; + + // resolve the path + var loc = resolve(root, name); + var dir = dirname(loc); + var file = basename(loc); + + // resolve the file + path = this.resolve(dir, file); + } + + return path; +}; + +/** + * Render with the given options. + * + * @param {object} options + * @param {function} callback + * @private + */ + +View.prototype.render = function render(options, callback) { + debug('render "%s"', this.path); + this.engine(this.path, options, callback); +}; + +/** + * Resolve the file within the given directory. + * + * @param {string} dir + * @param {string} file + * @private + */ + +View.prototype.resolve = function resolve(dir, file) { + var ext = this.ext; + + // . + var path = join(dir, file); + var stat = tryStat(path); + + if (stat && stat.isFile()) { + return path; + } + + // /index. + path = join(dir, basename(file, ext), 'index' + ext); + stat = tryStat(path); + + if (stat && stat.isFile()) { + return path; + } +}; + +/** + * Return a stat, maybe. + * + * @param {string} path + * @return {fs.Stats} + * @private + */ + +function tryStat(path) { + debug('stat "%s"', path); + + try { + return fs.statSync(path); + } catch (e) { + return undefined; + } +} diff --git a/node_modules/express/package.json b/node_modules/express/package.json new file mode 100644 index 0000000..60f65fe --- /dev/null +++ b/node_modules/express/package.json @@ -0,0 +1,102 @@ +{ + "name": "express", + "description": "Fast, unopinionated, minimalist web framework", + "version": "4.21.2", + "author": "TJ Holowaychuk ", + "contributors": [ + "Aaron Heckmann ", + "Ciaran Jessup ", + "Douglas Christopher Wilson ", + "Guillermo Rauch ", + "Jonathan Ong ", + "Roman Shtylman ", + "Young Jae Sim " + ], + "license": "MIT", + "repository": "expressjs/express", + "homepage": "http://expressjs.com/", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + }, + "keywords": [ + "express", + "framework", + "sinatra", + "web", + "http", + "rest", + "restful", + "router", + "app", + "api" + ], + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "devDependencies": { + "after": "0.8.2", + "connect-redis": "3.4.2", + "cookie-parser": "1.4.6", + "cookie-session": "2.0.0", + "ejs": "3.1.9", + "eslint": "8.47.0", + "express-session": "1.17.2", + "hbs": "4.2.0", + "marked": "0.7.0", + "method-override": "3.0.0", + "mocha": "10.2.0", + "morgan": "1.10.0", + "nyc": "15.1.0", + "pbkdf2-password": "1.2.1", + "supertest": "6.3.0", + "vhost": "~3.0.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "files": [ + "LICENSE", + "History.md", + "Readme.md", + "index.js", + "lib/" + ], + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", + "test-ci": "nyc --exclude examples --exclude test --exclude benchmarks --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --exclude examples --exclude test --exclude benchmarks --reporter=html --reporter=text npm test", + "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" + } +} diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100644 index 0000000..8d756fe --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range) + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save fill-range +``` + +## Usage + +Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. + +```js +const fill = require('fill-range'); +// fill(from, to[, step, options]); + +console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] +console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 +``` + +**Params** + +* `from`: **{String|Number}** the number or letter to start with +* `to`: **{String|Number}** the number or letter to end with +* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. +* `options`: **{Object|Function}**: See all available [options](#options) + +## Examples + +By default, an array of values is returned. + +**Alphabetical ranges** + +```js +console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] +console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] +``` + +**Numerical ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] +``` + +**Negative ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] +console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] +``` + +**Steps (increments)** + +```js +// numerical ranges with increments +console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] +console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] +console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] + +// alphabetical ranges with increments +console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] +``` + +## Options + +### options.step + +**Type**: `number` (formatted as a string or number) + +**Default**: `undefined` + +**Description**: The increment to use for the range. Can be used with letters or numbers. + +**Example(s)** + +```js +// numbers +console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] +console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] +console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] + +// letters +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] +console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] +``` + +### options.strictRanges + +**Type**: `boolean` + +**Default**: `false` + +**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. + +**Example(s)** + +The following are all invalid: + +```js +fill('1.1', '2'); // decimals not supported in ranges +fill('a', '2'); // incompatible range values +fill(1, 10, 'foo'); // invalid "step" argument +``` + +### options.stringify + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Cast all returned values to strings. By default, integers are returned as numbers. + +**Example(s)** + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] +``` + +### options.toRegex + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Create a regex-compatible source string, instead of expanding values to an array. + +**Example(s)** + +```js +// alphabetical range +console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' +// alphabetical with step +console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' +// numerical range +console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' +// numerical range with zero padding +console.log(fill('000001', '100000', { toRegex: true })); +//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' +``` + +### options.transform + +**Type**: `function` + +**Default**: `undefined` + +**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. + +**Example(s)** + +```js +// add zero padding +console.log(fill(1, 5, value => String(value).padStart(4, '0'))); +//=> ['0001', '0002', '0003', '0004', '0005'] +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 116 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [paulmillr](https://github.com/paulmillr) | +| 2 | [realityking](https://github.com/realityking) | +| 2 | [bluelovers](https://github.com/bluelovers) | +| 1 | [edorivai](https://github.com/edorivai) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100644 index 0000000..ddb212e --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,248 @@ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +const util = require('util'); +const toRegexRange = require('to-regex-range'); + +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options, maxLen) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.map(v => toMaxLen(String(v), maxLen)).join('|'); + } + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.map(v => toMaxLen(String(v), maxLen)).join('|')})`; + } + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options, maxLen) + : toRegex(range, null, { wrap: false, ...options }); + } + + return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { + return invalidRange(start, end, options); + } + + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber(step)) { + if (step != null && !isObject(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100644 index 0000000..582357f --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,74 @@ +{ + "name": "fill-range", + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", + "version": "7.1.1", + "homepage": "https://github.com/jonschlinkert/fill-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Edo Rivai (edo.rivai.nl)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Paul Miller (paulmillr.com)", + "Rouven Weßling (www.rouvenwessling.de)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/fill-range", + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --reporter dot", + "test": "npm run lint && npm run mocha", + "test:ci": "npm run test:cover", + "test:cover": "nyc npm run mocha" + }, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "devDependencies": { + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1", + "nyc": "^15.1.0" + }, + "keywords": [ + "alpha", + "alphabetical", + "array", + "bash", + "brace", + "expand", + "expansion", + "fill", + "glob", + "match", + "matches", + "matching", + "number", + "numerical", + "range", + "ranges", + "regex", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/finalhandler/HISTORY.md b/node_modules/finalhandler/HISTORY.md new file mode 100644 index 0000000..7faa4f0 --- /dev/null +++ b/node_modules/finalhandler/HISTORY.md @@ -0,0 +1,210 @@ +v1.3.1 / 2024-09-11 +================== + + * deps: encodeurl@~2.0.0 + +v1.3.0 / 2024-09-03 +================== + + * ignore status message for HTTP/2 (#53) + +v1.2.1 / 2024-09-02 +================== + + * Gracefully handle when handling an error and socket is null + +1.2.0 / 2022-03-22 +================== + + * Remove set content headers that break response + * deps: on-finished@2.4.1 + * deps: statuses@2.0.1 + - Rename `425 Unordered Collection` to standard `425 Too Early` + +1.1.2 / 2019-05-09 +================== + + * Set stricter `Content-Security-Policy` header + * deps: parseurl@~1.3.3 + * deps: statuses@~1.5.0 + +1.1.1 / 2018-03-06 +================== + + * Fix 404 output for bad / missing pathnames + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +1.1.0 / 2017-09-24 +================== + + * Use `res.headersSent` when available + +1.0.6 / 2017-09-22 +================== + + * deps: debug@2.6.9 + +1.0.5 / 2017-09-15 +================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + +1.0.4 / 2017-08-03 +================== + + * deps: debug@2.6.8 + +1.0.3 / 2017-05-16 +================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + +1.0.2 / 2017-04-22 +================== + + * deps: debug@2.6.4 + - deps: ms@0.7.3 + +1.0.1 / 2017-03-21 +================== + + * Fix missing `` in HTML document + * deps: debug@2.6.3 + - Fix: `DEBUG_MAX_ARRAY_LENGTH` + +1.0.0 / 2017-02-15 +================== + + * Fix exception when `err` cannot be converted to a string + * Fully URL-encode the pathname in the 404 message + * Only include the pathname in the 404 message + * Send complete HTML document + * Set `Content-Security-Policy: default-src 'self'` header + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + +0.5.1 / 2016-11-12 +================== + + * Fix exception when `err.headers` is not an object + * deps: statuses@~1.3.1 + * perf: hoist regular expressions + * perf: remove duplicate validation path + +0.5.0 / 2016-06-15 +================== + + * Change invalid or non-numeric status code to 500 + * Overwrite status message to match set status code + * Prefer `err.statusCode` if `err.status` is invalid + * Set response headers from `err.headers` object + * Use `statuses` instead of `http` module for status messages + - Includes all defined status messages + +0.4.1 / 2015-12-02 +================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + +0.4.0 / 2015-06-14 +================== + + * Fix a false-positive when unpiping in Node.js 0.8 + * Support `statusCode` property on `Error` objects + * Use `unpipe` module for unpiping requests + * deps: escape-html@1.0.2 + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove argument reassignment + +0.3.6 / 2015-05-11 +================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + +0.3.5 / 2015-04-22 +================== + + * deps: on-finished@~2.2.1 + - Fix `isFinished(req)` when data buffered + +0.3.4 / 2015-03-15 +================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.3.3 / 2015-01-01 +================== + + * deps: debug@~2.1.1 + * deps: on-finished@~2.2.0 + +0.3.2 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.3.1 / 2014-10-16 +================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + +0.3.0 / 2014-09-17 +================== + + * Terminate in progress response only on error + * Use `on-finished` to determine request status + +0.2.0 / 2014-09-03 +================== + + * Set `X-Content-Type-Options: nosniff` header + * deps: debug@~2.0.0 + +0.1.0 / 2014-07-16 +================== + + * Respond after request fully read + - prevents hung responses and socket hang ups + * deps: debug@1.0.4 + +0.0.3 / 2014-07-11 +================== + + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.0.2 / 2014-06-19 +================== + + * Handle invalid status codes + +0.0.1 / 2014-06-05 +================== + + * deps: debug@1.0.2 + +0.0.0 / 2014-06-05 +================== + + * Extracted from connect/express diff --git a/node_modules/finalhandler/LICENSE b/node_modules/finalhandler/LICENSE new file mode 100644 index 0000000..6022106 --- /dev/null +++ b/node_modules/finalhandler/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/finalhandler/README.md b/node_modules/finalhandler/README.md new file mode 100644 index 0000000..6244a13 --- /dev/null +++ b/node_modules/finalhandler/README.md @@ -0,0 +1,147 @@ +# finalhandler + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js function to invoke as the final step to respond to HTTP request. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install finalhandler +``` + +## API + +```js +var finalhandler = require('finalhandler') +``` + +### finalhandler(req, res, [options]) + +Returns function to be invoked as the final step for the given `req` and `res`. +This function is to be invoked as `fn(err)`. If `err` is falsy, the handler will +write out a 404 response to the `res`. If it is truthy, an error response will +be written out to the `res` or `res` will be terminated if a response has already +started. + +When an error is written, the following information is added to the response: + + * The `res.statusCode` is set from `err.status` (or `err.statusCode`). If + this value is outside the 4xx or 5xx range, it will be set to 500. + * The `res.statusMessage` is set according to the status code. + * The body will be the HTML of the status code message if `env` is + `'production'`, otherwise will be `err.stack`. + * Any headers specified in an `err.headers` object. + +The final handler will also unpipe anything from `req` when it is invoked. + +#### options.env + +By default, the environment is determined by `NODE_ENV` variable, but it can be +overridden by this option. + +#### options.onerror + +Provide a function to be called with the `err` when it exists. Can be used for +writing errors to a central location without excessive function generation. Called +as `onerror(err, req, res)`. + +## Examples + +### always 404 + +```js +var finalhandler = require('finalhandler') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + done() +}) + +server.listen(3000) +``` + +### perform simple action + +```js +var finalhandler = require('finalhandler') +var fs = require('fs') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + + fs.readFile('index.html', function (err, buf) { + if (err) return done(err) + res.setHeader('Content-Type', 'text/html') + res.end(buf) + }) +}) + +server.listen(3000) +``` + +### use with middleware-style functions + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +var serve = serveStatic('public') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + serve(req, res, done) +}) + +server.listen(3000) +``` + +### keep log of all errors + +```js +var finalhandler = require('finalhandler') +var fs = require('fs') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res, { onerror: logerror }) + + fs.readFile('index.html', function (err, buf) { + if (err) return done(err) + res.setHeader('Content-Type', 'text/html') + res.end(buf) + }) +}) + +server.listen(3000) + +function logerror (err) { + console.error(err.stack || err.toString()) +} +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/finalhandler.svg +[npm-url]: https://npmjs.org/package/finalhandler +[node-image]: https://img.shields.io/node/v/finalhandler.svg +[node-url]: https://nodejs.org/en/download +[coveralls-image]: https://img.shields.io/coveralls/pillarjs/finalhandler.svg +[coveralls-url]: https://coveralls.io/r/pillarjs/finalhandler?branch=master +[downloads-image]: https://img.shields.io/npm/dm/finalhandler.svg +[downloads-url]: https://npmjs.org/package/finalhandler +[github-actions-ci-image]: https://github.com/pillarjs/finalhandler/actions/workflows/ci.yml/badge.svg +[github-actions-ci-url]: https://github.com/pillarjs/finalhandler/actions/workflows/ci.yml diff --git a/node_modules/finalhandler/SECURITY.md b/node_modules/finalhandler/SECURITY.md new file mode 100644 index 0000000..6e23249 --- /dev/null +++ b/node_modules/finalhandler/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `finalhandler` team and community take all security bugs seriously. Thank +you for improving the security of Express. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `finalhandler`. This +information can be found in the npm registry using the command +`npm owner ls finalhandler`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/pillarjs/finalhandler/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/finalhandler/index.js b/node_modules/finalhandler/index.js new file mode 100644 index 0000000..ec34be9 --- /dev/null +++ b/node_modules/finalhandler/index.js @@ -0,0 +1,341 @@ +/*! + * finalhandler + * Copyright(c) 2014-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('finalhandler') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var onFinished = require('on-finished') +var parseUrl = require('parseurl') +var statuses = require('statuses') +var unpipe = require('unpipe') + +/** + * Module variables. + * @private + */ + +var DOUBLE_SPACE_REGEXP = /\x20{2}/g +var NEWLINE_REGEXP = /\n/g + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) } +var isFinished = onFinished.isFinished + +/** + * Create a minimal HTML document. + * + * @param {string} message + * @private + */ + +function createHtmlDocument (message) { + var body = escapeHtml(message) + .replace(NEWLINE_REGEXP, '
') + .replace(DOUBLE_SPACE_REGEXP, '  ') + + return '\n' + + '\n' + + '\n' + + '\n' + + 'Error\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * Module exports. + * @public + */ + +module.exports = finalhandler + +/** + * Create a function to handle the final response. + * + * @param {Request} req + * @param {Response} res + * @param {Object} [options] + * @return {Function} + * @public + */ + +function finalhandler (req, res, options) { + var opts = options || {} + + // get environment + var env = opts.env || process.env.NODE_ENV || 'development' + + // get error callback + var onerror = opts.onerror + + return function (err) { + var headers + var msg + var status + + // ignore 404 on in-flight response + if (!err && headersSent(res)) { + debug('cannot 404 after headers sent') + return + } + + // unhandled error + if (err) { + // respect status code from error + status = getErrorStatusCode(err) + + if (status === undefined) { + // fallback to status code on response + status = getResponseStatusCode(res) + } else { + // respect headers from error + headers = getErrorHeaders(err) + } + + // get error message + msg = getErrorMessage(err, status, env) + } else { + // not found + status = 404 + msg = 'Cannot ' + req.method + ' ' + encodeUrl(getResourceName(req)) + } + + debug('default %s', status) + + // schedule onerror callback + if (err && onerror) { + defer(onerror, err, req, res) + } + + // cannot actually respond + if (headersSent(res)) { + debug('cannot %d after headers sent', status) + if (req.socket) { + req.socket.destroy() + } + return + } + + // send response + send(req, res, status, headers, msg) + } +} + +/** + * Get headers from Error object. + * + * @param {Error} err + * @return {object} + * @private + */ + +function getErrorHeaders (err) { + if (!err.headers || typeof err.headers !== 'object') { + return undefined + } + + var headers = Object.create(null) + var keys = Object.keys(err.headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + headers[key] = err.headers[key] + } + + return headers +} + +/** + * Get message from Error object, fallback to status message. + * + * @param {Error} err + * @param {number} status + * @param {string} env + * @return {string} + * @private + */ + +function getErrorMessage (err, status, env) { + var msg + + if (env !== 'production') { + // use err.stack, which typically includes err.message + msg = err.stack + + // fallback to err.toString() when possible + if (!msg && typeof err.toString === 'function') { + msg = err.toString() + } + } + + return msg || statuses.message[status] +} + +/** + * Get status code from Error object. + * + * @param {Error} err + * @return {number} + * @private + */ + +function getErrorStatusCode (err) { + // check err.status + if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) { + return err.status + } + + // check err.statusCode + if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) { + return err.statusCode + } + + return undefined +} + +/** + * Get resource name for the request. + * + * This is typically just the original pathname of the request + * but will fallback to "resource" is that cannot be determined. + * + * @param {IncomingMessage} req + * @return {string} + * @private + */ + +function getResourceName (req) { + try { + return parseUrl.original(req).pathname + } catch (e) { + return 'resource' + } +} + +/** + * Get status code from response. + * + * @param {OutgoingMessage} res + * @return {number} + * @private + */ + +function getResponseStatusCode (res) { + var status = res.statusCode + + // default status code to 500 if outside valid range + if (typeof status !== 'number' || status < 400 || status > 599) { + status = 500 + } + + return status +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Send response. + * + * @param {IncomingMessage} req + * @param {OutgoingMessage} res + * @param {number} status + * @param {object} headers + * @param {string} message + * @private + */ + +function send (req, res, status, headers, message) { + function write () { + // response body + var body = createHtmlDocument(message) + + // response status + res.statusCode = status + + if (req.httpVersionMajor < 2) { + res.statusMessage = statuses.message[status] + } + + // remove any content headers + res.removeHeader('Content-Encoding') + res.removeHeader('Content-Language') + res.removeHeader('Content-Range') + + // response headers + setHeaders(res, headers) + + // security headers + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + + // standard headers + res.setHeader('Content-Type', 'text/html; charset=utf-8') + res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8')) + + if (req.method === 'HEAD') { + res.end() + return + } + + res.end(body, 'utf8') + } + + if (isFinished(req)) { + write() + return + } + + // unpipe everything from the request + unpipe(req) + + // flush the request + onFinished(req, write) + req.resume() +} + +/** + * Set response headers from an object. + * + * @param {OutgoingMessage} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + if (!headers) { + return + } + + var keys = Object.keys(headers) + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git a/node_modules/finalhandler/package.json b/node_modules/finalhandler/package.json new file mode 100644 index 0000000..2363eb4 --- /dev/null +++ b/node_modules/finalhandler/package.json @@ -0,0 +1,47 @@ +{ + "name": "finalhandler", + "description": "Node.js final http responder", + "version": "1.3.1", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "repository": "pillarjs/finalhandler", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.26.0", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.0.0", + "nyc": "15.1.0", + "readable-stream": "2.3.6", + "safe-buffer": "5.2.1", + "supertest": "6.2.4" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "SECURITY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-inspect": "mocha --reporter spec --inspect --inspect-brk test/" + } +} diff --git a/node_modules/forwarded/HISTORY.md b/node_modules/forwarded/HISTORY.md new file mode 100644 index 0000000..381e6aa --- /dev/null +++ b/node_modules/forwarded/HISTORY.md @@ -0,0 +1,21 @@ +0.2.0 / 2021-05-31 +================== + + * Use `req.socket` over deprecated `req.connection` + +0.1.2 / 2017-09-14 +================== + + * perf: improve header parsing + * perf: reduce overhead when no `X-Forwarded-For` header + +0.1.1 / 2017-09-10 +================== + + * Fix trimming leading / trailing OWS + * perf: hoist regular expression + +0.1.0 / 2014-09-21 +================== + + * Initial release diff --git a/node_modules/forwarded/LICENSE b/node_modules/forwarded/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/node_modules/forwarded/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/forwarded/README.md b/node_modules/forwarded/README.md new file mode 100644 index 0000000..fdd220b --- /dev/null +++ b/node_modules/forwarded/README.md @@ -0,0 +1,57 @@ +# forwarded + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse HTTP X-Forwarded-For header + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install forwarded +``` + +## API + +```js +var forwarded = require('forwarded') +``` + +### forwarded(req) + +```js +var addresses = forwarded(req) +``` + +Parse the `X-Forwarded-For` header from the request. Returns an array +of the addresses, including the socket address for the `req`, in reverse +order (i.e. index `0` is the socket address and the last index is the +furthest address, typically the end-user). + +## Testing + +```sh +$ npm test +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/forwarded/master?label=ci +[ci-url]: https://github.com/jshttp/forwarded/actions?query=workflow%3Aci +[npm-image]: https://img.shields.io/npm/v/forwarded.svg +[npm-url]: https://npmjs.org/package/forwarded +[node-version-image]: https://img.shields.io/node/v/forwarded.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/jshttp/forwarded/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/forwarded?branch=master +[downloads-image]: https://img.shields.io/npm/dm/forwarded.svg +[downloads-url]: https://npmjs.org/package/forwarded diff --git a/node_modules/forwarded/index.js b/node_modules/forwarded/index.js new file mode 100644 index 0000000..b2b6bdd --- /dev/null +++ b/node_modules/forwarded/index.js @@ -0,0 +1,90 @@ +/*! + * forwarded + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = forwarded + +/** + * Get all addresses in the request, using the `X-Forwarded-For` header. + * + * @param {object} req + * @return {array} + * @public + */ + +function forwarded (req) { + if (!req) { + throw new TypeError('argument req is required') + } + + // simple header parsing + var proxyAddrs = parse(req.headers['x-forwarded-for'] || '') + var socketAddr = getSocketAddr(req) + var addrs = [socketAddr].concat(proxyAddrs) + + // return all addresses + return addrs +} + +/** + * Get the socket address for a request. + * + * @param {object} req + * @return {string} + * @private + */ + +function getSocketAddr (req) { + return req.socket + ? req.socket.remoteAddress + : req.connection.remoteAddress +} + +/** + * Parse the X-Forwarded-For header. + * + * @param {string} header + * @private + */ + +function parse (header) { + var end = header.length + var list = [] + var start = header.length + + // gather addresses, backwards + for (var i = header.length - 1; i >= 0; i--) { + switch (header.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + } + break + case 0x2c: /* , */ + if (start !== end) { + list.push(header.substring(start, end)) + } + start = end = i + break + default: + start = i + break + } + } + + // final address + if (start !== end) { + list.push(header.substring(start, end)) + } + + return list +} diff --git a/node_modules/forwarded/package.json b/node_modules/forwarded/package.json new file mode 100644 index 0000000..bf9c7d6 --- /dev/null +++ b/node_modules/forwarded/package.json @@ -0,0 +1,45 @@ +{ + "name": "forwarded", + "description": "Parse HTTP X-Forwarded-For header", + "version": "0.2.0", + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "keywords": [ + "x-forwarded-for", + "http", + "req" + ], + "repository": "jshttp/forwarded", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "deep-equal": "1.0.1", + "eslint": "7.27.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "8.4.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/fresh/HISTORY.md b/node_modules/fresh/HISTORY.md new file mode 100644 index 0000000..4586996 --- /dev/null +++ b/node_modules/fresh/HISTORY.md @@ -0,0 +1,70 @@ +0.5.2 / 2017-09-13 +================== + + * Fix regression matching multiple ETags in `If-None-Match` + * perf: improve `If-None-Match` token parsing + +0.5.1 / 2017-09-11 +================== + + * Fix handling of modified headers with invalid dates + * perf: improve ETag match loop + +0.5.0 / 2017-02-21 +================== + + * Fix incorrect result when `If-None-Match` has both `*` and ETags + * Fix weak `ETag` matching to match spec + * perf: delay reading header values until needed + * perf: skip checking modified time if ETag check failed + * perf: skip parsing `If-None-Match` when no `ETag` header + * perf: use `Date.parse` instead of `new Date` + +0.4.0 / 2017-02-05 +================== + + * Fix false detection of `no-cache` request directive + * perf: enable strict mode + * perf: hoist regular expressions + * perf: remove duplicate conditional + * perf: remove unnecessary boolean coercions + +0.3.0 / 2015-05-12 +================== + + * Add weak `ETag` matching support + +0.2.4 / 2014-09-07 +================== + + * Support Node.js 0.6 + +0.2.3 / 2014-09-07 +================== + + * Move repository to jshttp + +0.2.2 / 2014-02-19 +================== + + * Revert "Fix for blank page on Safari reload" + +0.2.1 / 2014-01-29 +================== + + * Fix for blank page on Safari reload + +0.2.0 / 2013-08-11 +================== + + * Return stale for `Cache-Control: no-cache` + +0.1.0 / 2012-06-15 +================== + + * Add `If-None-Match: *` support + +0.0.1 / 2012-06-10 +================== + + * Initial release diff --git a/node_modules/fresh/LICENSE b/node_modules/fresh/LICENSE new file mode 100644 index 0000000..1434ade --- /dev/null +++ b/node_modules/fresh/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2016-2017 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/fresh/README.md b/node_modules/fresh/README.md new file mode 100644 index 0000000..1c1c680 --- /dev/null +++ b/node_modules/fresh/README.md @@ -0,0 +1,119 @@ +# fresh + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP response freshness testing + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +``` +$ npm install fresh +``` + +## API + + + +```js +var fresh = require('fresh') +``` + +### fresh(reqHeaders, resHeaders) + +Check freshness of the response using request and response headers. + +When the response is still "fresh" in the client's cache `true` is +returned, otherwise `false` is returned to indicate that the client +cache is now stale and the full response should be sent. + +When a client sends the `Cache-Control: no-cache` request header to +indicate an end-to-end reload request, this module will return `false` +to make handling these requests transparent. + +## Known Issues + +This module is designed to only follow the HTTP specifications, not +to work-around all kinda of client bugs (especially since this module +typically does not recieve enough information to understand what the +client actually is). + +There is a known issue that in certain versions of Safari, Safari +will incorrectly make a request that allows this module to validate +freshness of the resource even when Safari does not have a +representation of the resource in the cache. The module +[jumanji](https://www.npmjs.com/package/jumanji) can be used in +an Express application to work-around this issue and also provides +links to further reading on this Safari bug. + +## Example + +### API usage + + + +```js +var reqHeaders = { 'if-none-match': '"foo"' } +var resHeaders = { 'etag': '"bar"' } +fresh(reqHeaders, resHeaders) +// => false + +var reqHeaders = { 'if-none-match': '"foo"' } +var resHeaders = { 'etag': '"foo"' } +fresh(reqHeaders, resHeaders) +// => true +``` + +### Using with Node.js http server + +```js +var fresh = require('fresh') +var http = require('http') + +var server = http.createServer(function (req, res) { + // perform server logic + // ... including adding ETag / Last-Modified response headers + + if (isFresh(req, res)) { + // client has a fresh copy of resource + res.statusCode = 304 + res.end() + return + } + + // send the resource + res.statusCode = 200 + res.end('hello, world!') +}) + +function isFresh (req, res) { + return fresh(req.headers, { + 'etag': res.getHeader('ETag'), + 'last-modified': res.getHeader('Last-Modified') + }) +} + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/fresh.svg +[npm-url]: https://npmjs.org/package/fresh +[node-version-image]: https://img.shields.io/node/v/fresh.svg +[node-version-url]: https://nodejs.org/en/ +[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg +[travis-url]: https://travis-ci.org/jshttp/fresh +[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master +[downloads-image]: https://img.shields.io/npm/dm/fresh.svg +[downloads-url]: https://npmjs.org/package/fresh diff --git a/node_modules/fresh/index.js b/node_modules/fresh/index.js new file mode 100644 index 0000000..d154f5a --- /dev/null +++ b/node_modules/fresh/index.js @@ -0,0 +1,137 @@ +/*! + * fresh + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2016-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to check for no-cache token in Cache-Control. + * @private + */ + +var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = fresh + +/** + * Check freshness of the response using request and response headers. + * + * @param {Object} reqHeaders + * @param {Object} resHeaders + * @return {Boolean} + * @public + */ + +function fresh (reqHeaders, resHeaders) { + // fields + var modifiedSince = reqHeaders['if-modified-since'] + var noneMatch = reqHeaders['if-none-match'] + + // unconditional request + if (!modifiedSince && !noneMatch) { + return false + } + + // Always return stale when Cache-Control: no-cache + // to support end-to-end reload requests + // https://tools.ietf.org/html/rfc2616#section-14.9.4 + var cacheControl = reqHeaders['cache-control'] + if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { + return false + } + + // if-none-match + if (noneMatch && noneMatch !== '*') { + var etag = resHeaders['etag'] + + if (!etag) { + return false + } + + var etagStale = true + var matches = parseTokenList(noneMatch) + for (var i = 0; i < matches.length; i++) { + var match = matches[i] + if (match === etag || match === 'W/' + etag || 'W/' + match === etag) { + etagStale = false + break + } + } + + if (etagStale) { + return false + } + } + + // if-modified-since + if (modifiedSince) { + var lastModified = resHeaders['last-modified'] + var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)) + + if (modifiedStale) { + return false + } + } + + return true +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + // istanbul ignore next: guard against date.js Date.parse patching + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(str.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(str.substring(start, end)) + + return list +} diff --git a/node_modules/fresh/package.json b/node_modules/fresh/package.json new file mode 100644 index 0000000..c2fa0f4 --- /dev/null +++ b/node_modules/fresh/package.json @@ -0,0 +1,46 @@ +{ + "name": "fresh", + "description": "HTTP response freshness testing", + "version": "0.5.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "keywords": [ + "fresh", + "http", + "conditional", + "cache" + ], + "repository": "jshttp/fresh", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/function-bind/.eslintrc b/node_modules/function-bind/.eslintrc new file mode 100644 index 0000000..71a054f --- /dev/null +++ b/node_modules/function-bind/.eslintrc @@ -0,0 +1,21 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "indent": [2, 4], + "no-new-func": [1], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "max-lines-per-function": 0, + "strict": [0] + }, + }, + ], +} diff --git a/node_modules/function-bind/.github/FUNDING.yml b/node_modules/function-bind/.github/FUNDING.yml new file mode 100644 index 0000000..7448219 --- /dev/null +++ b/node_modules/function-bind/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/function-bind +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/function-bind/.github/SECURITY.md b/node_modules/function-bind/.github/SECURITY.md new file mode 100644 index 0000000..82e4285 --- /dev/null +++ b/node_modules/function-bind/.github/SECURITY.md @@ -0,0 +1,3 @@ +# Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. diff --git a/node_modules/function-bind/.nycrc b/node_modules/function-bind/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/function-bind/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/function-bind/CHANGELOG.md b/node_modules/function-bind/CHANGELOG.md new file mode 100644 index 0000000..f9e6cc0 --- /dev/null +++ b/node_modules/function-bind/CHANGELOG.md @@ -0,0 +1,136 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.2](https://github.com/ljharb/function-bind/compare/v1.1.1...v1.1.2) - 2023-10-12 + +### Merged + +- Point to the correct file [`#16`](https://github.com/ljharb/function-bind/pull/16) + +### Commits + +- [Tests] migrate tests to Github Actions [`4f8b57c`](https://github.com/ljharb/function-bind/commit/4f8b57c02f2011fe9ae353d5e74e8745f0988af8) +- [Tests] remove `jscs` [`90eb2ed`](https://github.com/ljharb/function-bind/commit/90eb2edbeefd5b76cd6c3a482ea3454db169b31f) +- [meta] update `.gitignore` [`53fcdc3`](https://github.com/ljharb/function-bind/commit/53fcdc371cd66634d6e9b71c836a50f437e89fed) +- [Tests] up to `node` `v11.10`, `v10.15`, `v9.11`, `v8.15`, `v6.16`, `v4.9`; use `nvm install-latest-npm`; run audit script in tests [`1fe8f6e`](https://github.com/ljharb/function-bind/commit/1fe8f6e9aed0dfa8d8b3cdbd00c7f5ea0cd2b36e) +- [meta] add `auto-changelog` [`1921fcb`](https://github.com/ljharb/function-bind/commit/1921fcb5b416b63ffc4acad051b6aad5722f777d) +- [Robustness] remove runtime dependency on all builtins except `.apply` [`f743e61`](https://github.com/ljharb/function-bind/commit/f743e61aa6bb2360358c04d4884c9db853d118b7) +- Docs: enable badges; update wording [`503cb12`](https://github.com/ljharb/function-bind/commit/503cb12d998b5f91822776c73332c7adcd6355dd) +- [readme] update badges [`290c5db`](https://github.com/ljharb/function-bind/commit/290c5dbbbda7264efaeb886552a374b869a4bb48) +- [Tests] switch to nyc for coverage [`ea360ba`](https://github.com/ljharb/function-bind/commit/ea360ba907fc2601ed18d01a3827fa2d3533cdf8) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`cae5e9e`](https://github.com/ljharb/function-bind/commit/cae5e9e07a5578dc6df26c03ee22851ce05b943c) +- [meta] add `funding` field; create FUNDING.yml [`c9f4274`](https://github.com/ljharb/function-bind/commit/c9f4274aa80ea3aae9657a3938fdba41a3b04ca6) +- [Tests] fix eslint errors from #15 [`f69aaa2`](https://github.com/ljharb/function-bind/commit/f69aaa2beb2fdab4415bfb885760a699d0b9c964) +- [actions] fix permissions [`99a0cd9`](https://github.com/ljharb/function-bind/commit/99a0cd9f3b5bac223a0d572f081834cd73314be7) +- [meta] use `npmignore` to autogenerate an npmignore file [`f03b524`](https://github.com/ljharb/function-bind/commit/f03b524ca91f75a109a5d062f029122c86ecd1ae) +- [Dev Deps] update `@ljharb/eslint‑config`, `eslint`, `tape` [`7af9300`](https://github.com/ljharb/function-bind/commit/7af930023ae2ce7645489532821e4fbbcd7a2280) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`64a9127`](https://github.com/ljharb/function-bind/commit/64a9127ab0bd331b93d6572eaf6e9971967fc08c) +- [Tests] use `aud` instead of `npm audit` [`e75069c`](https://github.com/ljharb/function-bind/commit/e75069c50010a8fcce2a9ce2324934c35fdb4386) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`d03555c`](https://github.com/ljharb/function-bind/commit/d03555ca59dea3b71ce710045e4303b9e2619e28) +- [meta] add `safe-publish-latest` [`9c8f809`](https://github.com/ljharb/function-bind/commit/9c8f8092aed027d7e80c94f517aa892385b64f09) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`baf6893`](https://github.com/ljharb/function-bind/commit/baf6893e27f5b59abe88bc1995e6f6ed1e527397) +- [meta] create SECURITY.md [`4db1779`](https://github.com/ljharb/function-bind/commit/4db17799f1f28ae294cb95e0081ca2b591c3911b) +- [Tests] add `npm run audit` [`c8b38ec`](https://github.com/ljharb/function-bind/commit/c8b38ec40ed3f85dabdee40ed4148f1748375bc2) +- Revert "Point to the correct file" [`05cdf0f`](https://github.com/ljharb/function-bind/commit/05cdf0fa205c6a3c5ba40bbedd1dfa9874f915c9) + +## [v1.1.1](https://github.com/ljharb/function-bind/compare/v1.1.0...v1.1.1) - 2017-08-28 + +### Commits + +- [Tests] up to `node` `v8`; newer npm breaks on older node; fix scripts [`817f7d2`](https://github.com/ljharb/function-bind/commit/817f7d28470fdbff8ef608d4d565dd4d1430bc5e) +- [Dev Deps] update `eslint`, `jscs`, `tape`, `@ljharb/eslint-config` [`854288b`](https://github.com/ljharb/function-bind/commit/854288b1b6f5c555f89aceb9eff1152510262084) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`83e639f`](https://github.com/ljharb/function-bind/commit/83e639ff74e6cd6921285bccec22c1bcf72311bd) +- Only apps should have lockfiles [`5ed97f5`](https://github.com/ljharb/function-bind/commit/5ed97f51235c17774e0832e122abda0f3229c908) +- Use a SPDX-compliant “license” field. [`5feefea`](https://github.com/ljharb/function-bind/commit/5feefea0dc0193993e83e5df01ded424403a5381) + +## [v1.1.0](https://github.com/ljharb/function-bind/compare/v1.0.2...v1.1.0) - 2016-02-14 + +### Commits + +- Update `eslint`, `tape`; use my personal shared `eslint` config [`9c9062a`](https://github.com/ljharb/function-bind/commit/9c9062abbe9dd70b59ea2c3a3c3a81f29b457097) +- Add `npm run eslint` [`dd96c56`](https://github.com/ljharb/function-bind/commit/dd96c56720034a3c1ffee10b8a59a6f7c53e24ad) +- [New] return the native `bind` when available. [`82186e0`](https://github.com/ljharb/function-bind/commit/82186e03d73e580f95ff167e03f3582bed90ed72) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a3dd767`](https://github.com/ljharb/function-bind/commit/a3dd76720c795cb7f4586b0544efabf8aa107b8b) +- Update `eslint` [`3dae2f7`](https://github.com/ljharb/function-bind/commit/3dae2f7423de30a2d20313ddb1edc19660142fe9) +- Update `tape`, `covert`, `jscs` [`a181eee`](https://github.com/ljharb/function-bind/commit/a181eee0cfa24eb229c6e843a971f36e060a2f6a) +- [Tests] up to `node` `v5.6`, `v4.3` [`964929a`](https://github.com/ljharb/function-bind/commit/964929a6a4ddb36fb128de2bcc20af5e4f22e1ed) +- Test up to `io.js` `v2.1` [`2be7310`](https://github.com/ljharb/function-bind/commit/2be7310f2f74886a7124ca925be411117d41d5ea) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`45f3d68`](https://github.com/ljharb/function-bind/commit/45f3d6865c6ca93726abcef54febe009087af101) +- [Dev Deps] update `tape`, `jscs` [`6e1340d`](https://github.com/ljharb/function-bind/commit/6e1340d94642deaecad3e717825db641af4f8b1f) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`d9bad2b`](https://github.com/ljharb/function-bind/commit/d9bad2b778b1b3a6dd2876087b88b3acf319f8cc) +- Update `eslint` [`935590c`](https://github.com/ljharb/function-bind/commit/935590caa024ab356102e4858e8fc315b2ccc446) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`8c9a1ef`](https://github.com/ljharb/function-bind/commit/8c9a1efd848e5167887aa8501857a0940a480c57) +- Test on `io.js` `v2.2` [`9a3a38c`](https://github.com/ljharb/function-bind/commit/9a3a38c92013aed6e108666e7bd40969b84ac86e) +- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`69afc26`](https://github.com/ljharb/function-bind/commit/69afc2617405b147dd2a8d8ae73ca9e9283f18b4) +- [Dev Deps] Update `tape`, `eslint` [`36c1be0`](https://github.com/ljharb/function-bind/commit/36c1be0ab12b45fe5df6b0fdb01a5d5137fd0115) +- Update `tape`, `jscs` [`98d8303`](https://github.com/ljharb/function-bind/commit/98d8303cd5ca1c6b8f985469f86b0d44d7d45f6e) +- Update `jscs` [`9633a4e`](https://github.com/ljharb/function-bind/commit/9633a4e9fbf82051c240855166e468ba8ba0846f) +- Update `tape`, `jscs` [`c80ef0f`](https://github.com/ljharb/function-bind/commit/c80ef0f46efc9791e76fa50de4414092ac147831) +- Test up to `io.js` `v3.0` [`7e2c853`](https://github.com/ljharb/function-bind/commit/7e2c8537d52ab9cf5a655755561d8917684c0df4) +- Test on `io.js` `v2.4` [`5a199a2`](https://github.com/ljharb/function-bind/commit/5a199a27ba46795ba5eaf0845d07d4b8232895c9) +- Test on `io.js` `v2.3` [`a511b88`](https://github.com/ljharb/function-bind/commit/a511b8896de0bddf3b56862daa416c701f4d0453) +- Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43 [`732d6b6`](https://github.com/ljharb/function-bind/commit/732d6b63a9b33b45230e630dbcac7a10855d3266) +- Update `jscs` [`da52a48`](https://github.com/ljharb/function-bind/commit/da52a4886c06d6490f46ae30b15e4163ba08905d) +- Lock covert to v1.0.0. [`d6150fd`](https://github.com/ljharb/function-bind/commit/d6150fda1e6f486718ebdeff823333d9e48e7430) + +## [v1.0.2](https://github.com/ljharb/function-bind/compare/v1.0.1...v1.0.2) - 2014-10-04 + +## [v1.0.1](https://github.com/ljharb/function-bind/compare/v1.0.0...v1.0.1) - 2014-10-03 + +### Merged + +- make CI build faster [`#3`](https://github.com/ljharb/function-bind/pull/3) + +### Commits + +- Using my standard jscs.json [`d8ee94c`](https://github.com/ljharb/function-bind/commit/d8ee94c993eff0a84cf5744fe6a29627f5cffa1a) +- Adding `npm run lint` [`7571ab7`](https://github.com/ljharb/function-bind/commit/7571ab7dfdbd99b25a1dbb2d232622bd6f4f9c10) +- Using consistent indentation [`e91a1b1`](https://github.com/ljharb/function-bind/commit/e91a1b13a61e99ec1e530e299b55508f74218a95) +- Updating jscs [`7e17892`](https://github.com/ljharb/function-bind/commit/7e1789284bc629bc9c1547a61c9b227bbd8c7a65) +- Using consistent quotes [`c50b57f`](https://github.com/ljharb/function-bind/commit/c50b57fcd1c5ec38320979c837006069ebe02b77) +- Adding keywords [`cb94631`](https://github.com/ljharb/function-bind/commit/cb946314eed35f21186a25fb42fc118772f9ee00) +- Directly export a function expression instead of using a declaration, and relying on hoisting. [`5a33c5f`](https://github.com/ljharb/function-bind/commit/5a33c5f45642de180e0d207110bf7d1843ceb87c) +- Naming npm URL and badge in README; use SVG [`2aef8fc`](https://github.com/ljharb/function-bind/commit/2aef8fcb79d54e63a58ae557c4e60949e05d5e16) +- Naming deps URLs in README [`04228d7`](https://github.com/ljharb/function-bind/commit/04228d766670ee45ca24e98345c1f6a7621065b5) +- Naming travis-ci URLs in README; using SVG [`62c810c`](https://github.com/ljharb/function-bind/commit/62c810c2f54ced956cd4d4ab7b793055addfe36e) +- Make sure functions are invoked correctly (also passing coverage tests) [`2b289b4`](https://github.com/ljharb/function-bind/commit/2b289b4dfbf037ffcfa4dc95eb540f6165e9e43a) +- Removing the strict mode pragmas; they make tests fail. [`1aa701d`](https://github.com/ljharb/function-bind/commit/1aa701d199ddc3782476e8f7eef82679be97b845) +- Adding myself as a contributor [`85fd57b`](https://github.com/ljharb/function-bind/commit/85fd57b0860e5a7af42de9a287f3f265fc6d72fc) +- Adding strict mode pragmas [`915b08e`](https://github.com/ljharb/function-bind/commit/915b08e084c86a722eafe7245e21db74aa21ca4c) +- Adding devDeps URLs to README [`4ccc731`](https://github.com/ljharb/function-bind/commit/4ccc73112c1769859e4ca3076caf4086b3cba2cd) +- Fixing the description. [`a7a472c`](https://github.com/ljharb/function-bind/commit/a7a472cf649af515c635cf560fc478fbe48999c8) +- Using a function expression instead of a function declaration. [`b5d3e4e`](https://github.com/ljharb/function-bind/commit/b5d3e4ea6aaffc63888953eeb1fbc7ff45f1fa14) +- Updating tape [`f086be6`](https://github.com/ljharb/function-bind/commit/f086be6029fb56dde61a258c1340600fa174d1e0) +- Updating jscs [`5f9bdb3`](https://github.com/ljharb/function-bind/commit/5f9bdb375ab13ba48f30852aab94029520c54d71) +- Updating jscs [`9b409ba`](https://github.com/ljharb/function-bind/commit/9b409ba6118e23395a4e5d83ef39152aab9d3bfc) +- Run coverage as part of tests. [`8e1b6d4`](https://github.com/ljharb/function-bind/commit/8e1b6d459f047d1bd4fee814e01247c984c80bd0) +- Run linter as part of tests [`c1ca83f`](https://github.com/ljharb/function-bind/commit/c1ca83f832df94587d09e621beba682fabfaa987) +- Updating covert [`701e837`](https://github.com/ljharb/function-bind/commit/701e83774b57b4d3ef631e1948143f43a72f4bb9) + +## [v1.0.0](https://github.com/ljharb/function-bind/compare/v0.2.0...v1.0.0) - 2014-08-09 + +### Commits + +- Make sure old and unstable nodes don't fail Travis [`27adca3`](https://github.com/ljharb/function-bind/commit/27adca34a4ab6ad67b6dfde43942a1b103ce4d75) +- Fixing an issue when the bound function is called as a constructor in ES3. [`e20122d`](https://github.com/ljharb/function-bind/commit/e20122d267d92ce553859b280cbbea5d27c07731) +- Adding `npm run coverage` [`a2e29c4`](https://github.com/ljharb/function-bind/commit/a2e29c4ecaef9e2f6cd1603e868c139073375502) +- Updating tape [`b741168`](https://github.com/ljharb/function-bind/commit/b741168b12b235b1717ff696087645526b69213c) +- Upgrading tape [`63631a0`](https://github.com/ljharb/function-bind/commit/63631a04c7fbe97cc2fa61829cc27246d6986f74) +- Updating tape [`363cb46`](https://github.com/ljharb/function-bind/commit/363cb46dafb23cb3e347729a22f9448051d78464) + +## v0.2.0 - 2014-03-23 + +### Commits + +- Updating test coverage to match es5-shim. [`aa94d44`](https://github.com/ljharb/function-bind/commit/aa94d44b8f9d7f69f10e060db7709aa7a694e5d4) +- initial [`942ee07`](https://github.com/ljharb/function-bind/commit/942ee07e94e542d91798137bc4b80b926137e066) +- Setting the bound function's length properly. [`079f46a`](https://github.com/ljharb/function-bind/commit/079f46a2d3515b7c0b308c2c13fceb641f97ca25) +- Ensuring that some older browsers will throw when given a regex. [`36ac55b`](https://github.com/ljharb/function-bind/commit/36ac55b87f460d4330253c92870aa26fbfe8227f) +- Removing npm scripts that don't have dependencies [`9d2be60`](https://github.com/ljharb/function-bind/commit/9d2be600002cb8bc8606f8f3585ad3e05868c750) +- Updating tape [`297a4ac`](https://github.com/ljharb/function-bind/commit/297a4acc5464db381940aafb194d1c88f4e678f3) +- Skipping length tests for now. [`d9891ea`](https://github.com/ljharb/function-bind/commit/d9891ea4d2aaffa69f408339cdd61ff740f70565) +- don't take my tea [`dccd930`](https://github.com/ljharb/function-bind/commit/dccd930bfd60ea10cb178d28c97550c3bc8c1e07) diff --git a/node_modules/function-bind/LICENSE b/node_modules/function-bind/LICENSE new file mode 100644 index 0000000..62d6d23 --- /dev/null +++ b/node_modules/function-bind/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 Raynos. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. + diff --git a/node_modules/function-bind/README.md b/node_modules/function-bind/README.md new file mode 100644 index 0000000..814c20b --- /dev/null +++ b/node_modules/function-bind/README.md @@ -0,0 +1,46 @@ +# function-bind [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] + +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Implementation of function.prototype.bind + +Old versions of phantomjs, Internet Explorer < 9, and node < 0.6 don't support `Function.prototype.bind`. + +## Example + +```js +Function.prototype.bind = require("function-bind") +``` + +## Installation + +`npm install function-bind` + +## Contributors + + - Raynos + +## MIT Licenced + +[package-url]: https://npmjs.org/package/function-bind +[npm-version-svg]: https://versionbadg.es/Raynos/function-bind.svg +[deps-svg]: https://david-dm.org/Raynos/function-bind.svg +[deps-url]: https://david-dm.org/Raynos/function-bind +[dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg +[dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/function-bind.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/function-bind.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/function-bind.svg +[downloads-url]: https://npm-stat.com/charts.html?package=function-bind +[codecov-image]: https://codecov.io/gh/Raynos/function-bind/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/Raynos/function-bind/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/Raynos/function-bind +[actions-url]: https://github.com/Raynos/function-bind/actions diff --git a/node_modules/function-bind/implementation.js b/node_modules/function-bind/implementation.js new file mode 100644 index 0000000..fd4384c --- /dev/null +++ b/node_modules/function-bind/implementation.js @@ -0,0 +1,84 @@ +'use strict'; + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var toStr = Object.prototype.toString; +var max = Math.max; +var funcType = '[object Function]'; + +var concatty = function concatty(a, b) { + var arr = []; + + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + + return arr; +}; + +var slicy = function slicy(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; +}; + +var joiny = function (arr, joiner) { + var str = ''; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; +}; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + + }; + + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = '$' + i; + } + + bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; diff --git a/node_modules/function-bind/index.js b/node_modules/function-bind/index.js new file mode 100644 index 0000000..3bb6b96 --- /dev/null +++ b/node_modules/function-bind/index.js @@ -0,0 +1,5 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = Function.prototype.bind || implementation; diff --git a/node_modules/function-bind/package.json b/node_modules/function-bind/package.json new file mode 100644 index 0000000..6185963 --- /dev/null +++ b/node_modules/function-bind/package.json @@ -0,0 +1,87 @@ +{ + "name": "function-bind", + "version": "1.1.2", + "description": "Implementation of Function.prototype.bind", + "keywords": [ + "function", + "bind", + "shim", + "es5" + ], + "author": "Raynos ", + "repository": { + "type": "git", + "url": "https://github.com/Raynos/function-bind.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "main": "index", + "homepage": "https://github.com/Raynos/function-bind", + "contributors": [ + { + "name": "Raynos" + }, + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "bugs": { + "url": "https://github.com/Raynos/function-bind/issues", + "email": "raynos2@gmail.com" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.1" + }, + "license": "MIT", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepack": "npmignore --auto --commentLines=autogenerated", + "pretest": "npm run lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "nyc tape 'test/**/*.js'", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "ie/8..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/function-bind/test/.eslintrc b/node_modules/function-bind/test/.eslintrc new file mode 100644 index 0000000..8a56d5b --- /dev/null +++ b/node_modules/function-bind/test/.eslintrc @@ -0,0 +1,9 @@ +{ + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "max-statements-per-line": [2, { "max": 2 }], + "no-invalid-this": 0, + "no-magic-numbers": 0, + } +} diff --git a/node_modules/function-bind/test/index.js b/node_modules/function-bind/test/index.js new file mode 100644 index 0000000..2edecce --- /dev/null +++ b/node_modules/function-bind/test/index.js @@ -0,0 +1,252 @@ +// jscs:disable requireUseStrict + +var test = require('tape'); + +var functionBind = require('../implementation'); +var getCurrentContext = function () { return this; }; + +test('functionBind is a function', function (t) { + t.equal(typeof functionBind, 'function'); + t.end(); +}); + +test('non-functions', function (t) { + var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g]; + t.plan(nonFunctions.length); + for (var i = 0; i < nonFunctions.length; ++i) { + try { functionBind.call(nonFunctions[i]); } catch (ex) { + t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i])); + } + } + t.end(); +}); + +test('without a context', function (t) { + t.test('binds properly', function (st) { + var args, context; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }) + }; + namespace.func(1, 2, 3); + st.deepEqual(args, [1, 2, 3]); + st.equal(context, getCurrentContext.call()); + st.end(); + }); + + t.test('binds properly, and still supplies bound arguments', function (st) { + var args, context; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, undefined, 1, 2, 3) + }; + namespace.func(4, 5, 6); + st.deepEqual(args, [1, 2, 3, 4, 5, 6]); + st.equal(context, getCurrentContext.call()); + st.end(); + }); + + t.test('returns properly', function (st) { + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, null) + }; + var context = namespace.func(1, 2, 3); + st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); + st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); + st.end(); + }); + + t.test('returns properly with bound arguments', function (st) { + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, null, 1, 2, 3) + }; + var context = namespace.func(4, 5, 6); + st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); + st.end(); + }); + + t.test('called as a constructor', function (st) { + var thunkify = function (value) { + return function () { return value; }; + }; + st.test('returns object value', function (sst) { + var expectedReturnValue = [1, 2, 3]; + var Constructor = functionBind.call(thunkify(expectedReturnValue), null); + var result = new Constructor(); + sst.equal(result, expectedReturnValue); + sst.end(); + }); + + st.test('does not return primitive value', function (sst) { + var Constructor = functionBind.call(thunkify(42), null); + var result = new Constructor(); + sst.notEqual(result, 42); + sst.end(); + }); + + st.test('object from bound constructor is instance of original and bound constructor', function (sst) { + var A = function (x) { + this.name = x || 'A'; + }; + var B = functionBind.call(A, null, 'B'); + + var result = new B(); + sst.ok(result instanceof B, 'result is instance of bound constructor'); + sst.ok(result instanceof A, 'result is instance of original constructor'); + sst.end(); + }); + + st.end(); + }); + + t.end(); +}); + +test('with a context', function (t) { + t.test('with no bound arguments', function (st) { + var args, context; + var boundContext = {}; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, boundContext) + }; + namespace.func(1, 2, 3); + st.equal(context, boundContext, 'binds a context properly'); + st.deepEqual(args, [1, 2, 3], 'supplies passed arguments'); + st.end(); + }); + + t.test('with bound arguments', function (st) { + var args, context; + var boundContext = {}; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, boundContext, 1, 2, 3) + }; + namespace.func(4, 5, 6); + st.equal(context, boundContext, 'binds a context properly'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments'); + st.end(); + }); + + t.test('returns properly', function (st) { + var boundContext = {}; + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, boundContext) + }; + var context = namespace.func(1, 2, 3); + st.equal(context, boundContext, 'returned context is bound context'); + st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); + st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); + st.end(); + }); + + t.test('returns properly with bound arguments', function (st) { + var boundContext = {}; + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, boundContext, 1, 2, 3) + }; + var context = namespace.func(4, 5, 6); + st.equal(context, boundContext, 'returned context is bound context'); + st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); + st.end(); + }); + + t.test('passes the correct arguments when called as a constructor', function (st) { + var expected = { name: 'Correct' }; + var namespace = { + Func: functionBind.call(function (arg) { + return arg; + }, { name: 'Incorrect' }) + }; + var returned = new namespace.Func(expected); + st.equal(returned, expected, 'returns the right arg when called as a constructor'); + st.end(); + }); + + t.test('has the new instance\'s context when called as a constructor', function (st) { + var actualContext; + var expectedContext = { foo: 'bar' }; + var namespace = { + Func: functionBind.call(function () { + actualContext = this; + }, expectedContext) + }; + var result = new namespace.Func(); + st.equal(result instanceof namespace.Func, true); + st.notEqual(actualContext, expectedContext); + st.end(); + }); + + t.end(); +}); + +test('bound function length', function (t) { + t.test('sets a correct length without thisArg', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }); + st.equal(subject.length, 3); + st.equal(subject(1, 2, 3), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}); + st.equal(subject.length, 3); + st.equal(subject(1, 2, 3), 6); + st.end(); + }); + + t.test('sets a correct length without thisArg and first argument', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1); + st.equal(subject.length, 2); + st.equal(subject(2, 3), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg and first argument', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1); + st.equal(subject.length, 2); + st.equal(subject(2, 3), 6); + st.end(); + }); + + t.test('sets a correct length without thisArg and too many arguments', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4); + st.equal(subject.length, 0); + st.equal(subject(), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg and too many arguments', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4); + st.equal(subject.length, 0); + st.equal(subject(), 6); + st.end(); + }); +}); diff --git a/node_modules/get-intrinsic/.eslintrc b/node_modules/get-intrinsic/.eslintrc new file mode 100644 index 0000000..8376636 --- /dev/null +++ b/node_modules/get-intrinsic/.eslintrc @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "env": { + "es6": true, + "es2017": true, + "es2020": true, + "es2021": true, + "es2022": true, + }, + + "rules": { + "array-bracket-newline": 0, + "complexity": 0, + "eqeqeq": [2, "allow-null"], + "func-name-matching": 0, + "id-length": 0, + "max-lines": 0, + "max-lines-per-function": [2, 90], + "max-params": [2, 4], + "max-statements": 0, + "max-statements-per-line": [2, { "max": 2 }], + "multiline-comment-style": 0, + "no-magic-numbers": 0, + "sort-keys": 0, + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "new-cap": 0, + }, + }, + ], +} diff --git a/node_modules/get-intrinsic/.github/FUNDING.yml b/node_modules/get-intrinsic/.github/FUNDING.yml new file mode 100644 index 0000000..8e8da0d --- /dev/null +++ b/node_modules/get-intrinsic/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/get-intrinsic +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/get-intrinsic/.nycrc b/node_modules/get-intrinsic/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/get-intrinsic/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/get-intrinsic/CHANGELOG.md new file mode 100644 index 0000000..5b4d214 --- /dev/null +++ b/node_modules/get-intrinsic/CHANGELOG.md @@ -0,0 +1,178 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.7](https://github.com/ljharb/get-intrinsic/compare/v1.2.6...v1.2.7) - 2025-01-02 + +### Commits + +- [Refactor] use `get-proto` directly [`00ab955`](https://github.com/ljharb/get-intrinsic/commit/00ab95546a0980c8ad42a84253daaa8d2adcedf9) +- [Deps] update `math-intrinsics` [`c716cdd`](https://github.com/ljharb/get-intrinsic/commit/c716cdd6bbe36b438057025561b8bb5a879ac8a0) +- [Dev Deps] update `call-bound`, `es-abstract` [`dc648a6`](https://github.com/ljharb/get-intrinsic/commit/dc648a67eb359037dff8d8619bfa71d86debccb1) + +## [v1.2.6](https://github.com/ljharb/get-intrinsic/compare/v1.2.5...v1.2.6) - 2024-12-11 + +### Commits + +- [Refactor] use `math-intrinsics` [`841be86`](https://github.com/ljharb/get-intrinsic/commit/841be8641a9254c4c75483b30c8871b5d5065926) +- [Refactor] use `es-object-atoms` [`42057df`](https://github.com/ljharb/get-intrinsic/commit/42057dfa16f66f64787e66482af381cc6f31d2c1) +- [Deps] update `call-bind-apply-helpers` [`45afa24`](https://github.com/ljharb/get-intrinsic/commit/45afa24a9ee4d6d3c172db1f555b16cb27843ef4) +- [Dev Deps] update `call-bound` [`9cba9c6`](https://github.com/ljharb/get-intrinsic/commit/9cba9c6e70212bc163b7a5529cb25df46071646f) + +## [v1.2.5](https://github.com/ljharb/get-intrinsic/compare/v1.2.4...v1.2.5) - 2024-12-06 + +### Commits + +- [actions] split out node 10-20, and 20+ [`6e2b9dd`](https://github.com/ljharb/get-intrinsic/commit/6e2b9dd23902665681ebe453256ccfe21d7966f0) +- [Refactor] use `dunder-proto` and `call-bind-apply-helpers` instead of `has-proto` [`c095d17`](https://github.com/ljharb/get-intrinsic/commit/c095d179ad0f4fbfff20c8a3e0cb4fe668018998) +- [Refactor] use `gopd` [`9841d5b`](https://github.com/ljharb/get-intrinsic/commit/9841d5b35f7ab4fd2d193f0c741a50a077920e90) +- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `es-abstract`, `es-value-fixtures`, `gopd`, `mock-property`, `object-inspect`, `tape` [`2d07e01`](https://github.com/ljharb/get-intrinsic/commit/2d07e01310cee2cbaedfead6903df128b1f5d425) +- [Deps] update `gopd`, `has-proto`, `has-symbols`, `hasown` [`974d8bf`](https://github.com/ljharb/get-intrinsic/commit/974d8bf5baad7939eef35c25cc1dd88c10a30fa6) +- [Dev Deps] update `call-bind`, `es-abstract`, `tape` [`df9dde1`](https://github.com/ljharb/get-intrinsic/commit/df9dde178186631ab8a3165ede056549918ce4bc) +- [Refactor] cache `es-define-property` as well [`43ef543`](https://github.com/ljharb/get-intrinsic/commit/43ef543cb02194401420e3a914a4ca9168691926) +- [Deps] update `has-proto`, `has-symbols`, `hasown` [`ad4949d`](https://github.com/ljharb/get-intrinsic/commit/ad4949d5467316505aad89bf75f9417ed782f7af) +- [Tests] use `call-bound` directly [`ad5c406`](https://github.com/ljharb/get-intrinsic/commit/ad5c4069774bfe90e520a35eead5fe5ca9d69e80) +- [Deps] update `has-proto`, `hasown` [`45414ca`](https://github.com/ljharb/get-intrinsic/commit/45414caa312333a2798953682c68f85c550627dd) +- [Tests] replace `aud` with `npm audit` [`18d3509`](https://github.com/ljharb/get-intrinsic/commit/18d3509f79460e7924da70409ee81e5053087523) +- [Deps] update `es-define-property` [`aadaa3b`](https://github.com/ljharb/get-intrinsic/commit/aadaa3b2188d77ad9bff394ce5d4249c49eb21f5) +- [Dev Deps] add missing peer dep [`c296a16`](https://github.com/ljharb/get-intrinsic/commit/c296a16246d0c9a5981944f4cc5cf61fbda0cf6a) + +## [v1.2.4](https://github.com/ljharb/get-intrinsic/compare/v1.2.3...v1.2.4) - 2024-02-05 + +### Commits + +- [Refactor] use all 7 <+ ES6 Errors from `es-errors` [`bcac811`](https://github.com/ljharb/get-intrinsic/commit/bcac811abdc1c982e12abf848a410d6aae148d14) + +## [v1.2.3](https://github.com/ljharb/get-intrinsic/compare/v1.2.2...v1.2.3) - 2024-02-03 + +### Commits + +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`f11db9c`](https://github.com/ljharb/get-intrinsic/commit/f11db9c4fb97d87bbd53d3c73ac6b3db3613ad3b) +- [Dev Deps] update `aud`, `es-abstract`, `mock-property`, `npmignore` [`b7ac7d1`](https://github.com/ljharb/get-intrinsic/commit/b7ac7d1616fefb03877b1aed0c8f8d61aad32b6c) +- [meta] simplify `exports` [`faa0cc6`](https://github.com/ljharb/get-intrinsic/commit/faa0cc618e2830ffb51a8202490b0c215d965cbc) +- [meta] add missing `engines.node` [`774dd0b`](https://github.com/ljharb/get-intrinsic/commit/774dd0b3e8f741c3f05a6322d124d6087f146af1) +- [Dev Deps] update `tape` [`5828e8e`](https://github.com/ljharb/get-intrinsic/commit/5828e8e4a04e69312e87a36c0ea39428a7a4c3d8) +- [Robustness] use null objects for lookups [`eb9a11f`](https://github.com/ljharb/get-intrinsic/commit/eb9a11fa9eb3e13b193fcc05a7fb814341b1a7b7) +- [meta] add `sideEffects` flag [`89bcc7a`](https://github.com/ljharb/get-intrinsic/commit/89bcc7a42e19bf07b7c21e3094d5ab177109e6d2) + +## [v1.2.2](https://github.com/ljharb/get-intrinsic/compare/v1.2.1...v1.2.2) - 2023-10-20 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `call-bind`, `es-abstract`, `mock-property`, `object-inspect`, `tape` [`f51bcf2`](https://github.com/ljharb/get-intrinsic/commit/f51bcf26412d58d17ce17c91c9afd0ad271f0762) +- [Refactor] use `hasown` instead of `has` [`18d14b7`](https://github.com/ljharb/get-intrinsic/commit/18d14b799bea6b5765e1cec91890830cbcdb0587) +- [Deps] update `function-bind` [`6e109c8`](https://github.com/ljharb/get-intrinsic/commit/6e109c81e03804cc5e7824fb64353cdc3d8ee2c7) + +## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13 + +### Commits + +- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64) +- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5) + +## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19 + +### Commits + +- [actions] update checkout action [`ca6b12f`](https://github.com/ljharb/get-intrinsic/commit/ca6b12f31eaacea4ea3b055e744cd61623385ffb) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `tape` [`41a3727`](https://github.com/ljharb/get-intrinsic/commit/41a3727d0026fa04273ae216a5f8e12eefd72da8) +- [Fix] ensure `Error.prototype` is undeniable [`c511e97`](https://github.com/ljharb/get-intrinsic/commit/c511e97ae99c764c4524b540dee7a70757af8da3) +- [Dev Deps] update `aud`, `es-abstract`, `tape` [`1bef8a8`](https://github.com/ljharb/get-intrinsic/commit/1bef8a8fd439ebb80863199b6189199e0851ac67) +- [Dev Deps] update `aud`, `es-abstract` [`0d41f16`](https://github.com/ljharb/get-intrinsic/commit/0d41f16bcd500bc28b7bfc98043ebf61ea081c26) +- [New] add `BigInt64Array` and `BigUint64Array` [`a6cca25`](https://github.com/ljharb/get-intrinsic/commit/a6cca25f29635889b7e9bd669baf9e04be90e48c) +- [Tests] use `gopd` [`ecf7722`](https://github.com/ljharb/get-intrinsic/commit/ecf7722240d15cfd16edda06acf63359c10fb9bd) + +## [v1.1.3](https://github.com/ljharb/get-intrinsic/compare/v1.1.2...v1.1.3) - 2022-09-12 + +### Commits + +- [Dev Deps] update `es-abstract`, `es-value-fixtures`, `tape` [`07ff291`](https://github.com/ljharb/get-intrinsic/commit/07ff291816406ebe5a12d7f16965bde0942dd688) +- [Fix] properly check for % signs [`50ac176`](https://github.com/ljharb/get-intrinsic/commit/50ac1760fe99c227e64eabde76e9c0e44cd881b5) + +## [v1.1.2](https://github.com/ljharb/get-intrinsic/compare/v1.1.1...v1.1.2) - 2022-06-08 + +### Fixed + +- [Fix] properly validate against extra % signs [`#16`](https://github.com/ljharb/get-intrinsic/issues/16) + +### Commits + +- [actions] reuse common workflows [`0972547`](https://github.com/ljharb/get-intrinsic/commit/0972547efd0abc863fe4c445a6ca7eb4f8c6901d) +- [meta] use `npmignore` to autogenerate an npmignore file [`5ba0b51`](https://github.com/ljharb/get-intrinsic/commit/5ba0b51d8d8d4f1c31d426d74abc0770fd106bad) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c364492`](https://github.com/ljharb/get-intrinsic/commit/c364492af4af51333e6f81c0bf21fd3d602c3661) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es-abstract`, `object-inspect`, `tape` [`dc04dad`](https://github.com/ljharb/get-intrinsic/commit/dc04dad86f6e5608775a2640cb0db5927ae29ed9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `safe-publish-latest`, `tape` [`1c14059`](https://github.com/ljharb/get-intrinsic/commit/1c1405984e86dd2dc9366c15d8a0294a96a146a5) +- [Tests] use `mock-property` [`b396ef0`](https://github.com/ljharb/get-intrinsic/commit/b396ef05bb73b1d699811abd64b0d9b97997fdda) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c2c758d`](https://github.com/ljharb/get-intrinsic/commit/c2c758d3b90af4fef0a76910d8d3c292ec8d1d3e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`29e3c09`](https://github.com/ljharb/get-intrinsic/commit/29e3c091c2bf3e17099969847e8729d0e46896de) +- [actions] update codecov uploader [`8cbc141`](https://github.com/ljharb/get-intrinsic/commit/8cbc1418940d7a8941f3a7985cbc4ac095c5e13d) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`10b6f5c`](https://github.com/ljharb/get-intrinsic/commit/10b6f5c02593fb3680c581d696ac124e30652932) +- [readme] add github actions/codecov badges [`4e25400`](https://github.com/ljharb/get-intrinsic/commit/4e25400d9f51ae9eb059cbe22d9144e70ea214e8) +- [Tests] use `for-each` instead of `foreach` [`c05b957`](https://github.com/ljharb/get-intrinsic/commit/c05b957ad9a7bc7721af7cc9e9be1edbfe057496) +- [Dev Deps] update `es-abstract` [`29b05ae`](https://github.com/ljharb/get-intrinsic/commit/29b05aec3e7330e9ad0b8e0f685a9112c20cdd97) +- [meta] use `prepublishOnly` script for npm 7+ [`95c285d`](https://github.com/ljharb/get-intrinsic/commit/95c285da810516057d3bbfa871176031af38f05d) +- [Deps] update `has-symbols` [`593cb4f`](https://github.com/ljharb/get-intrinsic/commit/593cb4fb38e7922e40e42c183f45274b636424cd) +- [readme] fix repo URLs [`1c8305b`](https://github.com/ljharb/get-intrinsic/commit/1c8305b5365827c9b6fc785434aac0e1328ff2f5) +- [Deps] update `has-symbols` [`c7138b6`](https://github.com/ljharb/get-intrinsic/commit/c7138b6c6d73132d859471fb8c13304e1e7c8b20) +- [Dev Deps] remove unused `has-bigints` [`bd63aff`](https://github.com/ljharb/get-intrinsic/commit/bd63aff6ad8f3a986c557fcda2914187bdaab359) + +## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03 + +### Fixed + +- [meta] export `./package.json` [`#9`](https://github.com/ljharb/get-intrinsic/issues/9) + +### Commits + +- [readme] flesh out the readme; use `evalmd` [`d12f12c`](https://github.com/ljharb/get-intrinsic/commit/d12f12c15345a0a0772cc65a7c64369529abd614) +- [eslint] set up proper globals config [`5a8c098`](https://github.com/ljharb/get-intrinsic/commit/5a8c0984e3319d1ac0e64b102f8ec18b64e79f36) +- [Dev Deps] update `eslint` [`7b9a5c0`](https://github.com/ljharb/get-intrinsic/commit/7b9a5c0d31a90ca1a1234181c74988fb046701cd) + +## [v1.1.0](https://github.com/ljharb/get-intrinsic/compare/v1.0.2...v1.1.0) - 2021-01-25 + +### Fixed + +- [Refactor] delay `Function` eval until syntax-derived values are requested [`#3`](https://github.com/ljharb/get-intrinsic/issues/3) + +### Commits + +- [Tests] migrate tests to Github Actions [`2ab762b`](https://github.com/ljharb/get-intrinsic/commit/2ab762b48164aea8af37a40ba105bbc8246ab8c4) +- [meta] do not publish github action workflow files [`5e7108e`](https://github.com/ljharb/get-intrinsic/commit/5e7108e4768b244d48d9567ba4f8a6cab9c65b8e) +- [Tests] add some coverage [`01ac7a8`](https://github.com/ljharb/get-intrinsic/commit/01ac7a87ac29738567e8524cd8c9e026b1fa8cb3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `call-bind`, `es-abstract`, `tape`; add `call-bind` [`911b672`](https://github.com/ljharb/get-intrinsic/commit/911b672fbffae433a96924c6ce013585e425f4b7) +- [Refactor] rearrange evalled constructors a bit [`7e7e4bf`](https://github.com/ljharb/get-intrinsic/commit/7e7e4bf583f3799c8ac1c6c5e10d2cb553957347) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`0199968`](https://github.com/ljharb/get-intrinsic/commit/01999687a263ffce0a3cb011dfbcb761754aedbc) + +## [v1.0.2](https://github.com/ljharb/get-intrinsic/compare/v1.0.1...v1.0.2) - 2020-12-17 + +### Commits + +- [Fix] Throw for non‑existent intrinsics [`68f873b`](https://github.com/ljharb/get-intrinsic/commit/68f873b013c732a05ad6f5fc54f697e55515461b) +- [Fix] Throw for non‑existent segments in the intrinsic path [`8325dee`](https://github.com/ljharb/get-intrinsic/commit/8325deee43128f3654d3399aa9591741ebe17b21) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-bigints`, `object-inspect` [`0c227a7`](https://github.com/ljharb/get-intrinsic/commit/0c227a7d8b629166f25715fd242553892e458525) +- [meta] do not lint coverage output [`70d2419`](https://github.com/ljharb/get-intrinsic/commit/70d24199b620043cd9110fc5f426d214ebe21dc9) + +## [v1.0.1](https://github.com/ljharb/get-intrinsic/compare/v1.0.0...v1.0.1) - 2020-10-30 + +### Commits + +- [Tests] gather coverage data on every job [`d1d280d`](https://github.com/ljharb/get-intrinsic/commit/d1d280dec714e3f0519cc877dbcb193057d9cac6) +- [Fix] add missing dependencies [`5031771`](https://github.com/ljharb/get-intrinsic/commit/5031771bb1095b38be88ce7c41d5de88718e432e) +- [Tests] use `es-value-fixtures` [`af48765`](https://github.com/ljharb/get-intrinsic/commit/af48765a23c5323fb0b6b38dbf00eb5099c7bebc) + +## v1.0.0 - 2020-10-29 + +### Commits + +- Implementation [`bbce57c`](https://github.com/ljharb/get-intrinsic/commit/bbce57c6f33d05b2d8d3efa273ceeb3ee01127bb) +- Tests [`17b4f0d`](https://github.com/ljharb/get-intrinsic/commit/17b4f0d56dea6b4059b56fc30ef3ee4d9500ebc2) +- Initial commit [`3153294`](https://github.com/ljharb/get-intrinsic/commit/31532948de363b0a27dd9fd4649e7b7028ec4b44) +- npm init [`fb326c4`](https://github.com/ljharb/get-intrinsic/commit/fb326c4d2817c8419ec31de1295f06bb268a7902) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`48862fb`](https://github.com/ljharb/get-intrinsic/commit/48862fb2508c8f6a57968e6d08b7c883afc9d550) +- [meta] add `auto-changelog` [`5f28ad0`](https://github.com/ljharb/get-intrinsic/commit/5f28ad019e060a353d8028f9f2591a9cc93074a1) +- [meta] add "funding"; create `FUNDING.yml` [`c2bbdde`](https://github.com/ljharb/get-intrinsic/commit/c2bbddeba73a875be61484ee4680b129a6d4e0a1) +- [Tests] add `npm run lint` [`0a84b98`](https://github.com/ljharb/get-intrinsic/commit/0a84b98b22b7cf7a748666f705b0003a493c35fd) +- Only apps should have lockfiles [`9586c75`](https://github.com/ljharb/get-intrinsic/commit/9586c75866c1ee678e4d5d4dbbdef6997e511b05) diff --git a/node_modules/get-intrinsic/LICENSE b/node_modules/get-intrinsic/LICENSE new file mode 100644 index 0000000..48f05d0 --- /dev/null +++ b/node_modules/get-intrinsic/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/get-intrinsic/README.md b/node_modules/get-intrinsic/README.md new file mode 100644 index 0000000..3aa0bba --- /dev/null +++ b/node_modules/get-intrinsic/README.md @@ -0,0 +1,71 @@ +# get-intrinsic [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Get and robustly cache all JS language-level intrinsics at first require time. + +See the syntax described [in the JS spec](https://tc39.es/ecma262/#sec-well-known-intrinsic-objects) for reference. + +## Example + +```js +var GetIntrinsic = require('get-intrinsic'); +var assert = require('assert'); + +// static methods +assert.equal(GetIntrinsic('%Math.pow%'), Math.pow); +assert.equal(Math.pow(2, 3), 8); +assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); +delete Math.pow; +assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); + +// instance methods +var arr = [1]; +assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push); +assert.deepEqual(arr, [1]); + +arr.push(2); +assert.deepEqual(arr, [1, 2]); + +GetIntrinsic('%Array.prototype.push%').call(arr, 3); +assert.deepEqual(arr, [1, 2, 3]); + +delete Array.prototype.push; +GetIntrinsic('%Array.prototype.push%').call(arr, 4); +assert.deepEqual(arr, [1, 2, 3, 4]); + +// missing features +delete JSON.parse; // to simulate a real intrinsic that is missing in the environment +assert.throws(() => GetIntrinsic('%JSON.parse%')); +assert.equal(undefined, GetIntrinsic('%JSON.parse%', true)); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/get-intrinsic +[npm-version-svg]: https://versionbadg.es/ljharb/get-intrinsic.svg +[deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg +[deps-url]: https://david-dm.org/ljharb/get-intrinsic +[dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/get-intrinsic#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/get-intrinsic.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/get-intrinsic.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg +[downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic +[codecov-image]: https://codecov.io/gh/ljharb/get-intrinsic/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/get-intrinsic/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/get-intrinsic +[actions-url]: https://github.com/ljharb/get-intrinsic/actions diff --git a/node_modules/get-intrinsic/index.js b/node_modules/get-intrinsic/index.js new file mode 100644 index 0000000..7f618f5 --- /dev/null +++ b/node_modules/get-intrinsic/index.js @@ -0,0 +1,377 @@ +'use strict'; + +var undefined; + +var $Object = require('es-object-atoms'); + +var $Error = require('es-errors'); +var $EvalError = require('es-errors/eval'); +var $RangeError = require('es-errors/range'); +var $ReferenceError = require('es-errors/ref'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $URIError = require('es-errors/uri'); + +var abs = require('math-intrinsics/abs'); +var floor = require('math-intrinsics/floor'); +var max = require('math-intrinsics/max'); +var min = require('math-intrinsics/min'); +var pow = require('math-intrinsics/pow'); +var round = require('math-intrinsics/round'); +var sign = require('math-intrinsics/sign'); + +var $Function = Function; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = require('gopd'); +var $defineProperty = require('es-define-property'); + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = require('has-symbols')(); + +var getProto = require('get-proto'); +var $ObjectGPO = require('get-proto/Object.getPrototypeOf'); +var $ReflectGPO = require('get-proto/Reflect.getPrototypeOf'); + +var $apply = require('call-bind-apply-helpers/functionApply'); +var $call = require('call-bind-apply-helpers/functionCall'); + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + __proto__: null, + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': $Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': $EvalError, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': $Object, + '%Object.getOwnPropertyDescriptor%': $gOPD, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': $RangeError, + '%ReferenceError%': $ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': $URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, + + '%Function.prototype.call%': $call, + '%Function.prototype.apply%': $apply, + '%Object.defineProperty%': $defineProperty, + '%Object.getPrototypeOf%': $ObjectGPO, + '%Math.abs%': abs, + '%Math.floor%': floor, + '%Math.max%': max, + '%Math.min%': min, + '%Math.pow%': pow, + '%Math.round%': round, + '%Math.sign%': sign, + '%Reflect.getPrototypeOf%': $ReflectGPO +}; + +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + __proto__: null, + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = require('function-bind'); +var hasOwn = require('hasown'); +var $concat = bind.call($call, Array.prototype.concat); +var $spliceApply = bind.call($apply, Array.prototype.splice); +var $replace = bind.call($call, String.prototype.replace); +var $strSlice = bind.call($call, String.prototype.slice); +var $exec = bind.call($call, RegExp.prototype.exec); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; diff --git a/node_modules/get-intrinsic/package.json b/node_modules/get-intrinsic/package.json new file mode 100644 index 0000000..f941bfe --- /dev/null +++ b/node_modules/get-intrinsic/package.json @@ -0,0 +1,97 @@ +{ + "name": "get-intrinsic", + "version": "1.2.7", + "description": "Get and robustly cache all JS language-level intrinsics at first require time", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-intrinsic.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "intrinsic", + "getintrinsic", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/get-intrinsic/issues" + }, + "homepage": "https://github.com/ljharb/get-intrinsic#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "auto-changelog": "^2.5.0", + "call-bound": "^1.0.3", + "encoding": "^0.1.13", + "es-abstract": "^1.23.8", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "mock-property": "^1.1.0", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "testling": { + "files": "test/GetIntrinsic.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/get-intrinsic/test/GetIntrinsic.js new file mode 100644 index 0000000..d9c0f30 --- /dev/null +++ b/node_modules/get-intrinsic/test/GetIntrinsic.js @@ -0,0 +1,274 @@ +'use strict'; + +var GetIntrinsic = require('../'); + +var test = require('tape'); +var forEach = require('for-each'); +var debug = require('object-inspect'); +var generatorFns = require('make-generator-function')(); +var asyncFns = require('make-async-function').list(); +var asyncGenFns = require('make-async-generator-function')(); +var mockProperty = require('mock-property'); + +var callBound = require('call-bound'); +var v = require('es-value-fixtures'); +var $gOPD = require('gopd'); +var DefinePropertyOrThrow = require('es-abstract/2023/DefinePropertyOrThrow'); + +var $isProto = callBound('%Object.prototype.isPrototypeOf%'); + +test('export', function (t) { + t.equal(typeof GetIntrinsic, 'function', 'it is a function'); + t.equal(GetIntrinsic.length, 2, 'function has length of 2'); + + t.end(); +}); + +test('throws', function (t) { + t['throws']( + function () { GetIntrinsic('not an intrinsic'); }, + SyntaxError, + 'nonexistent intrinsic throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic(''); }, + TypeError, + 'empty string intrinsic throws a type error' + ); + + t['throws']( + function () { GetIntrinsic('.'); }, + SyntaxError, + '"just a dot" intrinsic throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic('%String'); }, + SyntaxError, + 'Leading % without trailing % throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic('String%'); }, + SyntaxError, + 'Trailing % without leading % throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic("String['prototype]"); }, + SyntaxError, + 'Dynamic property access is disallowed for intrinsics (unterminated string)' + ); + + t['throws']( + function () { GetIntrinsic('%Proxy.prototype.undefined%'); }, + TypeError, + "Throws when middle part doesn't exist (%Proxy.prototype.undefined%)" + ); + + t['throws']( + function () { GetIntrinsic('%Array.prototype%garbage%'); }, + SyntaxError, + 'Throws with extra percent signs' + ); + + t['throws']( + function () { GetIntrinsic('%Array.prototype%push%'); }, + SyntaxError, + 'Throws with extra percent signs, even on an existing intrinsic' + ); + + forEach(v.nonStrings, function (nonString) { + t['throws']( + function () { GetIntrinsic(nonString); }, + TypeError, + debug(nonString) + ' is not a String' + ); + }); + + forEach(v.nonBooleans, function (nonBoolean) { + t['throws']( + function () { GetIntrinsic('%', nonBoolean); }, + TypeError, + debug(nonBoolean) + ' is not a Boolean' + ); + }); + + forEach([ + 'toString', + 'propertyIsEnumerable', + 'hasOwnProperty' + ], function (objectProtoMember) { + t['throws']( + function () { GetIntrinsic(objectProtoMember); }, + SyntaxError, + debug(objectProtoMember) + ' is not an intrinsic' + ); + }); + + t.end(); +}); + +test('base intrinsics', function (t) { + t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object'); + t.equal(GetIntrinsic('Object'), Object, 'Object yields Object'); + t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array'); + t.equal(GetIntrinsic('Array'), Array, 'Array yields Array'); + + t.end(); +}); + +test('dotted paths', function (t) { + t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString'); + t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString'); + t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push'); + t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push'); + + test('underscore paths are aliases for dotted paths', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { + var original = GetIntrinsic('%ObjProto_toString%'); + + forEach([ + '%Object.prototype.toString%', + 'Object.prototype.toString', + '%ObjectPrototype.toString%', + 'ObjectPrototype.toString', + '%ObjProto_toString%', + 'ObjProto_toString' + ], function (name) { + DefinePropertyOrThrow(Object.prototype, 'toString', { + '[[Value]]': function toString() { + return original.apply(this, arguments); + } + }); + st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString'); + }); + + DefinePropertyOrThrow(Object.prototype, 'toString', { '[[Value]]': original }); + st.end(); + }); + + test('dotted paths cache', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { + var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%'); + + forEach([ + '%Object.prototype.propertyIsEnumerable%', + 'Object.prototype.propertyIsEnumerable', + '%ObjectPrototype.propertyIsEnumerable%', + 'ObjectPrototype.propertyIsEnumerable' + ], function (name) { + var restore = mockProperty(Object.prototype, 'propertyIsEnumerable', { + value: function propertyIsEnumerable() { + return original.apply(this, arguments); + } + }); + st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable'); + + restore(); + }); + + st.end(); + }); + + test('dotted path reports correct error', function (st) { + st['throws'](function () { + GetIntrinsic('%NonExistentIntrinsic.prototype.property%'); + }, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%'); + + st['throws'](function () { + GetIntrinsic('%NonExistentIntrinsicPrototype.property%'); + }, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%'); + + st.end(); + }); + + t.end(); +}); + +test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) { + var actual = $gOPD(Map.prototype, 'size'); + t.ok(actual, 'Map.prototype.size has a descriptor'); + t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function'); + t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it'); + t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it'); + + t.end(); +}); + +test('generator functions', { skip: !generatorFns.length }, function (t) { + var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%'); + var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%'); + var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%'); + + forEach(generatorFns, function (genFn) { + var fnName = genFn.name; + fnName = fnName ? "'" + fnName + "'" : 'genFn'; + + t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%'); + t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName); + t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype'); + }); + + t.end(); +}); + +test('async functions', { skip: !asyncFns.length }, function (t) { + var $AsyncFunction = GetIntrinsic('%AsyncFunction%'); + var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%'); + + forEach(asyncFns, function (asyncFn) { + var fnName = asyncFn.name; + fnName = fnName ? "'" + fnName + "'" : 'asyncFn'; + + t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%'); + t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName); + }); + + t.end(); +}); + +test('async generator functions', { skip: asyncGenFns.length === 0 }, function (t) { + var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%'); + var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%'); + var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%'); + + forEach(asyncGenFns, function (asyncGenFn) { + var fnName = asyncGenFn.name; + fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn'; + + t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%'); + t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName); + t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype'); + }); + + t.end(); +}); + +test('%ThrowTypeError%', function (t) { + var $ThrowTypeError = GetIntrinsic('%ThrowTypeError%'); + + t.equal(typeof $ThrowTypeError, 'function', 'is a function'); + t['throws']( + $ThrowTypeError, + TypeError, + '%ThrowTypeError% throws a TypeError' + ); + + t.end(); +}); + +test('allowMissing', { skip: asyncGenFns.length > 0 }, function (t) { + t['throws']( + function () { GetIntrinsic('%AsyncGeneratorPrototype%'); }, + TypeError, + 'throws when missing' + ); + + t.equal( + GetIntrinsic('%AsyncGeneratorPrototype%', true), + undefined, + 'does not throw when allowMissing' + ); + + t.end(); +}); diff --git a/node_modules/get-proto/.eslintrc b/node_modules/get-proto/.eslintrc new file mode 100644 index 0000000..1d21a8a --- /dev/null +++ b/node_modules/get-proto/.eslintrc @@ -0,0 +1,10 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "id-length": "off", + "sort-keys": "off", + }, +} diff --git a/node_modules/get-proto/.github/FUNDING.yml b/node_modules/get-proto/.github/FUNDING.yml new file mode 100644 index 0000000..93183ef --- /dev/null +++ b/node_modules/get-proto/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/get-proto +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/get-proto/.nycrc b/node_modules/get-proto/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/get-proto/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/get-proto/CHANGELOG.md b/node_modules/get-proto/CHANGELOG.md new file mode 100644 index 0000000..5860229 --- /dev/null +++ b/node_modules/get-proto/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/get-proto/compare/v1.0.0...v1.0.1) - 2025-01-02 + +### Commits + +- [Fix] for the `Object.getPrototypeOf` window, throw for non-objects [`7fe6508`](https://github.com/ljharb/get-proto/commit/7fe6508b71419ebe1976bedb86001d1feaeaa49a) + +## v1.0.0 - 2025-01-01 + +### Commits + +- Initial implementation, tests, readme, types [`5c70775`](https://github.com/ljharb/get-proto/commit/5c707751e81c3deeb2cf980d185fc7fd43611415) +- Initial commit [`7c65c2a`](https://github.com/ljharb/get-proto/commit/7c65c2ad4e33d5dae2f219ebe1a046ae2256972c) +- npm init [`0b8cf82`](https://github.com/ljharb/get-proto/commit/0b8cf824c9634e4a34ef7dd2a2cdc5be6ac79518) +- Only apps should have lockfiles [`a6d1bff`](https://github.com/ljharb/get-proto/commit/a6d1bffc364f5828377cea7194558b2dbef7aea2) diff --git a/node_modules/get-proto/LICENSE b/node_modules/get-proto/LICENSE new file mode 100644 index 0000000..eeabd1c --- /dev/null +++ b/node_modules/get-proto/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/get-proto/Object.getPrototypeOf.d.ts b/node_modules/get-proto/Object.getPrototypeOf.d.ts new file mode 100644 index 0000000..028b3ff --- /dev/null +++ b/node_modules/get-proto/Object.getPrototypeOf.d.ts @@ -0,0 +1,5 @@ +declare function getProto(object: O): object | null; + +declare const x: typeof getProto | null; + +export = x; \ No newline at end of file diff --git a/node_modules/get-proto/Object.getPrototypeOf.js b/node_modules/get-proto/Object.getPrototypeOf.js new file mode 100644 index 0000000..c2cbbdf --- /dev/null +++ b/node_modules/get-proto/Object.getPrototypeOf.js @@ -0,0 +1,6 @@ +'use strict'; + +var $Object = require('es-object-atoms'); + +/** @type {import('./Object.getPrototypeOf')} */ +module.exports = $Object.getPrototypeOf || null; diff --git a/node_modules/get-proto/README.md b/node_modules/get-proto/README.md new file mode 100644 index 0000000..f8b4cce --- /dev/null +++ b/node_modules/get-proto/README.md @@ -0,0 +1,50 @@ +# get-proto [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robustly get the [[Prototype]] of an object. Uses the best available method. + +## Getting started + +```sh +npm install --save get-proto +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getProto = require('get-proto'); + +const a = { a: 1, b: 2, [Symbol.toStringTag]: 'foo' }; +const b = { c: 3, __proto__: a }; + +assert.equal(getProto(b), a); +assert.equal(getProto(a), Object.prototype); +assert.equal(getProto({ __proto__: null }), null); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/get-proto +[npm-version-svg]: https://versionbadg.es/ljharb/get-proto.svg +[deps-svg]: https://david-dm.org/ljharb/get-proto.svg +[deps-url]: https://david-dm.org/ljharb/get-proto +[dev-deps-svg]: https://david-dm.org/ljharb/get-proto/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/get-proto#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/get-proto.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/get-proto.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/get-proto.svg +[downloads-url]: https://npm-stat.com/charts.html?package=get-proto +[codecov-image]: https://codecov.io/gh/ljharb/get-proto/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/get-proto/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/get-proto +[actions-url]: https://github.com/ljharb/get-proto/actions diff --git a/node_modules/get-proto/Reflect.getPrototypeOf.d.ts b/node_modules/get-proto/Reflect.getPrototypeOf.d.ts new file mode 100644 index 0000000..2388fe0 --- /dev/null +++ b/node_modules/get-proto/Reflect.getPrototypeOf.d.ts @@ -0,0 +1,3 @@ +declare const x: typeof Reflect.getPrototypeOf | null; + +export = x; \ No newline at end of file diff --git a/node_modules/get-proto/Reflect.getPrototypeOf.js b/node_modules/get-proto/Reflect.getPrototypeOf.js new file mode 100644 index 0000000..e6c51be --- /dev/null +++ b/node_modules/get-proto/Reflect.getPrototypeOf.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./Reflect.getPrototypeOf')} */ +module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null; diff --git a/node_modules/get-proto/index.d.ts b/node_modules/get-proto/index.d.ts new file mode 100644 index 0000000..2c021f3 --- /dev/null +++ b/node_modules/get-proto/index.d.ts @@ -0,0 +1,5 @@ +declare function getProto(object: O): object | null; + +declare const x: typeof getProto | null; + +export = x; diff --git a/node_modules/get-proto/index.js b/node_modules/get-proto/index.js new file mode 100644 index 0000000..7e5747b --- /dev/null +++ b/node_modules/get-proto/index.js @@ -0,0 +1,27 @@ +'use strict'; + +var reflectGetProto = require('./Reflect.getPrototypeOf'); +var originalGetProto = require('./Object.getPrototypeOf'); + +var getDunderProto = require('dunder-proto/get'); + +/** @type {import('.')} */ +module.exports = reflectGetProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return reflectGetProto(O); + } + : originalGetProto + ? function getProto(O) { + if (!O || (typeof O !== 'object' && typeof O !== 'function')) { + throw new TypeError('getProto: not an object'); + } + // @ts-expect-error TS can't narrow inside a closure, for some reason + return originalGetProto(O); + } + : getDunderProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return getDunderProto(O); + } + : null; diff --git a/node_modules/get-proto/package.json b/node_modules/get-proto/package.json new file mode 100644 index 0000000..9c35cec --- /dev/null +++ b/node_modules/get-proto/package.json @@ -0,0 +1,81 @@ +{ + "name": "get-proto", + "version": "1.0.1", + "description": "Robustly get the [[Prototype]] of an object", + "main": "index.js", + "exports": { + ".": "./index.js", + "./Reflect.getPrototypeOf": "./Reflect.getPrototypeOf.js", + "./Object.getPrototypeOf": "./Object.getPrototypeOf.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "npx npm@\">=10.2\" audit --production", + "tests-only": "nyc tape 'test/**/*.js'", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-proto.git" + }, + "keywords": [ + "get", + "proto", + "prototype", + "getPrototypeOf", + "[[Prototype]]" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/get-proto/issues" + }, + "homepage": "https://github.com/ljharb/get-proto#readme", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.2", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/tape": "^5.8.0", + "auto-changelog": "^2.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "testling": { + "files": "test/index.js" + } +} diff --git a/node_modules/get-proto/test/index.js b/node_modules/get-proto/test/index.js new file mode 100644 index 0000000..5a2ece2 --- /dev/null +++ b/node_modules/get-proto/test/index.js @@ -0,0 +1,68 @@ +'use strict'; + +var test = require('tape'); + +var getProto = require('../'); + +test('getProto', function (t) { + t.equal(typeof getProto, 'function', 'is a function'); + + t.test('can get', { skip: !getProto }, function (st) { + if (getProto) { // TS doesn't understand tape's skip + var proto = { b: 2 }; + st.equal(getProto(proto), Object.prototype, 'proto: returns the [[Prototype]]'); + + st.test('nullish value', function (s2t) { + // @ts-expect-error + s2t['throws'](function () { return getProto(undefined); }, TypeError, 'undefined is not an object'); + // @ts-expect-error + s2t['throws'](function () { return getProto(null); }, TypeError, 'null is not an object'); + s2t.end(); + }); + + // @ts-expect-error + st['throws'](function () { getProto(true); }, 'throws for true'); + // @ts-expect-error + st['throws'](function () { getProto(false); }, 'throws for false'); + // @ts-expect-error + st['throws'](function () { getProto(42); }, 'throws for 42'); + // @ts-expect-error + st['throws'](function () { getProto(NaN); }, 'throws for NaN'); + // @ts-expect-error + st['throws'](function () { getProto(0); }, 'throws for +0'); + // @ts-expect-error + st['throws'](function () { getProto(-0); }, 'throws for -0'); + // @ts-expect-error + st['throws'](function () { getProto(Infinity); }, 'throws for ∞'); + // @ts-expect-error + st['throws'](function () { getProto(-Infinity); }, 'throws for -∞'); + // @ts-expect-error + st['throws'](function () { getProto(''); }, 'throws for empty string'); + // @ts-expect-error + st['throws'](function () { getProto('foo'); }, 'throws for non-empty string'); + st.equal(getProto(/a/g), RegExp.prototype); + st.equal(getProto(new Date()), Date.prototype); + st.equal(getProto(function () {}), Function.prototype); + st.equal(getProto([]), Array.prototype); + st.equal(getProto({}), Object.prototype); + + var nullObject = { __proto__: null }; + if ('toString' in nullObject) { + st.comment('no null objects in this engine'); + st.equal(getProto(nullObject), Object.prototype, '"null" object has Object.prototype as [[Prototype]]'); + } else { + st.equal(getProto(nullObject), null, 'null object has null [[Prototype]]'); + } + } + + st.end(); + }); + + t.test('can not get', { skip: !!getProto }, function (st) { + st.equal(getProto, null); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/get-proto/tsconfig.json b/node_modules/get-proto/tsconfig.json new file mode 100644 index 0000000..60fb90e --- /dev/null +++ b/node_modules/get-proto/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + //"target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/glob-parent/CHANGELOG.md b/node_modules/glob-parent/CHANGELOG.md new file mode 100644 index 0000000..fb9de96 --- /dev/null +++ b/node_modules/glob-parent/CHANGELOG.md @@ -0,0 +1,110 @@ +### [5.1.2](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2) (2021-03-06) + + +### Bug Fixes + +* eliminate ReDoS ([#36](https://github.com/gulpjs/glob-parent/issues/36)) ([f923116](https://github.com/gulpjs/glob-parent/commit/f9231168b0041fea3f8f954b3cceb56269fc6366)) + +### [5.1.1](https://github.com/gulpjs/glob-parent/compare/v5.1.0...v5.1.1) (2021-01-27) + + +### Bug Fixes + +* unescape exclamation mark ([#26](https://github.com/gulpjs/glob-parent/issues/26)) ([a98874f](https://github.com/gulpjs/glob-parent/commit/a98874f1a59e407f4fb1beb0db4efa8392da60bb)) + +## [5.1.0](https://github.com/gulpjs/glob-parent/compare/v5.0.0...v5.1.0) (2021-01-27) + + +### Features + +* add `flipBackslashes` option to disable auto conversion of slashes (closes [#24](https://github.com/gulpjs/glob-parent/issues/24)) ([#25](https://github.com/gulpjs/glob-parent/issues/25)) ([eecf91d](https://github.com/gulpjs/glob-parent/commit/eecf91d5e3834ed78aee39c4eaaae654d76b87b3)) + +## [5.0.0](https://github.com/gulpjs/glob-parent/compare/v4.0.0...v5.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* Drop support for node <6 & bump dependencies + +### Miscellaneous Chores + +* Drop support for node <6 & bump dependencies ([896c0c0](https://github.com/gulpjs/glob-parent/commit/896c0c00b4e7362f60b96e7fc295ae929245255a)) + +## [4.0.0](https://github.com/gulpjs/glob-parent/compare/v3.1.0...v4.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* question marks are valid path characters on Windows so avoid flagging as a glob when alone +* Update is-glob dependency + +### Features + +* hoist regexps and strings for performance gains ([4a80667](https://github.com/gulpjs/glob-parent/commit/4a80667c69355c76a572a5892b0f133c8e1f457e)) +* question marks are valid path characters on Windows so avoid flagging as a glob when alone ([2a551dd](https://github.com/gulpjs/glob-parent/commit/2a551dd0dc3235e78bf3c94843d4107072d17841)) +* Update is-glob dependency ([e41fcd8](https://github.com/gulpjs/glob-parent/commit/e41fcd895d1f7bc617dba45c9d935a7949b9c281)) + +## [3.1.0](https://github.com/gulpjs/glob-parent/compare/v3.0.1...v3.1.0) (2021-01-27) + + +### Features + +* allow basic win32 backslash use ([272afa5](https://github.com/gulpjs/glob-parent/commit/272afa5fd070fc0f796386a5993d4ee4a846988b)) +* handle extglobs (parentheses) containing separators ([7db1bdb](https://github.com/gulpjs/glob-parent/commit/7db1bdb0756e55fd14619e8ce31aa31b17b117fd)) +* new approach to braces/brackets handling ([8269bd8](https://github.com/gulpjs/glob-parent/commit/8269bd89290d99fac9395a354fb56fdcdb80f0be)) +* pre-process braces/brackets sections ([9ef8a87](https://github.com/gulpjs/glob-parent/commit/9ef8a87f66b1a43d0591e7a8e4fc5a18415ee388)) +* preserve escaped brace/bracket at end of string ([8cfb0ba](https://github.com/gulpjs/glob-parent/commit/8cfb0ba84202d51571340dcbaf61b79d16a26c76)) + + +### Bug Fixes + +* trailing escaped square brackets ([99ec9fe](https://github.com/gulpjs/glob-parent/commit/99ec9fecc60ee488ded20a94dd4f18b4f55c4ccf)) + +### [3.0.1](https://github.com/gulpjs/glob-parent/compare/v3.0.0...v3.0.1) (2021-01-27) + + +### Features + +* use path-dirname ponyfill ([cdbea5f](https://github.com/gulpjs/glob-parent/commit/cdbea5f32a58a54e001a75ddd7c0fccd4776aacc)) + + +### Bug Fixes + +* unescape glob-escaped dirnames on output ([598c533](https://github.com/gulpjs/glob-parent/commit/598c533bdf49c1428bc063aa9b8db40c5a86b030)) + +## [3.0.0](https://github.com/gulpjs/glob-parent/compare/v2.0.0...v3.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* update is-glob dependency + +### Features + +* update is-glob dependency ([5c5f8ef](https://github.com/gulpjs/glob-parent/commit/5c5f8efcee362a8e7638cf8220666acd8784f6bd)) + +## [2.0.0](https://github.com/gulpjs/glob-parent/compare/v1.3.0...v2.0.0) (2021-01-27) + + +### Features + +* move up to dirname regardless of glob characters ([f97fb83](https://github.com/gulpjs/glob-parent/commit/f97fb83be2e0a9fc8d3b760e789d2ecadd6aa0c2)) + +## [1.3.0](https://github.com/gulpjs/glob-parent/compare/v1.2.0...v1.3.0) (2021-01-27) + +## [1.2.0](https://github.com/gulpjs/glob-parent/compare/v1.1.0...v1.2.0) (2021-01-27) + + +### Reverts + +* feat: make regex test strings smaller ([dc80fa9](https://github.com/gulpjs/glob-parent/commit/dc80fa9658dca20549cfeba44bbd37d5246fcce0)) + +## [1.1.0](https://github.com/gulpjs/glob-parent/compare/v1.0.0...v1.1.0) (2021-01-27) + + +### Features + +* make regex test strings smaller ([cd83220](https://github.com/gulpjs/glob-parent/commit/cd832208638f45169f986d80fcf66e401f35d233)) + +## 1.0.0 (2021-01-27) + diff --git a/node_modules/glob-parent/LICENSE b/node_modules/glob-parent/LICENSE new file mode 100644 index 0000000..63222d7 --- /dev/null +++ b/node_modules/glob-parent/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/glob-parent/README.md b/node_modules/glob-parent/README.md new file mode 100644 index 0000000..36a2793 --- /dev/null +++ b/node_modules/glob-parent/README.md @@ -0,0 +1,137 @@ +

+ + + +

+ +# glob-parent + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] + +Extract the non-magic parent path from a glob string. + +## Usage + +```js +var globParent = require('glob-parent'); + +globParent('path/to/*.js'); // 'path/to' +globParent('/root/path/to/*.js'); // '/root/path/to' +globParent('/*.js'); // '/' +globParent('*.js'); // '.' +globParent('**/*.js'); // '.' +globParent('path/{to,from}'); // 'path' +globParent('path/!(to|from)'); // 'path' +globParent('path/?(to|from)'); // 'path' +globParent('path/+(to|from)'); // 'path' +globParent('path/*(to|from)'); // 'path' +globParent('path/@(to|from)'); // 'path' +globParent('path/**/*'); // 'path' + +// if provided a non-glob path, returns the nearest dir +globParent('path/foo/bar.js'); // 'path/foo' +globParent('path/foo/'); // 'path/foo' +globParent('path/foo'); // 'path' (see issue #3 for details) +``` + +## API + +### `globParent(maybeGlobString, [options])` + +Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. + +#### options + +```js +{ + // Disables the automatic conversion of slashes for Windows + flipBackslashes: true +} +``` + +## Escaping + +The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: + +- `?` (question mark) unless used as a path segment alone +- `*` (asterisk) +- `|` (pipe) +- `(` (opening parenthesis) +- `)` (closing parenthesis) +- `{` (opening curly brace) +- `}` (closing curly brace) +- `[` (opening bracket) +- `]` (closing bracket) + +**Example** + +```js +globParent('foo/[bar]/') // 'foo' +globParent('foo/\\[bar]/') // 'foo/[bar]' +``` + +## Limitations + +### Braces & Brackets +This library attempts a quick and imperfect method of determining which path +parts have glob magic without fully parsing/lexing the pattern. There are some +advanced use cases that can trip it up, such as nested braces where the outer +pair is escaped and the inner one contains a path separator. If you find +yourself in the unlikely circumstance of being affected by this or need to +ensure higher-fidelity glob handling in your library, it is recommended that you +pre-process your input with [expand-braces] and/or [expand-brackets]. + +### Windows +Backslashes are not valid path separators for globs. If a path with backslashes +is provided anyway, for simple cases, glob-parent will replace the path +separator for you and return the non-glob parent path (now with +forward-slashes, which are still valid as Windows path separators). + +This cannot be used in conjunction with escape characters. + +```js +// BAD +globParent('C:\\Program Files \\(x86\\)\\*.ext') // 'C:/Program Files /(x86/)' + +// GOOD +globParent('C:/Program Files\\(x86\\)/*.ext') // 'C:/Program Files (x86)' +``` + +If you are using escape characters for a pattern without path parts (i.e. +relative to `cwd`), prefix with `./` to avoid confusing glob-parent. + +```js +// BAD +globParent('foo \\[bar]') // 'foo ' +globParent('foo \\[bar]*') // 'foo ' + +// GOOD +globParent('./foo \\[bar]') // 'foo [bar]' +globParent('./foo \\[bar]*') // '.' +``` + +## License + +ISC + +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg +[npm-url]: https://www.npmjs.com/package/glob-parent +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg + +[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=2&branchName=master +[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/glob-parent?branchName=master + +[travis-url]: https://travis-ci.org/gulpjs/glob-parent +[travis-image]: https://img.shields.io/travis/gulpjs/glob-parent.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-parent +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-parent.svg?label=appveyor + +[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js new file mode 100644 index 0000000..09e257e --- /dev/null +++ b/node_modules/glob-parent/index.js @@ -0,0 +1,42 @@ +'use strict'; + +var isGlob = require('is-glob'); +var pathPosixDirname = require('path').posix.dirname; +var isWin32 = require('os').platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} + */ +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json new file mode 100644 index 0000000..125c971 --- /dev/null +++ b/node_modules/glob-parent/package.json @@ -0,0 +1,48 @@ +{ + "name": "glob-parent", + "version": "5.1.2", + "description": "Extract the non-magic parent path from a glob string.", + "author": "Gulp Team (https://gulpjs.com/)", + "contributors": [ + "Elan Shanker (https://github.com/es128)", + "Blaine Bublitz " + ], + "repository": "gulpjs/glob-parent", + "license": "ISC", + "engines": { + "node": ">= 6" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only", + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "dependencies": { + "is-glob": "^4.0.1" + }, + "devDependencies": { + "coveralls": "^3.0.11", + "eslint": "^2.13.1", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "mocha": "^6.0.2", + "nyc": "^13.3.0" + }, + "keywords": [ + "glob", + "parent", + "strip", + "path", + "dirname", + "directory", + "base", + "wildcard" + ] +} diff --git a/node_modules/gopd/.eslintrc b/node_modules/gopd/.eslintrc new file mode 100644 index 0000000..e2550c0 --- /dev/null +++ b/node_modules/gopd/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-style": [2, "declaration"], + "id-length": 0, + "multiline-comment-style": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/gopd/.github/FUNDING.yml b/node_modules/gopd/.github/FUNDING.yml new file mode 100644 index 0000000..94a44a8 --- /dev/null +++ b/node_modules/gopd/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/gopd +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/gopd/CHANGELOG.md b/node_modules/gopd/CHANGELOG.md new file mode 100644 index 0000000..87f5727 --- /dev/null +++ b/node_modules/gopd/CHANGELOG.md @@ -0,0 +1,45 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.0](https://github.com/ljharb/gopd/compare/v1.1.0...v1.2.0) - 2024-12-03 + +### Commits + +- [New] add `gOPD` entry point; remove `get-intrinsic` [`5b61232`](https://github.com/ljharb/gopd/commit/5b61232dedea4591a314bcf16101b1961cee024e) + +## [v1.1.0](https://github.com/ljharb/gopd/compare/v1.0.1...v1.1.0) - 2024-11-29 + +### Commits + +- [New] add types [`f585e39`](https://github.com/ljharb/gopd/commit/f585e397886d270e4ba84e53d226e4f9ca2eb0e6) +- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `tape` [`0b8e4fd`](https://github.com/ljharb/gopd/commit/0b8e4fded64397a7726a9daa144a6cc9a5e2edfa) +- [Dev Deps] update `aud`, `npmignore`, `tape` [`48378b2`](https://github.com/ljharb/gopd/commit/48378b2443f09a4f7efbd0fb6c3ee845a6cabcf3) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`78099ee`](https://github.com/ljharb/gopd/commit/78099eeed41bfdc134c912280483689cc8861c31) +- [Tests] replace `aud` with `npm audit` [`4e0d0ac`](https://github.com/ljharb/gopd/commit/4e0d0ac47619d24a75318a8e1f543ee04b2a2632) +- [meta] add missing `engines.node` [`1443316`](https://github.com/ljharb/gopd/commit/14433165d07835c680155b3dfd62d9217d735eca) +- [Deps] update `get-intrinsic` [`eee5f51`](https://github.com/ljharb/gopd/commit/eee5f51769f3dbaf578b70e2a3199116b01aa670) +- [Deps] update `get-intrinsic` [`550c378`](https://github.com/ljharb/gopd/commit/550c3780e3a9c77b62565712a001b4ed64ea61f5) +- [Dev Deps] add missing peer dep [`8c2ecf8`](https://github.com/ljharb/gopd/commit/8c2ecf848122e4e30abfc5b5086fb48b390dce75) + +## [v1.0.1](https://github.com/ljharb/gopd/compare/v1.0.0...v1.0.1) - 2022-11-01 + +### Commits + +- [Fix] actually export gOPD instead of dP [`4b624bf`](https://github.com/ljharb/gopd/commit/4b624bfbeff788c5e3ff16d9443a83627847234f) + +## v1.0.0 - 2022-11-01 + +### Commits + +- Initial implementation, tests, readme [`0911e01`](https://github.com/ljharb/gopd/commit/0911e012cd642092bd88b732c161c58bf4f20bea) +- Initial commit [`b84e33f`](https://github.com/ljharb/gopd/commit/b84e33f5808a805ac57ff88d4247ad935569acbe) +- [actions] add reusable workflows [`12ae28a`](https://github.com/ljharb/gopd/commit/12ae28ae5f50f86e750215b6e2188901646d0119) +- npm init [`280118b`](https://github.com/ljharb/gopd/commit/280118badb45c80b4483836b5cb5315bddf6e582) +- [meta] add `auto-changelog` [`bb78de5`](https://github.com/ljharb/gopd/commit/bb78de5639a180747fb290c28912beaaf1615709) +- [meta] create FUNDING.yml; add `funding` in package.json [`11c22e6`](https://github.com/ljharb/gopd/commit/11c22e6355bb01f24e7fac4c9bb3055eb5b25002) +- [meta] use `npmignore` to autogenerate an npmignore file [`4f4537a`](https://github.com/ljharb/gopd/commit/4f4537a843b39f698c52f072845092e6fca345bb) +- Only apps should have lockfiles [`c567022`](https://github.com/ljharb/gopd/commit/c567022a18573aa7951cf5399445d9840e23e98b) diff --git a/node_modules/gopd/LICENSE b/node_modules/gopd/LICENSE new file mode 100644 index 0000000..6abfe14 --- /dev/null +++ b/node_modules/gopd/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/gopd/README.md b/node_modules/gopd/README.md new file mode 100644 index 0000000..784e56a --- /dev/null +++ b/node_modules/gopd/README.md @@ -0,0 +1,40 @@ +# gopd [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation. + +## Usage + +```javascript +var gOPD = require('gopd'); +var assert = require('assert'); + +if (gOPD) { + assert.equal(typeof gOPD, 'function', 'descriptors supported'); + // use gOPD like Object.getOwnPropertyDescriptor here +} else { + assert.ok(!gOPD, 'descriptors not supported'); +} +``` + +[package-url]: https://npmjs.org/package/gopd +[npm-version-svg]: https://versionbadg.es/ljharb/gopd.svg +[deps-svg]: https://david-dm.org/ljharb/gopd.svg +[deps-url]: https://david-dm.org/ljharb/gopd +[dev-deps-svg]: https://david-dm.org/ljharb/gopd/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/gopd#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/gopd.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/gopd.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/gopd.svg +[downloads-url]: https://npm-stat.com/charts.html?package=gopd +[codecov-image]: https://codecov.io/gh/ljharb/gopd/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/gopd/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/gopd +[actions-url]: https://github.com/ljharb/gopd/actions diff --git a/node_modules/gopd/gOPD.d.ts b/node_modules/gopd/gOPD.d.ts new file mode 100644 index 0000000..def48a3 --- /dev/null +++ b/node_modules/gopd/gOPD.d.ts @@ -0,0 +1 @@ +export = Object.getOwnPropertyDescriptor; diff --git a/node_modules/gopd/gOPD.js b/node_modules/gopd/gOPD.js new file mode 100644 index 0000000..cf9616c --- /dev/null +++ b/node_modules/gopd/gOPD.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./gOPD')} */ +module.exports = Object.getOwnPropertyDescriptor; diff --git a/node_modules/gopd/index.d.ts b/node_modules/gopd/index.d.ts new file mode 100644 index 0000000..e228065 --- /dev/null +++ b/node_modules/gopd/index.d.ts @@ -0,0 +1,5 @@ +declare function gOPD(obj: O, prop: K): PropertyDescriptor | undefined; + +declare const fn: typeof gOPD | undefined | null; + +export = fn; \ No newline at end of file diff --git a/node_modules/gopd/index.js b/node_modules/gopd/index.js new file mode 100644 index 0000000..a4081b0 --- /dev/null +++ b/node_modules/gopd/index.js @@ -0,0 +1,15 @@ +'use strict'; + +/** @type {import('.')} */ +var $gOPD = require('./gOPD'); + +if ($gOPD) { + try { + $gOPD([], 'length'); + } catch (e) { + // IE 8 has a broken gOPD + $gOPD = null; + } +} + +module.exports = $gOPD; diff --git a/node_modules/gopd/package.json b/node_modules/gopd/package.json new file mode 100644 index 0000000..01c5ffa --- /dev/null +++ b/node_modules/gopd/package.json @@ -0,0 +1,77 @@ +{ + "name": "gopd", + "version": "1.2.0", + "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./gOPD": "./gOPD.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "tsc -p . && attw -P", + "lint": "eslint --ext=js,mjs .", + "postlint": "evalmd README.md", + "pretest": "npm run lint", + "tests-only": "tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/gopd.git" + }, + "keywords": [ + "ecmascript", + "javascript", + "getownpropertydescriptor", + "property", + "descriptor" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/gopd/issues" + }, + "homepage": "https://github.com/ljharb/gopd#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.0", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/gopd/test/index.js b/node_modules/gopd/test/index.js new file mode 100644 index 0000000..6f43453 --- /dev/null +++ b/node_modules/gopd/test/index.js @@ -0,0 +1,36 @@ +'use strict'; + +var test = require('tape'); +var gOPD = require('../'); + +test('gOPD', function (t) { + t.test('supported', { skip: !gOPD }, function (st) { + st.equal(typeof gOPD, 'function', 'is a function'); + + var obj = { x: 1 }; + st.ok('x' in obj, 'property exists'); + + // @ts-expect-error TS can't figure out narrowing from `skip` + var desc = gOPD(obj, 'x'); + st.deepEqual( + desc, + { + configurable: true, + enumerable: true, + value: 1, + writable: true + }, + 'descriptor is as expected' + ); + + st.end(); + }); + + t.test('not supported', { skip: !!gOPD }, function (st) { + st.notOk(gOPD, 'is falsy'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/gopd/tsconfig.json b/node_modules/gopd/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/gopd/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/has-flag/index.js b/node_modules/has-flag/index.js new file mode 100644 index 0000000..5139728 --- /dev/null +++ b/node_modules/has-flag/index.js @@ -0,0 +1,8 @@ +'use strict'; +module.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf('--'); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; diff --git a/node_modules/has-flag/license b/node_modules/has-flag/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/has-flag/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/has-flag/package.json b/node_modules/has-flag/package.json new file mode 100644 index 0000000..e1eb17a --- /dev/null +++ b/node_modules/has-flag/package.json @@ -0,0 +1,44 @@ +{ + "name": "has-flag", + "version": "3.0.0", + "description": "Check if argv has a specific flag", + "license": "MIT", + "repository": "sindresorhus/has-flag", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "has", + "check", + "detect", + "contains", + "find", + "flag", + "cli", + "command-line", + "argv", + "process", + "arg", + "args", + "argument", + "arguments", + "getopt", + "minimist", + "optimist" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + } +} diff --git a/node_modules/has-flag/readme.md b/node_modules/has-flag/readme.md new file mode 100644 index 0000000..677893c --- /dev/null +++ b/node_modules/has-flag/readme.md @@ -0,0 +1,70 @@ +# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) + +> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag + +Correctly stops looking after an `--` argument terminator. + + +## Install + +``` +$ npm install has-flag +``` + + +## Usage + +```js +// foo.js +const hasFlag = require('has-flag'); + +hasFlag('unicorn'); +//=> true + +hasFlag('--unicorn'); +//=> true + +hasFlag('f'); +//=> true + +hasFlag('-f'); +//=> true + +hasFlag('foo=bar'); +//=> true + +hasFlag('foo'); +//=> false + +hasFlag('rainbow'); +//=> false +``` + +``` +$ node foo.js -f --unicorn --foo=bar -- --rainbow +``` + + +## API + +### hasFlag(flag, [argv]) + +Returns a boolean for whether the flag exists. + +#### flag + +Type: `string` + +CLI flag to look for. The `--` prefix is optional. + +#### argv + +Type: `string[]`
+Default: `process.argv` + +CLI arguments. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/has-symbols/.eslintrc b/node_modules/has-symbols/.eslintrc new file mode 100644 index 0000000..2d9a66a --- /dev/null +++ b/node_modules/has-symbols/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-statements-per-line": [2, { "max": 2 }], + "no-magic-numbers": 0, + "multiline-comment-style": 0, + } +} diff --git a/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/has-symbols/.github/FUNDING.yml new file mode 100644 index 0000000..04cf87e --- /dev/null +++ b/node_modules/has-symbols/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-symbols +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-symbols/.nycrc b/node_modules/has-symbols/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/has-symbols/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md new file mode 100644 index 0000000..cc3cf83 --- /dev/null +++ b/node_modules/has-symbols/CHANGELOG.md @@ -0,0 +1,91 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.0](https://github.com/inspect-js/has-symbols/compare/v1.0.3...v1.1.0) - 2024-12-02 + +### Commits + +- [actions] update workflows [`548c0bf`](https://github.com/inspect-js/has-symbols/commit/548c0bf8c9b1235458df7a1c0490b0064647a282) +- [actions] further shard; update action deps [`bec56bb`](https://github.com/inspect-js/has-symbols/commit/bec56bb0fb44b43a786686b944875a3175cf3ff3) +- [meta] use `npmignore` to autogenerate an npmignore file [`ac81032`](https://github.com/inspect-js/has-symbols/commit/ac81032809157e0a079e5264e9ce9b6f1275777e) +- [New] add types [`6469cbf`](https://github.com/inspect-js/has-symbols/commit/6469cbff1866cfe367b2b3d181d9296ec14b2a3d) +- [actions] update rebase action to use reusable workflow [`9c9d4d0`](https://github.com/inspect-js/has-symbols/commit/9c9d4d0d8938e4b267acdf8e421f4e92d1716d72) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`adb5887`](https://github.com/inspect-js/has-symbols/commit/adb5887ca9444849b08beb5caaa9e1d42320cdfb) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`13ec198`](https://github.com/inspect-js/has-symbols/commit/13ec198ec80f1993a87710af1606a1970b22c7cb) +- [Dev Deps] update `auto-changelog`, `core-js`, `tape` [`941be52`](https://github.com/inspect-js/has-symbols/commit/941be5248387cab1da72509b22acf3fdb223f057) +- [Tests] replace `aud` with `npm audit` [`74f49e9`](https://github.com/inspect-js/has-symbols/commit/74f49e9a9d17a443020784234a1c53ce765b3559) +- [Dev Deps] update `npmignore` [`9c0ac04`](https://github.com/inspect-js/has-symbols/commit/9c0ac0452a834f4c2a4b54044f2d6a89f17e9a70) +- [Dev Deps] add missing peer dep [`52337a5`](https://github.com/inspect-js/has-symbols/commit/52337a5621cced61f846f2afdab7707a8132cc12) + +## [v1.0.3](https://github.com/inspect-js/has-symbols/compare/v1.0.2...v1.0.3) - 2022-03-01 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`518b28f`](https://github.com/inspect-js/has-symbols/commit/518b28f6c5a516cbccae30794e40aa9f738b1693) +- [meta] add `bugs` and `homepage` fields; reorder package.json [`c480b13`](https://github.com/inspect-js/has-symbols/commit/c480b13fd6802b557e1cef9749872cb5fdeef744) +- [actions] reuse common workflows [`01d0ee0`](https://github.com/inspect-js/has-symbols/commit/01d0ee0a8d97c0947f5edb73eb722027a77b2b07) +- [actions] update codecov uploader [`6424ebe`](https://github.com/inspect-js/has-symbols/commit/6424ebe86b2c9c7c3d2e9bd4413a4e4f168cb275) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`dfa7e7f`](https://github.com/inspect-js/has-symbols/commit/dfa7e7ff38b594645d8c8222aab895157fa7e282) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0c8d436`](https://github.com/inspect-js/has-symbols/commit/0c8d43685c45189cea9018191d4fd7eca91c9d02) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`9026554`](https://github.com/inspect-js/has-symbols/commit/902655442a1bf88e72b42345494ef0c60f5d36ab) +- [readme] add actions and codecov badges [`eaa9682`](https://github.com/inspect-js/has-symbols/commit/eaa9682f990f481d3acf7a1c7600bec36f7b3adc) +- [Dev Deps] update `eslint`, `tape` [`bc7a3ba`](https://github.com/inspect-js/has-symbols/commit/bc7a3ba46f27b7743f8a2579732d59d1b9ac791e) +- [Dev Deps] update `eslint`, `auto-changelog` [`0ace00a`](https://github.com/inspect-js/has-symbols/commit/0ace00af08a88cdd1e6ce0d60357d941c60c2d9f) +- [meta] use `prepublishOnly` script for npm 7+ [`093f72b`](https://github.com/inspect-js/has-symbols/commit/093f72bc2b0ed00c781f444922a5034257bf561d) +- [Tests] test on all 16 minors [`9b80d3d`](https://github.com/inspect-js/has-symbols/commit/9b80d3d9102529f04c20ec5b1fcc6e38426c6b03) + +## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27 + +### Fixed + +- [Fix] use a universal way to get the original Symbol [`#11`](https://github.com/inspect-js/has-symbols/issues/11) + +### Commits + +- [Tests] migrate tests to Github Actions [`90ae798`](https://github.com/inspect-js/has-symbols/commit/90ae79820bdfe7bc703d67f5f3c5e205f98556d3) +- [meta] do not publish github action workflow files [`29e60a1`](https://github.com/inspect-js/has-symbols/commit/29e60a1b7c25c7f1acf7acff4a9320d0d10c49b4) +- [Tests] run `nyc` on all tests [`8476b91`](https://github.com/inspect-js/has-symbols/commit/8476b915650d360915abe2522505abf4b0e8f0ae) +- [readme] fix repo URLs, remove defunct badges [`126288e`](https://github.com/inspect-js/has-symbols/commit/126288ecc1797c0a40247a6b78bcb2e0bc5d7036) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `get-own-property-symbols` [`d84bdfa`](https://github.com/inspect-js/has-symbols/commit/d84bdfa48ac5188abbb4904b42614cd6c030940a) +- [Tests] fix linting errors [`0df3070`](https://github.com/inspect-js/has-symbols/commit/0df3070b981b6c9f2ee530c09189a7f5c6def839) +- [actions] add "Allow Edits" workflow [`1e6bc29`](https://github.com/inspect-js/has-symbols/commit/1e6bc29b188f32b9648657b07eda08504be5aa9c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`36cea2a`](https://github.com/inspect-js/has-symbols/commit/36cea2addd4e6ec435f35a2656b4e9ef82498e9b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1278338`](https://github.com/inspect-js/has-symbols/commit/127833801865fbc2cc8979beb9ca869c7bfe8222) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1493254`](https://github.com/inspect-js/has-symbols/commit/1493254eda13db5fb8fc5e4a3e8324b3d196029d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js` [`b090bf2`](https://github.com/inspect-js/has-symbols/commit/b090bf214d3679a30edc1e2d729d466ab5183e1d) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4addb7a`](https://github.com/inspect-js/has-symbols/commit/4addb7ab4dc73f927ae99928d68817554fc21dc0) +- [Dev Deps] update `auto-changelog`, `tape` [`81d0baf`](https://github.com/inspect-js/has-symbols/commit/81d0baf3816096a89a8558e8043895f7a7d10d8b) +- [Dev Deps] update `auto-changelog`; add `aud` [`1a4e561`](https://github.com/inspect-js/has-symbols/commit/1a4e5612c25d91c3a03d509721d02630bc4fe3da) +- [readme] remove unused testling URLs [`3000941`](https://github.com/inspect-js/has-symbols/commit/3000941f958046e923ed8152edb1ef4a599e6fcc) +- [Tests] only audit prod deps [`692e974`](https://github.com/inspect-js/has-symbols/commit/692e9743c912410e9440207631a643a34b4741a1) +- [Dev Deps] update `@ljharb/eslint-config` [`51c946c`](https://github.com/inspect-js/has-symbols/commit/51c946c7f6baa793ec5390bb5a45cdce16b4ba76) + +## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-16 + +### Commits + +- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229) +- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b) +- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c) +- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91) +- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4) +- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193) +- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0) +- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0) + +## v1.0.0 - 2016-09-19 + +### Commits + +- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d) +- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a) +- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c) +- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb) +- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c) diff --git a/node_modules/has-symbols/LICENSE b/node_modules/has-symbols/LICENSE new file mode 100644 index 0000000..df31cbf --- /dev/null +++ b/node_modules/has-symbols/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/has-symbols/README.md b/node_modules/has-symbols/README.md new file mode 100644 index 0000000..33905f0 --- /dev/null +++ b/node_modules/has-symbols/README.md @@ -0,0 +1,46 @@ +# has-symbols [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has Symbol support. Supports spec, or shams. + +## Example + +```js +var hasSymbols = require('has-symbols'); + +hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable. + +var hasSymbolsKinda = require('has-symbols/shams'); +hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec. +``` + +## Supported Symbol shams + - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) + - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-symbols +[2]: https://versionbadg.es/inspect-js/has-symbols.svg +[5]: https://david-dm.org/inspect-js/has-symbols.svg +[6]: https://david-dm.org/inspect-js/has-symbols +[7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg +[8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies +[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-symbols.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-symbols +[codecov-image]: https://codecov.io/gh/inspect-js/has-symbols/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-symbols/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-symbols +[actions-url]: https://github.com/inspect-js/has-symbols/actions diff --git a/node_modules/has-symbols/index.d.ts b/node_modules/has-symbols/index.d.ts new file mode 100644 index 0000000..9b98595 --- /dev/null +++ b/node_modules/has-symbols/index.d.ts @@ -0,0 +1,3 @@ +declare function hasNativeSymbols(): boolean; + +export = hasNativeSymbols; \ No newline at end of file diff --git a/node_modules/has-symbols/index.js b/node_modules/has-symbols/index.js new file mode 100644 index 0000000..fa65265 --- /dev/null +++ b/node_modules/has-symbols/index.js @@ -0,0 +1,14 @@ +'use strict'; + +var origSymbol = typeof Symbol !== 'undefined' && Symbol; +var hasSymbolSham = require('./shams'); + +/** @type {import('.')} */ +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json new file mode 100644 index 0000000..d835e20 --- /dev/null +++ b/node_modules/has-symbols/package.json @@ -0,0 +1,111 @@ +{ + "name": "has-symbols", + "version": "1.1.0", + "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", + "main": "index.js", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "tests-only": "npm run test:stock && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/has-symbols.git" + }, + "keywords": [ + "Symbol", + "symbols", + "typeof", + "sham", + "polyfill", + "native", + "core-js", + "ES6" + ], + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/has-symbols/issues" + }, + "homepage": "https://github.com/ljharb/has-symbols#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.0", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.0", + "@types/core-js": "^2.5.8", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "core-js": "^2.6.12", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "get-own-property-symbols": "^0.9.5", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "types" + ] + } +} diff --git a/node_modules/has-symbols/shams.d.ts b/node_modules/has-symbols/shams.d.ts new file mode 100644 index 0000000..8d0bf24 --- /dev/null +++ b/node_modules/has-symbols/shams.d.ts @@ -0,0 +1,3 @@ +declare function hasSymbolShams(): boolean; + +export = hasSymbolShams; \ No newline at end of file diff --git a/node_modules/has-symbols/shams.js b/node_modules/has-symbols/shams.js new file mode 100644 index 0000000..f97b474 --- /dev/null +++ b/node_modules/has-symbols/shams.js @@ -0,0 +1,45 @@ +'use strict'; + +/** @type {import('./shams')} */ +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + /** @type {{ [k in symbol]?: unknown }} */ + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + // eslint-disable-next-line no-extra-parens + var descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym)); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; diff --git a/node_modules/has-symbols/test/index.js b/node_modules/has-symbols/test/index.js new file mode 100644 index 0000000..352129c --- /dev/null +++ b/node_modules/has-symbols/test/index.js @@ -0,0 +1,22 @@ +'use strict'; + +var test = require('tape'); +var hasSymbols = require('../'); +var runSymbolTests = require('./tests'); + +test('interface', function (t) { + t.equal(typeof hasSymbols, 'function', 'is a function'); + t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean'); + t.end(); +}); + +test('Symbols are supported', { skip: !hasSymbols() }, function (t) { + runSymbolTests(t); + t.end(); +}); + +test('Symbols are not supported', { skip: hasSymbols() }, function (t) { + t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined'); + t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist'); + t.end(); +}); diff --git a/node_modules/has-symbols/test/shams/core-js.js b/node_modules/has-symbols/test/shams/core-js.js new file mode 100644 index 0000000..1a29024 --- /dev/null +++ b/node_modules/has-symbols/test/shams/core-js.js @@ -0,0 +1,29 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + // @ts-expect-error TS is stupid and doesn't know about top level return + return; +} + +var hasSymbols = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); + require('core-js/fn/symbol'); + require('core-js/fn/symbol/to-string-tag'); + + require('../tests')(t); + + var hasSymbolsAfter = hasSymbols(); + t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/has-symbols/test/shams/get-own-property-symbols.js new file mode 100644 index 0000000..e0296f8 --- /dev/null +++ b/node_modules/has-symbols/test/shams/get-own-property-symbols.js @@ -0,0 +1,29 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + // @ts-expect-error TS is stupid and doesn't know about top level return + return; +} + +var hasSymbols = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); + + require('get-own-property-symbols'); + + require('../tests')(t); + + var hasSymbolsAfter = hasSymbols(); + t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/has-symbols/test/tests.js b/node_modules/has-symbols/test/tests.js new file mode 100644 index 0000000..66a2cb8 --- /dev/null +++ b/node_modules/has-symbols/test/tests.js @@ -0,0 +1,58 @@ +'use strict'; + +/** @type {(t: import('tape').Test) => false | void} */ +// eslint-disable-next-line consistent-return +module.exports = function runSymbolTests(t) { + t.equal(typeof Symbol, 'function', 'global Symbol is a function'); + + if (typeof Symbol !== 'function') { return false; } + + t.notEqual(Symbol(), Symbol(), 'two symbols are not equal'); + + /* + t.equal( + Symbol.prototype.toString.call(Symbol('foo')), + Symbol.prototype.toString.call(Symbol('foo')), + 'two symbols with the same description stringify the same' + ); + */ + + /* + var foo = Symbol('foo'); + + t.notEqual( + String(foo), + String(Symbol('bar')), + 'two symbols with different descriptions do not stringify the same' + ); + */ + + t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function'); + // t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol'); + + t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function'); + + /** @type {{ [k in symbol]?: unknown }} */ + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + t.notEqual(typeof sym, 'string', 'Symbol is not a string'); + t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly'); + t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly'); + + var symVal = 42; + obj[sym] = symVal; + // eslint-disable-next-line no-restricted-syntax, no-unused-vars + for (var _ in obj) { t.fail('symbol property key was found in for..in of object'); } + + t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object'); + t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object'); + t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object'); + t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable'); + t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), { + configurable: true, + enumerable: true, + value: 42, + writable: true + }, 'property descriptor is correct'); +}; diff --git a/node_modules/has-symbols/tsconfig.json b/node_modules/has-symbols/tsconfig.json new file mode 100644 index 0000000..ba99af4 --- /dev/null +++ b/node_modules/has-symbols/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "ES2021", + "maxNodeModuleJsDepth": 0, + }, + "exclude": [ + "coverage" + ] +} diff --git a/node_modules/hasown/.eslintrc b/node_modules/hasown/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/hasown/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/hasown/.github/FUNDING.yml b/node_modules/hasown/.github/FUNDING.yml new file mode 100644 index 0000000..d68c8b7 --- /dev/null +++ b/node_modules/hasown/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/hasown +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/hasown/.nycrc b/node_modules/hasown/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/hasown/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/hasown/CHANGELOG.md b/node_modules/hasown/CHANGELOG.md new file mode 100644 index 0000000..2b0a980 --- /dev/null +++ b/node_modules/hasown/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v2.0.2](https://github.com/inspect-js/hasOwn/compare/v2.0.1...v2.0.2) - 2024-03-10 + +### Commits + +- [types] use shared config [`68e9d4d`](https://github.com/inspect-js/hasOwn/commit/68e9d4dab6facb4f05f02c6baea94a3f2a4e44b2) +- [actions] remove redundant finisher; use reusable workflow [`241a68e`](https://github.com/inspect-js/hasOwn/commit/241a68e13ea1fe52bec5ba7f74144befc31fae7b) +- [Tests] increase coverage [`4125c0d`](https://github.com/inspect-js/hasOwn/commit/4125c0d6121db56ae30e38346dfb0c000b04f0a7) +- [Tests] skip `npm ls` in old node due to TS [`01b9282`](https://github.com/inspect-js/hasOwn/commit/01b92822f9971dea031eafdd14767df41d61c202) +- [types] improve predicate type [`d340f85`](https://github.com/inspect-js/hasOwn/commit/d340f85ce02e286ef61096cbbb6697081d40a12b) +- [Dev Deps] update `tape` [`70089fc`](https://github.com/inspect-js/hasOwn/commit/70089fcf544e64acc024cbe60f5a9b00acad86de) +- [Tests] use `@arethetypeswrong/cli` [`50b272c`](https://github.com/inspect-js/hasOwn/commit/50b272c829f40d053a3dd91c9796e0ac0b2af084) + +## [v2.0.1](https://github.com/inspect-js/hasOwn/compare/v2.0.0...v2.0.1) - 2024-02-10 + +### Commits + +- [types] use a handwritten d.ts file; fix exported type [`012b989`](https://github.com/inspect-js/hasOwn/commit/012b9898ccf91dc441e2ebf594ff70270a5fda58) +- [Dev Deps] update `@types/function-bind`, `@types/mock-property`, `@types/tape`, `aud`, `mock-property`, `npmignore`, `tape`, `typescript` [`977a56f`](https://github.com/inspect-js/hasOwn/commit/977a56f51a1f8b20566f3c471612137894644025) +- [meta] add `sideEffects` flag [`3a60b7b`](https://github.com/inspect-js/hasOwn/commit/3a60b7bf42fccd8c605e5f145a6fcc83b13cb46f) + +## [v2.0.0](https://github.com/inspect-js/hasOwn/compare/v1.0.1...v2.0.0) - 2023-10-19 + +### Commits + +- revamped implementation, tests, readme [`72bf8b3`](https://github.com/inspect-js/hasOwn/commit/72bf8b338e77a638f0a290c63ffaed18339c36b4) +- [meta] revamp package.json [`079775f`](https://github.com/inspect-js/hasOwn/commit/079775fb1ec72c1c6334069593617a0be3847458) +- Only apps should have lockfiles [`6640e23`](https://github.com/inspect-js/hasOwn/commit/6640e233d1bb8b65260880f90787637db157d215) + +## v1.0.1 - 2023-10-10 + +### Commits + +- Initial commit [`8dbfde6`](https://github.com/inspect-js/hasOwn/commit/8dbfde6e8fb0ebb076fab38d138f2984eb340a62) diff --git a/node_modules/hasown/LICENSE b/node_modules/hasown/LICENSE new file mode 100644 index 0000000..0314929 --- /dev/null +++ b/node_modules/hasown/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Jordan Harband and contributors + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/hasown/README.md b/node_modules/hasown/README.md new file mode 100644 index 0000000..f759b8a --- /dev/null +++ b/node_modules/hasown/README.md @@ -0,0 +1,40 @@ +# hasown [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A robust, ES3 compatible, "has own property" predicate. + +## Example + +```js +const assert = require('assert'); +const hasOwn = require('hasown'); + +assert.equal(hasOwn({}, 'toString'), false); +assert.equal(hasOwn([], 'length'), true); +assert.equal(hasOwn({ a: 42 }, 'a'), true); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/hasown +[npm-version-svg]: https://versionbadg.es/inspect-js/hasown.svg +[deps-svg]: https://david-dm.org/inspect-js/hasOwn.svg +[deps-url]: https://david-dm.org/inspect-js/hasOwn +[dev-deps-svg]: https://david-dm.org/inspect-js/hasOwn/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/hasOwn#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/hasown.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/hasown.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/hasown.svg +[downloads-url]: https://npm-stat.com/charts.html?package=hasown +[codecov-image]: https://codecov.io/gh/inspect-js/hasOwn/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/hasOwn/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/hasOwn +[actions-url]: https://github.com/inspect-js/hasOwn/actions diff --git a/node_modules/hasown/index.d.ts b/node_modules/hasown/index.d.ts new file mode 100644 index 0000000..aafdf3b --- /dev/null +++ b/node_modules/hasown/index.d.ts @@ -0,0 +1,3 @@ +declare function hasOwn(o: O, p: K): o is O & Record; + +export = hasOwn; diff --git a/node_modules/hasown/index.js b/node_modules/hasown/index.js new file mode 100644 index 0000000..34e6059 --- /dev/null +++ b/node_modules/hasown/index.js @@ -0,0 +1,8 @@ +'use strict'; + +var call = Function.prototype.call; +var $hasOwn = Object.prototype.hasOwnProperty; +var bind = require('function-bind'); + +/** @type {import('.')} */ +module.exports = bind.call(call, $hasOwn); diff --git a/node_modules/hasown/package.json b/node_modules/hasown/package.json new file mode 100644 index 0000000..8502e13 --- /dev/null +++ b/node_modules/hasown/package.json @@ -0,0 +1,92 @@ +{ + "name": "hasown", + "version": "2.0.2", + "description": "A robust, ES3 compatible, \"has own property\" predicate.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "index.d.ts", + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "npm run tsc", + "pretest": "npm run lint", + "tsc": "tsc -p .", + "posttsc": "attw -P", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/hasOwn.git" + }, + "keywords": [ + "has", + "hasOwnProperty", + "hasOwn", + "has-own", + "own", + "has", + "property", + "in", + "javascript", + "ecmascript" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/hasOwn/issues" + }, + "homepage": "https://github.com/inspect-js/hasOwn#readme", + "dependencies": { + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.15.1", + "@ljharb/eslint-config": "^21.1.0", + "@ljharb/tsconfig": "^0.2.0", + "@types/function-bind": "^1.1.10", + "@types/mock-property": "^1.0.2", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "mock-property": "^1.0.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.5", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "test" + ] + } +} diff --git a/node_modules/hasown/tsconfig.json b/node_modules/hasown/tsconfig.json new file mode 100644 index 0000000..0930c56 --- /dev/null +++ b/node_modules/hasown/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@ljharb/tsconfig", + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/http-errors/HISTORY.md b/node_modules/http-errors/HISTORY.md new file mode 100644 index 0000000..7228684 --- /dev/null +++ b/node_modules/http-errors/HISTORY.md @@ -0,0 +1,180 @@ +2.0.0 / 2021-12-17 +================== + + * Drop support for Node.js 0.6 + * Remove `I'mateapot` export; use `ImATeapot` instead + * Remove support for status being non-first argument + * Rename `UnorderedCollection` constructor to `TooEarly` + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: statuses@2.0.1 + - Fix messaging casing of `418 I'm a Teapot` + - Remove code 306 + - Rename `425 Unordered Collection` to standard `425 Too Early` + +2021-11-14 / 1.8.1 +================== + + * deps: toidentifier@1.0.1 + +2020-06-29 / 1.8.0 +================== + + * Add `isHttpError` export to determine if value is an HTTP error + * deps: setprototypeof@1.2.0 + +2019-06-24 / 1.7.3 +================== + + * deps: inherits@2.0.4 + +2019-02-18 / 1.7.2 +================== + + * deps: setprototypeof@1.1.1 + +2018-09-08 / 1.7.1 +================== + + * Fix error creating objects in some environments + +2018-07-30 / 1.7.0 +================== + + * Set constructor name when possible + * Use `toidentifier` module to make class names + * deps: statuses@'>= 1.5.0 < 2' + +2018-03-29 / 1.6.3 +================== + + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: setprototypeof@1.1.0 + * deps: statuses@'>= 1.4.0 < 2' + +2017-08-04 / 1.6.2 +================== + + * deps: depd@1.1.1 + - Remove unnecessary `Buffer` loading + +2017-02-20 / 1.6.1 +================== + + * deps: setprototypeof@1.0.3 + - Fix shim for old browsers + +2017-02-14 / 1.6.0 +================== + + * Accept custom 4xx and 5xx status codes in factory + * Add deprecation message to `"I'mateapot"` export + * Deprecate passing status code as anything except first argument in factory + * Deprecate using non-error status codes + * Make `message` property enumerable for `HttpError`s + +2016-11-16 / 1.5.1 +================== + + * deps: inherits@2.0.3 + - Fix issue loading in browser + * deps: setprototypeof@1.0.2 + * deps: statuses@'>= 1.3.1 < 2' + +2016-05-18 / 1.5.0 +================== + + * Support new code `421 Misdirected Request` + * Use `setprototypeof` module to replace `__proto__` setting + * deps: statuses@'>= 1.3.0 < 2' + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: enable strict mode + +2016-01-28 / 1.4.0 +================== + + * Add `HttpError` export, for `err instanceof createError.HttpError` + * deps: inherits@2.0.1 + * deps: statuses@'>= 1.2.1 < 2' + - Fix message for status 451 + - Remove incorrect nginx status code + +2015-02-02 / 1.3.1 +================== + + * Fix regression where status can be overwritten in `createError` `props` + +2015-02-01 / 1.3.0 +================== + + * Construct errors using defined constructors from `createError` + * Fix error names that are not identifiers + - `createError["I'mateapot"]` is now `createError.ImATeapot` + * Set a meaningful `name` property on constructed errors + +2014-12-09 / 1.2.8 +================== + + * Fix stack trace from exported function + * Remove `arguments.callee` usage + +2014-10-14 / 1.2.7 +================== + + * Remove duplicate line + +2014-10-02 / 1.2.6 +================== + + * Fix `expose` to be `true` for `ClientError` constructor + +2014-09-28 / 1.2.5 +================== + + * deps: statuses@1 + +2014-09-21 / 1.2.4 +================== + + * Fix dependency version to work with old `npm`s + +2014-09-21 / 1.2.3 +================== + + * deps: statuses@~1.1.0 + +2014-09-21 / 1.2.2 +================== + + * Fix publish error + +2014-09-21 / 1.2.1 +================== + + * Support Node.js 0.6 + * Use `inherits` instead of `util` + +2014-09-09 / 1.2.0 +================== + + * Fix the way inheriting functions + * Support `expose` being provided in properties argument + +2014-09-08 / 1.1.0 +================== + + * Default status to 500 + * Support provided `error` to extend + +2014-09-08 / 1.0.1 +================== + + * Fix accepting string message + +2014-09-08 / 1.0.0 +================== + + * Initial release diff --git a/node_modules/http-errors/LICENSE b/node_modules/http-errors/LICENSE new file mode 100644 index 0000000..82af4df --- /dev/null +++ b/node_modules/http-errors/LICENSE @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com +Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/http-errors/README.md b/node_modules/http-errors/README.md new file mode 100644 index 0000000..a8b7330 --- /dev/null +++ b/node_modules/http-errors/README.md @@ -0,0 +1,169 @@ +# http-errors + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][node-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create HTTP errors for Express, Koa, Connect, etc. with ease. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```console +$ npm install http-errors +``` + +## Example + +```js +var createError = require('http-errors') +var express = require('express') +var app = express() + +app.use(function (req, res, next) { + if (!req.user) return next(createError(401, 'Please login to view this page.')) + next() +}) +``` + +## API + +This is the current API, currently extracted from Koa and subject to change. + +### Error Properties + +- `expose` - can be used to signal if `message` should be sent to the client, + defaulting to `false` when `status` >= 500 +- `headers` - can be an object of header names to values to be sent to the + client, defaulting to `undefined`. When defined, the key names should all + be lower-cased +- `message` - the traditional error message, which should be kept short and all + single line +- `status` - the status code of the error, mirroring `statusCode` for general + compatibility +- `statusCode` - the status code of the error, defaulting to `500` + +### createError([status], [message], [properties]) + +Create a new error object with the given message `msg`. +The error object inherits from `createError.HttpError`. + +```js +var err = createError(404, 'This video does not exist!') +``` + +- `status: 500` - the status code as a number +- `message` - the message of the error, defaulting to node's text for that status code. +- `properties` - custom properties to attach to the object + +### createError([status], [error], [properties]) + +Extend the given `error` object with `createError.HttpError` +properties. This will not alter the inheritance of the given +`error` object, and the modified `error` object is the +return value. + + + +```js +fs.readFile('foo.txt', function (err, buf) { + if (err) { + if (err.code === 'ENOENT') { + var httpError = createError(404, err, { expose: false }) + } else { + var httpError = createError(500, err) + } + } +}) +``` + +- `status` - the status code as a number +- `error` - the error object to extend +- `properties` - custom properties to attach to the object + +### createError.isHttpError(val) + +Determine if the provided `val` is an `HttpError`. This will return `true` +if the error inherits from the `HttpError` constructor of this module or +matches the "duck type" for an error this module creates. All outputs from +the `createError` factory will return `true` for this function, including +if an non-`HttpError` was passed into the factory. + +### new createError\[code || name\](\[msg]\)) + +Create a new error object with the given message `msg`. +The error object inherits from `createError.HttpError`. + +```js +var err = new createError.NotFound() +``` + +- `code` - the status code as a number +- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`. + +#### List of all constructors + +|Status Code|Constructor Name | +|-----------|-----------------------------| +|400 |BadRequest | +|401 |Unauthorized | +|402 |PaymentRequired | +|403 |Forbidden | +|404 |NotFound | +|405 |MethodNotAllowed | +|406 |NotAcceptable | +|407 |ProxyAuthenticationRequired | +|408 |RequestTimeout | +|409 |Conflict | +|410 |Gone | +|411 |LengthRequired | +|412 |PreconditionFailed | +|413 |PayloadTooLarge | +|414 |URITooLong | +|415 |UnsupportedMediaType | +|416 |RangeNotSatisfiable | +|417 |ExpectationFailed | +|418 |ImATeapot | +|421 |MisdirectedRequest | +|422 |UnprocessableEntity | +|423 |Locked | +|424 |FailedDependency | +|425 |TooEarly | +|426 |UpgradeRequired | +|428 |PreconditionRequired | +|429 |TooManyRequests | +|431 |RequestHeaderFieldsTooLarge | +|451 |UnavailableForLegalReasons | +|500 |InternalServerError | +|501 |NotImplemented | +|502 |BadGateway | +|503 |ServiceUnavailable | +|504 |GatewayTimeout | +|505 |HTTPVersionNotSupported | +|506 |VariantAlsoNegotiates | +|507 |InsufficientStorage | +|508 |LoopDetected | +|509 |BandwidthLimitExceeded | +|510 |NotExtended | +|511 |NetworkAuthenticationRequired| + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/http-errors/master?label=ci +[ci-url]: https://github.com/jshttp/http-errors/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/http-errors/master +[coveralls-url]: https://coveralls.io/r/jshttp/http-errors?branch=master +[node-image]: https://badgen.net/npm/node/http-errors +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/http-errors +[npm-url]: https://npmjs.org/package/http-errors +[npm-version-image]: https://badgen.net/npm/v/http-errors +[travis-image]: https://badgen.net/travis/jshttp/http-errors/master +[travis-url]: https://travis-ci.org/jshttp/http-errors diff --git a/node_modules/http-errors/index.js b/node_modules/http-errors/index.js new file mode 100644 index 0000000..c425f1e --- /dev/null +++ b/node_modules/http-errors/index.js @@ -0,0 +1,289 @@ +/*! + * http-errors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('http-errors') +var setPrototypeOf = require('setprototypeof') +var statuses = require('statuses') +var inherits = require('inherits') +var toIdentifier = require('toidentifier') + +/** + * Module exports. + * @public + */ + +module.exports = createError +module.exports.HttpError = createHttpErrorConstructor() +module.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError) + +// Populate exports for all constructors +populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError) + +/** + * Get the code class of a status code. + * @private + */ + +function codeClass (status) { + return Number(String(status).charAt(0) + '00') +} + +/** + * Create a new HTTP Error. + * + * @returns {Error} + * @public + */ + +function createError () { + // so much arity going on ~_~ + var err + var msg + var status = 500 + var props = {} + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i] + var type = typeof arg + if (type === 'object' && arg instanceof Error) { + err = arg + status = err.status || err.statusCode || status + } else if (type === 'number' && i === 0) { + status = arg + } else if (type === 'string') { + msg = arg + } else if (type === 'object') { + props = arg + } else { + throw new TypeError('argument #' + (i + 1) + ' unsupported type ' + type) + } + } + + if (typeof status === 'number' && (status < 400 || status >= 600)) { + deprecate('non-error status code; use only 4xx or 5xx status codes') + } + + if (typeof status !== 'number' || + (!statuses.message[status] && (status < 400 || status >= 600))) { + status = 500 + } + + // constructor + var HttpError = createError[status] || createError[codeClass(status)] + + if (!err) { + // create error + err = HttpError + ? new HttpError(msg) + : new Error(msg || statuses.message[status]) + Error.captureStackTrace(err, createError) + } + + if (!HttpError || !(err instanceof HttpError) || err.status !== status) { + // add properties to generic error + err.expose = status < 500 + err.status = err.statusCode = status + } + + for (var key in props) { + if (key !== 'status' && key !== 'statusCode') { + err[key] = props[key] + } + } + + return err +} + +/** + * Create HTTP error abstract base class. + * @private + */ + +function createHttpErrorConstructor () { + function HttpError () { + throw new TypeError('cannot construct abstract class') + } + + inherits(HttpError, Error) + + return HttpError +} + +/** + * Create a constructor for a client error. + * @private + */ + +function createClientErrorConstructor (HttpError, name, code) { + var className = toClassName(name) + + function ClientError (message) { + // create the error object + var msg = message != null ? message : statuses.message[code] + var err = new Error(msg) + + // capture a stack trace to the construction point + Error.captureStackTrace(err, ClientError) + + // adjust the [[Prototype]] + setPrototypeOf(err, ClientError.prototype) + + // redefine the error message + Object.defineProperty(err, 'message', { + enumerable: true, + configurable: true, + value: msg, + writable: true + }) + + // redefine the error name + Object.defineProperty(err, 'name', { + enumerable: false, + configurable: true, + value: className, + writable: true + }) + + return err + } + + inherits(ClientError, HttpError) + nameFunc(ClientError, className) + + ClientError.prototype.status = code + ClientError.prototype.statusCode = code + ClientError.prototype.expose = true + + return ClientError +} + +/** + * Create function to test is a value is a HttpError. + * @private + */ + +function createIsHttpErrorFunction (HttpError) { + return function isHttpError (val) { + if (!val || typeof val !== 'object') { + return false + } + + if (val instanceof HttpError) { + return true + } + + return val instanceof Error && + typeof val.expose === 'boolean' && + typeof val.statusCode === 'number' && val.status === val.statusCode + } +} + +/** + * Create a constructor for a server error. + * @private + */ + +function createServerErrorConstructor (HttpError, name, code) { + var className = toClassName(name) + + function ServerError (message) { + // create the error object + var msg = message != null ? message : statuses.message[code] + var err = new Error(msg) + + // capture a stack trace to the construction point + Error.captureStackTrace(err, ServerError) + + // adjust the [[Prototype]] + setPrototypeOf(err, ServerError.prototype) + + // redefine the error message + Object.defineProperty(err, 'message', { + enumerable: true, + configurable: true, + value: msg, + writable: true + }) + + // redefine the error name + Object.defineProperty(err, 'name', { + enumerable: false, + configurable: true, + value: className, + writable: true + }) + + return err + } + + inherits(ServerError, HttpError) + nameFunc(ServerError, className) + + ServerError.prototype.status = code + ServerError.prototype.statusCode = code + ServerError.prototype.expose = false + + return ServerError +} + +/** + * Set the name of a function, if possible. + * @private + */ + +function nameFunc (func, name) { + var desc = Object.getOwnPropertyDescriptor(func, 'name') + + if (desc && desc.configurable) { + desc.value = name + Object.defineProperty(func, 'name', desc) + } +} + +/** + * Populate the exports object with constructors for every error class. + * @private + */ + +function populateConstructorExports (exports, codes, HttpError) { + codes.forEach(function forEachCode (code) { + var CodeError + var name = toIdentifier(statuses.message[code]) + + switch (codeClass(code)) { + case 400: + CodeError = createClientErrorConstructor(HttpError, name, code) + break + case 500: + CodeError = createServerErrorConstructor(HttpError, name, code) + break + } + + if (CodeError) { + // export the constructor + exports[code] = CodeError + exports[name] = CodeError + } + }) +} + +/** + * Get a class name from a name identifier. + * @private + */ + +function toClassName (name) { + return name.substr(-5) !== 'Error' + ? name + 'Error' + : name +} diff --git a/node_modules/http-errors/package.json b/node_modules/http-errors/package.json new file mode 100644 index 0000000..4cb6d7e --- /dev/null +++ b/node_modules/http-errors/package.json @@ -0,0 +1,50 @@ +{ + "name": "http-errors", + "description": "Create HTTP error objects", + "version": "2.0.0", + "author": "Jonathan Ong (http://jongleberry.com)", + "contributors": [ + "Alan Plum ", + "Douglas Christopher Wilson " + ], + "license": "MIT", + "repository": "jshttp/http-errors", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint . && node ./scripts/lint-readme-list.js", + "test": "mocha --reporter spec --bail", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "keywords": [ + "http", + "error" + ], + "files": [ + "index.js", + "HISTORY.md", + "LICENSE", + "README.md" + ] +} diff --git a/node_modules/iconv-lite/Changelog.md b/node_modules/iconv-lite/Changelog.md new file mode 100644 index 0000000..f252313 --- /dev/null +++ b/node_modules/iconv-lite/Changelog.md @@ -0,0 +1,162 @@ +# 0.4.24 / 2018-08-22 + + * Added MIK encoding (#196, by @Ivan-Kalatchev) + + +# 0.4.23 / 2018-05-07 + + * Fix deprecation warning in Node v10 due to the last usage of `new Buffer` (#185, by @felixbuenemann) + * Switched from NodeBuffer to Buffer in typings (#155 by @felixfbecker, #186 by @larssn) + + +# 0.4.22 / 2018-05-05 + + * Use older semver style for dependencies to be compatible with Node version 0.10 (#182, by @dougwilson) + * Fix tests to accomodate fixes in Node v10 (#182, by @dougwilson) + + +# 0.4.21 / 2018-04-06 + + * Fix encoding canonicalization (#156) + * Fix the paths in the "browser" field in package.json (#174 by @LMLB) + * Removed "contributors" section in package.json - see Git history instead. + + +# 0.4.20 / 2018-04-06 + + * Updated `new Buffer()` usages with recommended replacements as it's being deprecated in Node v10 (#176, #178 by @ChALkeR) + + +# 0.4.19 / 2017-09-09 + + * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147) + * Re-generated windows1255 codec, because it was updated in iconv project + * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8 + + +# 0.4.18 / 2017-06-13 + + * Fixed CESU-8 regression in Node v8. + + +# 0.4.17 / 2017-04-22 + + * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn) + + +# 0.4.16 / 2017-04-22 + + * Added support for React Native (#150) + * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex) + * Fixed typo in Readme (#138 by @jiangzhuo) + * Fixed build for Node v6.10+ by making correct version comparison + * Added a warning if iconv-lite is loaded not as utf-8 (see #142) + + +# 0.4.15 / 2016-11-21 + + * Fixed typescript type definition (#137) + + +# 0.4.14 / 2016-11-20 + + * Preparation for v1.0 + * Added Node v6 and latest Node versions to Travis CI test rig + * Deprecated Node v0.8 support + * Typescript typings (@larssn) + * Fix encoding of Euro character in GB 18030 (inspired by @lygstate) + * Add ms prefix to dbcs windows encodings (@rokoroku) + + +# 0.4.13 / 2015-10-01 + + * Fix silly mistake in deprecation notice. + + +# 0.4.12 / 2015-09-26 + + * Node v4 support: + * Added CESU-8 decoding (#106) + * Added deprecation notice for `extendNodeEncodings` + * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol) + + +# 0.4.11 / 2015-07-03 + + * Added CESU-8 encoding. + + +# 0.4.10 / 2015-05-26 + + * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not + just spaces. This should minimize the importance of "default" endianness. + + +# 0.4.9 / 2015-05-24 + + * Streamlined BOM handling: strip BOM by default, add BOM when encoding if + addBOM: true. Added docs to Readme. + * UTF16 now uses UTF16-LE by default. + * Fixed minor issue with big5 encoding. + * Added io.js testing on Travis; updated node-iconv version to test against. + Now we just skip testing SBCS encodings that node-iconv doesn't support. + * (internal refactoring) Updated codec interface to use classes. + * Use strict mode in all files. + + +# 0.4.8 / 2015-04-14 + + * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94) + + +# 0.4.7 / 2015-02-05 + + * stop official support of Node.js v0.8. Should still work, but no guarantees. + reason: Packages needed for testing are hard to get on Travis CI. + * work in environment where Object.prototype is monkey patched with enumerable + props (#89). + + +# 0.4.6 / 2015-01-12 + + * fix rare aliases of single-byte encodings (thanks @mscdex) + * double the timeout for dbcs tests to make them less flaky on travis + + +# 0.4.5 / 2014-11-20 + + * fix windows-31j and x-sjis encoding support (@nleush) + * minor fix: undefined variable reference when internal error happens + + +# 0.4.4 / 2014-07-16 + + * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3) + * fixed streaming base64 encoding + + +# 0.4.3 / 2014-06-14 + + * added encodings UTF-16BE and UTF-16 with BOM + + +# 0.4.2 / 2014-06-12 + + * don't throw exception if `extendNodeEncodings()` is called more than once + + +# 0.4.1 / 2014-06-11 + + * codepage 808 added + + +# 0.4.0 / 2014-06-10 + + * code is rewritten from scratch + * all widespread encodings are supported + * streaming interface added + * browserify compatibility added + * (optional) extend core primitive encodings to make usage even simpler + * moved from vows to mocha as the testing framework + + diff --git a/node_modules/iconv-lite/LICENSE b/node_modules/iconv-lite/LICENSE new file mode 100644 index 0000000..d518d83 --- /dev/null +++ b/node_modules/iconv-lite/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2011 Alexander Shtuchkin + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. + diff --git a/node_modules/iconv-lite/README.md b/node_modules/iconv-lite/README.md new file mode 100644 index 0000000..c981c37 --- /dev/null +++ b/node_modules/iconv-lite/README.md @@ -0,0 +1,156 @@ +## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite) + + * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io). + * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser), + [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others. + * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison). + * Intuitive encode/decode API + * Streaming support for Node v0.10+ + * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings. + * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included). + * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included. + * React Native is supported (need to explicitly `npm install` two more modules: `buffer` and `stream`). + * License: MIT. + +[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/) + +## Usage +### Basic API +```javascript +var iconv = require('iconv-lite'); + +// Convert from an encoded buffer to js string. +str = iconv.decode(Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251'); + +// Convert from js string to an encoded buffer. +buf = iconv.encode("Sample input string", 'win1251'); + +// Check if encoding is supported +iconv.encodingExists("us-ascii") +``` + +### Streaming API (Node v0.10+) +```javascript + +// Decode stream (from binary stream to js strings) +http.createServer(function(req, res) { + var converterStream = iconv.decodeStream('win1251'); + req.pipe(converterStream); + + converterStream.on('data', function(str) { + console.log(str); // Do something with decoded strings, chunk-by-chunk. + }); +}); + +// Convert encoding streaming example +fs.createReadStream('file-in-win1251.txt') + .pipe(iconv.decodeStream('win1251')) + .pipe(iconv.encodeStream('ucs2')) + .pipe(fs.createWriteStream('file-in-ucs2.txt')); + +// Sugar: all encode/decode streams have .collect(cb) method to accumulate data. +http.createServer(function(req, res) { + req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) { + assert(typeof body == 'string'); + console.log(body); // full request body string + }); +}); +``` + +### [Deprecated] Extend Node.js own encodings +> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility). + +```javascript +// After this call all Node basic primitives will understand iconv-lite encodings. +iconv.extendNodeEncodings(); + +// Examples: +buf = new Buffer(str, 'win1251'); +buf.write(str, 'gbk'); +str = buf.toString('latin1'); +assert(Buffer.isEncoding('iso-8859-15')); +Buffer.byteLength(str, 'us-ascii'); + +http.createServer(function(req, res) { + req.setEncoding('big5'); + req.collect(function(err, body) { + console.log(body); + }); +}); + +fs.createReadStream("file.txt", "shift_jis"); + +// External modules are also supported (if they use Node primitives, which they probably do). +request = require('request'); +request({ + url: "http://github.com/", + encoding: "cp932" +}); + +// To remove extensions +iconv.undoExtendNodeEncodings(); +``` + +## Supported encodings + + * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex. + * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap. + * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family, + IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library. + Aliases like 'latin1', 'us-ascii' also supported. + * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP. + +See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings). + +Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors! + +Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors! + + +## Encoding/decoding speed + +Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0). +Note: your results may vary, so please always check on your hardware. + + operation iconv@2.1.4 iconv-lite@0.4.7 + ---------------------------------------------------------- + encode('win1251') ~96 Mb/s ~320 Mb/s + decode('win1251') ~95 Mb/s ~246 Mb/s + +## BOM handling + + * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options + (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`). + A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found. + * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module. + * Encoding: No BOM added, unless overridden by `addBOM: true` option. + +## UTF-16 Encodings + +This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be +smart about endianness in the following ways: + * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be + overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`. + * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override. + +## Other notes + +When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding). +Untranslatable characters are set to � or ?. No transliteration is currently supported. +Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77). + +## Testing + +```bash +$ git clone git@github.com:ashtuchkin/iconv-lite.git +$ cd iconv-lite +$ npm install +$ npm test + +$ # To view performance: +$ node test/performance.js + +$ # To view test coverage: +$ npm run coverage +$ open coverage/lcov-report/index.html +``` diff --git a/node_modules/iconv-lite/encodings/dbcs-codec.js b/node_modules/iconv-lite/encodings/dbcs-codec.js new file mode 100644 index 0000000..1fe3e16 --- /dev/null +++ b/node_modules/iconv-lite/encodings/dbcs-codec.js @@ -0,0 +1,555 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Multibyte codec. In this scheme, a character is represented by 1 or more bytes. +// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences. +// To save memory and loading time, we read table files only when requested. + +exports._dbcs = DBCSCodec; + +var UNASSIGNED = -1, + GB18030_CODE = -2, + SEQ_START = -10, + NODE_START = -1000, + UNASSIGNED_NODE = new Array(0x100), + DEF_CHAR = -1; + +for (var i = 0; i < 0x100; i++) + UNASSIGNED_NODE[i] = UNASSIGNED; + + +// Class DBCSCodec reads and initializes mapping tables. +function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) + throw new Error("DBCS codec is called without the data.") + if (!codecOptions.table) + throw new Error("Encoding '" + this.encodingName + "' has no data."); + + // Load tables. + var mappingTable = codecOptions.table(); + + + // Decode tables: MBCS -> Unicode. + + // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256. + // Trie root is decodeTables[0]. + // Values: >= 0 -> unicode character code. can be > 0xFFFF + // == UNASSIGNED -> unknown/unassigned sequence. + // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence. + // <= NODE_START -> index of the next node in our trie to process next byte. + // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq. + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node. + + // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. + this.decodeTableSeq = []; + + // Actual mapping tables consist of chunks. Use them to fill up decode tables. + for (var i = 0; i < mappingTable.length; i++) + this._addDecodeChunk(mappingTable[i]); + + this.defaultCharUnicode = iconv.defaultCharUnicode; + + + // Encode tables: Unicode -> DBCS. + + // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance. + // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null. + // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.). + // == UNASSIGNED -> no conversion found. Output a default char. + // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence. + this.encodeTable = []; + + // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of + // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key + // means end of sequence (needed when one sequence is a strict subsequence of another). + // Objects are kept separately from encodeTable to increase performance. + this.encodeTableSeq = []; + + // Some chars can be decoded, but need not be encoded. + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) + for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) { + var val = codecOptions.encodeSkipVals[i]; + if (typeof val === 'number') + skipEncodeChars[val] = true; + else + for (var j = val.from; j <= val.to; j++) + skipEncodeChars[j] = true; + } + + // Use decode trie to recursively fill out encode tables. + this._fillEncodeTable(0, 0, skipEncodeChars); + + // Add more encoding pairs when needed. + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?']; + if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0); + + + // Load & create GB18030 tables when needed. + if (typeof codecOptions.gb18030 === 'function') { + this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges. + + // Add GB18030 decode tables. + var thirdByteNodeIdx = this.decodeTables.length; + var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); + + var fourthByteNodeIdx = this.decodeTables.length; + var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); + + for (var i = 0x81; i <= 0xFE; i++) { + var secondByteNodeIdx = NODE_START - this.decodeTables[0][i]; + var secondByteNode = this.decodeTables[secondByteNodeIdx]; + for (var j = 0x30; j <= 0x39; j++) + secondByteNode[j] = NODE_START - thirdByteNodeIdx; + } + for (var i = 0x81; i <= 0xFE; i++) + thirdByteNode[i] = NODE_START - fourthByteNodeIdx; + for (var i = 0x30; i <= 0x39; i++) + fourthByteNode[i] = GB18030_CODE + } +} + +DBCSCodec.prototype.encoder = DBCSEncoder; +DBCSCodec.prototype.decoder = DBCSDecoder; + +// Decoder helpers +DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (; addr > 0; addr >>= 8) + bytes.push(addr & 0xFF); + if (bytes.length == 0) + bytes.push(0); + + var node = this.decodeTables[0]; + for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie. + var val = node[bytes[i]]; + + if (val == UNASSIGNED) { // Create new node. + node[bytes[i]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } + else if (val <= NODE_START) { // Existing node. + node = this.decodeTables[NODE_START - val]; + } + else + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + return node; +} + + +DBCSCodec.prototype._addDecodeChunk = function(chunk) { + // First element of chunk is the hex mbcs code where we start. + var curAddr = parseInt(chunk[0], 16); + + // Choose the decoding node where we'll write our chars. + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 0xFF; + + // Write all other elements of the chunk to the table. + for (var k = 1; k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { // String, write as-is. + for (var l = 0; l < part.length;) { + var code = part.charCodeAt(l++); + if (0xD800 <= code && code < 0xDC00) { // Decode surrogate + var codeTrail = part.charCodeAt(l++); + if (0xDC00 <= codeTrail && codeTrail < 0xE000) + writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00); + else + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } + else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used) + var len = 0xFFF - code + 2; + var seq = []; + for (var m = 0; m < len; m++) + seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq. + + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } + else + writeTable[curAddr++] = code; // Basic char + } + } + else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character. + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0; l < part; l++) + writeTable[curAddr++] = charCode++; + } + else + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + if (curAddr > 0xFF) + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); +} + +// Encoder helpers +DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; // This could be > 0xFF because of astral characters. + if (this.encodeTable[high] === undefined) + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand. + return this.encodeTable[high]; +} + +DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 0xFF; + if (bucket[low] <= SEQ_START) + this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it. + else if (bucket[low] == UNASSIGNED) + bucket[low] = dbcsCode; +} + +DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + + // Get the root of character tree according to first character of the sequence. + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 0xFF; + + var node; + if (bucket[low] <= SEQ_START) { + // There's already a sequence with - use it. + node = this.encodeTableSeq[SEQ_START-bucket[low]]; + } + else { + // There was no sequence object - allocate a new one. + node = {}; + if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence. + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + + // Traverse the character tree, allocating new nodes as needed. + for (var j = 1; j < seq.length-1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === 'object') + node = oldVal; + else { + node = node[uCode] = {} + if (oldVal !== undefined) + node[DEF_CHAR] = oldVal + } + } + + // Set the leaf to given dbcsCode. + uCode = seq[seq.length-1]; + node[uCode] = dbcsCode; +} + +DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + for (var i = 0; i < 0x100; i++) { + var uCode = node[i]; + var mbCode = prefix + i; + if (skipEncodeChars[mbCode]) + continue; + + if (uCode >= 0) + this._setEncodeChar(uCode, mbCode); + else if (uCode <= NODE_START) + this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); + else if (uCode <= SEQ_START) + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + } +} + + + +// == Encoder ================================================================== + +function DBCSEncoder(options, codec) { + // Encoder state + this.leadSurrogate = -1; + this.seqObj = undefined; + + // Static data + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; +} + +DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)), + leadSurrogate = this.leadSurrogate, + seqObj = this.seqObj, nextChar = -1, + i = 0, j = 0; + + while (true) { + // 0. Get next character. + if (nextChar === -1) { + if (i == str.length) break; + var uCode = str.charCodeAt(i++); + } + else { + var uCode = nextChar; + nextChar = -1; + } + + // 1. Handle surrogates. + if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates. + if (uCode < 0xDC00) { // We've got lead surrogate. + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + // Double lead surrogate found. + uCode = UNASSIGNED; + } + } else { // We've got trail surrogate. + if (leadSurrogate !== -1) { + uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00); + leadSurrogate = -1; + } else { + // Incomplete surrogate pair - only trail surrogate found. + uCode = UNASSIGNED; + } + + } + } + else if (leadSurrogate !== -1) { + // Incomplete surrogate pair - only lead surrogate found. + nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char. + leadSurrogate = -1; + } + + // 2. Convert uCode character. + var dbcsCode = UNASSIGNED; + if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence + var resCode = seqObj[uCode]; + if (typeof resCode === 'object') { // Sequence continues. + seqObj = resCode; + continue; + + } else if (typeof resCode == 'number') { // Sequence finished. Write it. + dbcsCode = resCode; + + } else if (resCode == undefined) { // Current character is not part of the sequence. + + // Try default character for this sequence + resCode = seqObj[DEF_CHAR]; + if (resCode !== undefined) { + dbcsCode = resCode; // Found. Write it. + nextChar = uCode; // Current character will be written too in the next iteration. + + } else { + // TODO: What if we have no default? (resCode == undefined) + // Then, we should write first char of the sequence as-is and try the rest recursively. + // Didn't do it for now because no encoding has this situation yet. + // Currently, just skip the sequence and write current char. + } + } + seqObj = undefined; + } + else if (uCode >= 0) { // Regular character + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== undefined) + dbcsCode = subtable[uCode & 0xFF]; + + if (dbcsCode <= SEQ_START) { // Sequence start + seqObj = this.encodeTableSeq[SEQ_START-dbcsCode]; + continue; + } + + if (dbcsCode == UNASSIGNED && this.gb18030) { + // Use GB18030 algorithm to find character(s) to write. + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600; + newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260; + newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10; + newBuf[j++] = 0x30 + dbcsCode; + continue; + } + } + } + + // 3. Write dbcsCode character. + if (dbcsCode === UNASSIGNED) + dbcsCode = this.defaultCharSingleByte; + + if (dbcsCode < 0x100) { + newBuf[j++] = dbcsCode; + } + else if (dbcsCode < 0x10000) { + newBuf[j++] = dbcsCode >> 8; // high byte + newBuf[j++] = dbcsCode & 0xFF; // low byte + } + else { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = (dbcsCode >> 8) & 0xFF; + newBuf[j++] = dbcsCode & 0xFF; + } + } + + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); +} + +DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === undefined) + return; // All clean. Most often case. + + var newBuf = Buffer.alloc(10), j = 0; + + if (this.seqObj) { // We're in the sequence. + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== undefined) { // Write beginning of the sequence. + if (dbcsCode < 0x100) { + newBuf[j++] = dbcsCode; + } + else { + newBuf[j++] = dbcsCode >> 8; // high byte + newBuf[j++] = dbcsCode & 0xFF; // low byte + } + } else { + // See todo above. + } + this.seqObj = undefined; + } + + if (this.leadSurrogate !== -1) { + // Incomplete surrogate pair - only lead surrogate found. + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + + return newBuf.slice(0, j); +} + +// Export for testing +DBCSEncoder.prototype.findIdx = findIdx; + + +// == Decoder ================================================================== + +function DBCSDecoder(options, codec) { + // Decoder state + this.nodeIdx = 0; + this.prevBuf = Buffer.alloc(0); + + // Static data + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; +} + +DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer.alloc(buf.length*2), + nodeIdx = this.nodeIdx, + prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, + seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence. + uCode; + + if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later. + prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]); + + for (var i = 0, j = 0; i < buf.length; i++) { + var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset]; + + // Lookup in current trie node. + var uCode = this.decodeTables[nodeIdx][curByte]; + + if (uCode >= 0) { + // Normal character, just use it. + } + else if (uCode === UNASSIGNED) { // Unknown char. + // TODO: Callback with seq. + //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); + i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle). + uCode = this.defaultCharUnicode.charCodeAt(0); + } + else if (uCode === GB18030_CODE) { + var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); + var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30); + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } + else if (uCode <= NODE_START) { // Go to next trie node. + nodeIdx = NODE_START - uCode; + continue; + } + else if (uCode <= SEQ_START) { // Output a sequence of chars. + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0; k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 0xFF; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length-1]; + } + else + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + + // Write the character to buffer, handling higher planes using surrogate pair. + if (uCode > 0xFFFF) { + uCode -= 0x10000; + var uCodeLead = 0xD800 + Math.floor(uCode / 0x400); + newBuf[j++] = uCodeLead & 0xFF; + newBuf[j++] = uCodeLead >> 8; + + uCode = 0xDC00 + uCode % 0x400; + } + newBuf[j++] = uCode & 0xFF; + newBuf[j++] = uCode >> 8; + + // Reset trie node. + nodeIdx = 0; seqStart = i+1; + } + + this.nodeIdx = nodeIdx; + this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); + return newBuf.slice(0, j).toString('ucs2'); +} + +DBCSDecoder.prototype.end = function() { + var ret = ''; + + // Try to parse all remaining chars. + while (this.prevBuf.length > 0) { + // Skip 1 character in the buffer. + ret += this.defaultCharUnicode; + var buf = this.prevBuf.slice(1); + + // Parse remaining as usual. + this.prevBuf = Buffer.alloc(0); + this.nodeIdx = 0; + if (buf.length > 0) + ret += this.write(buf); + } + + this.nodeIdx = 0; + return ret; +} + +// Binary search for GB18030. Returns largest i such that table[i] <= val. +function findIdx(table, val) { + if (table[0] > val) + return -1; + + var l = 0, r = table.length; + while (l < r-1) { // always table[l] <= val < table[r] + var mid = l + Math.floor((r-l+1)/2); + if (table[mid] <= val) + l = mid; + else + r = mid; + } + return l; +} + diff --git a/node_modules/iconv-lite/encodings/dbcs-data.js b/node_modules/iconv-lite/encodings/dbcs-data.js new file mode 100644 index 0000000..4b61914 --- /dev/null +++ b/node_modules/iconv-lite/encodings/dbcs-data.js @@ -0,0 +1,176 @@ +"use strict"; + +// Description of supported double byte encodings and aliases. +// Tables are not require()-d until they are needed to speed up library load. +// require()-s are direct to support Browserify. + +module.exports = { + + // == Japanese/ShiftJIS ==================================================== + // All japanese encodings are based on JIS X set of standards: + // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF. + // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. + // Has several variations in 1978, 1983, 1990 and 1997. + // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead. + // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233. + // 2 planes, first is superset of 0208, second - revised 0212. + // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx) + + // Byte encodings are: + // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte + // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC. + // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI. + // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes. + // 0x00-0x7F - lower part of 0201 + // 0x8E, 0xA1-0xDF - upper part of 0201 + // (0xA1-0xFE)x2 - 0208 plane (94x94). + // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94). + // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon. + // Used as-is in ISO2022 family. + // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, + // 0201-1976 Roman, 0208-1978, 0208-1983. + // * ISO2022-JP-1: Adds esc seq for 0212-1990. + // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7. + // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2. + // * ISO2022-JP-2004: Adds 0213-2004 Plane 1. + // + // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes. + // + // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html + + 'shiftjis': { + type: '_dbcs', + table: function() { return require('./tables/shiftjis.json') }, + encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, + encodeSkipVals: [{from: 0xED40, to: 0xF940}], + }, + 'csshiftjis': 'shiftjis', + 'mskanji': 'shiftjis', + 'sjis': 'shiftjis', + 'windows31j': 'shiftjis', + 'ms31j': 'shiftjis', + 'xsjis': 'shiftjis', + 'windows932': 'shiftjis', + 'ms932': 'shiftjis', + '932': 'shiftjis', + 'cp932': 'shiftjis', + + 'eucjp': { + type: '_dbcs', + table: function() { return require('./tables/eucjp.json') }, + encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, + }, + + // TODO: KDDI extension to Shift_JIS + // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes. + // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars. + + + // == Chinese/GBK ========================================================== + // http://en.wikipedia.org/wiki/GBK + // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder + + // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936 + 'gb2312': 'cp936', + 'gb231280': 'cp936', + 'gb23121980': 'cp936', + 'csgb2312': 'cp936', + 'csiso58gb231280': 'cp936', + 'euccn': 'cp936', + + // Microsoft's CP936 is a subset and approximation of GBK. + 'windows936': 'cp936', + 'ms936': 'cp936', + '936': 'cp936', + 'cp936': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json') }, + }, + + // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. + 'gbk': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, + }, + 'xgbk': 'gbk', + 'isoir58': 'gbk', + + // GB18030 is an algorithmic extension of GBK. + // Main source: https://www.w3.org/TR/encoding/#gbk-encoder + // http://icu-project.org/docs/papers/gb18030.html + // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml + // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0 + 'gb18030': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, + gb18030: function() { return require('./tables/gb18030-ranges.json') }, + encodeSkipVals: [0x80], + encodeAdd: {'€': 0xA2E3}, + }, + + 'chinese': 'gb18030', + + + // == Korean =============================================================== + // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same. + 'windows949': 'cp949', + 'ms949': 'cp949', + '949': 'cp949', + 'cp949': { + type: '_dbcs', + table: function() { return require('./tables/cp949.json') }, + }, + + 'cseuckr': 'cp949', + 'csksc56011987': 'cp949', + 'euckr': 'cp949', + 'isoir149': 'cp949', + 'korean': 'cp949', + 'ksc56011987': 'cp949', + 'ksc56011989': 'cp949', + 'ksc5601': 'cp949', + + + // == Big5/Taiwan/Hong Kong ================================================ + // There are lots of tables for Big5 and cp950. Please see the following links for history: + // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html + // Variations, in roughly number of defined chars: + // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT + // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/ + // * Big5-2003 (Taiwan standard) almost superset of cp950. + // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers. + // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. + // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years. + // Plus, it has 4 combining sequences. + // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299 + // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way. + // Implementations are not consistent within browsers; sometimes labeled as just big5. + // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied. + // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31 + // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s. + // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt + // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt + // + // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder + // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong. + + 'windows950': 'cp950', + 'ms950': 'cp950', + '950': 'cp950', + 'cp950': { + type: '_dbcs', + table: function() { return require('./tables/cp950.json') }, + }, + + // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus. + 'big5': 'big5hkscs', + 'big5hkscs': { + type: '_dbcs', + table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) }, + encodeSkipVals: [0xa2cc], + }, + + 'cnbig5': 'big5hkscs', + 'csbig5': 'big5hkscs', + 'xxbig5': 'big5hkscs', +}; diff --git a/node_modules/iconv-lite/encodings/index.js b/node_modules/iconv-lite/encodings/index.js new file mode 100644 index 0000000..e304003 --- /dev/null +++ b/node_modules/iconv-lite/encodings/index.js @@ -0,0 +1,22 @@ +"use strict"; + +// Update this array if you add/rename/remove files in this directory. +// We support Browserify by skipping automatic module discovery and requiring modules directly. +var modules = [ + require("./internal"), + require("./utf16"), + require("./utf7"), + require("./sbcs-codec"), + require("./sbcs-data"), + require("./sbcs-data-generated"), + require("./dbcs-codec"), + require("./dbcs-data"), +]; + +// Put all encoding/alias/codec definitions to single object and export it. +for (var i = 0; i < modules.length; i++) { + var module = modules[i]; + for (var enc in module) + if (Object.prototype.hasOwnProperty.call(module, enc)) + exports[enc] = module[enc]; +} diff --git a/node_modules/iconv-lite/encodings/internal.js b/node_modules/iconv-lite/encodings/internal.js new file mode 100644 index 0000000..05ce38b --- /dev/null +++ b/node_modules/iconv-lite/encodings/internal.js @@ -0,0 +1,188 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Export Node.js internal encodings. + +module.exports = { + // Encodings + utf8: { type: "_internal", bomAware: true}, + cesu8: { type: "_internal", bomAware: true}, + unicode11utf8: "utf8", + + ucs2: { type: "_internal", bomAware: true}, + utf16le: "ucs2", + + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + + // Codec. + _internal: InternalCodec, +}; + +//------------------------------------------------------------------------------ + +function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + + if (this.enc === "base64") + this.encoder = InternalEncoderBase64; + else if (this.enc === "cesu8") { + this.enc = "utf8"; // Use utf8 for decoding. + this.encoder = InternalEncoderCesu8; + + // Add decoder for versions of Node not supporting CESU-8 + if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } +} + +InternalCodec.prototype.encoder = InternalEncoder; +InternalCodec.prototype.decoder = InternalDecoder; + +//------------------------------------------------------------------------------ + +// We use node.js internal decoder. Its signature is the same as ours. +var StringDecoder = require('string_decoder').StringDecoder; + +if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method. + StringDecoder.prototype.end = function() {}; + + +function InternalDecoder(options, codec) { + StringDecoder.call(this, codec.enc); +} + +InternalDecoder.prototype = StringDecoder.prototype; + + +//------------------------------------------------------------------------------ +// Encoder is mostly trivial + +function InternalEncoder(options, codec) { + this.enc = codec.enc; +} + +InternalEncoder.prototype.write = function(str) { + return Buffer.from(str, this.enc); +} + +InternalEncoder.prototype.end = function() { +} + + +//------------------------------------------------------------------------------ +// Except base64 encoder, which must keep its state. + +function InternalEncoderBase64(options, codec) { + this.prevStr = ''; +} + +InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - (str.length % 4); + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + + return Buffer.from(str, "base64"); +} + +InternalEncoderBase64.prototype.end = function() { + return Buffer.from(this.prevStr, "base64"); +} + + +//------------------------------------------------------------------------------ +// CESU-8 encoder is also special. + +function InternalEncoderCesu8(options, codec) { +} + +InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer.alloc(str.length * 3), bufIdx = 0; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + // Naive implementation, but it works because CESU-8 is especially easy + // to convert from UTF-16 (which all JS strings are encoded in). + if (charCode < 0x80) + buf[bufIdx++] = charCode; + else if (charCode < 0x800) { + buf[bufIdx++] = 0xC0 + (charCode >>> 6); + buf[bufIdx++] = 0x80 + (charCode & 0x3f); + } + else { // charCode will always be < 0x10000 in javascript. + buf[bufIdx++] = 0xE0 + (charCode >>> 12); + buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f); + buf[bufIdx++] = 0x80 + (charCode & 0x3f); + } + } + return buf.slice(0, bufIdx); +} + +InternalEncoderCesu8.prototype.end = function() { +} + +//------------------------------------------------------------------------------ +// CESU-8 decoder is not implemented in Node v4.0+ + +function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; +} + +InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, + res = ''; + for (var i = 0; i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 0xC0) !== 0x80) { // Leading byte + if (contBytes > 0) { // Previous code is invalid + res += this.defaultCharUnicode; + contBytes = 0; + } + + if (curByte < 0x80) { // Single-byte code + res += String.fromCharCode(curByte); + } else if (curByte < 0xE0) { // Two-byte code + acc = curByte & 0x1F; + contBytes = 1; accBytes = 1; + } else if (curByte < 0xF0) { // Three-byte code + acc = curByte & 0x0F; + contBytes = 2; accBytes = 1; + } else { // Four or more are not supported for CESU-8. + res += this.defaultCharUnicode; + } + } else { // Continuation byte + if (contBytes > 0) { // We're waiting for it. + acc = (acc << 6) | (curByte & 0x3f); + contBytes--; accBytes++; + if (contBytes === 0) { + // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80) + if (accBytes === 2 && acc < 0x80 && acc > 0) + res += this.defaultCharUnicode; + else if (accBytes === 3 && acc < 0x800) + res += this.defaultCharUnicode; + else + // Actually add character. + res += String.fromCharCode(acc); + } + } else { // Unexpected continuation byte + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes; + return res; +} + +InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) + res += this.defaultCharUnicode; + return res; +} diff --git a/node_modules/iconv-lite/encodings/sbcs-codec.js b/node_modules/iconv-lite/encodings/sbcs-codec.js new file mode 100644 index 0000000..abac5ff --- /dev/null +++ b/node_modules/iconv-lite/encodings/sbcs-codec.js @@ -0,0 +1,72 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that +// correspond to encoded bytes (if 128 - then lower half is ASCII). + +exports._sbcs = SBCSCodec; +function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) + throw new Error("SBCS codec is called without the data.") + + // Prepare char buffer for decoding. + if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) + throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)"); + + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0; i < 128; i++) + asciiString += String.fromCharCode(i); + codecOptions.chars = asciiString + codecOptions.chars; + } + + this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2'); + + // Encoding buffer. + var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + + for (var i = 0; i < codecOptions.chars.length; i++) + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + + this.encodeBuf = encodeBuf; +} + +SBCSCodec.prototype.encoder = SBCSEncoder; +SBCSCodec.prototype.decoder = SBCSDecoder; + + +function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; +} + +SBCSEncoder.prototype.write = function(str) { + var buf = Buffer.alloc(str.length); + for (var i = 0; i < str.length; i++) + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + + return buf; +} + +SBCSEncoder.prototype.end = function() { +} + + +function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; +} + +SBCSDecoder.prototype.write = function(buf) { + // Strings are immutable in JS -> we use ucs2 buffer to speed up computations. + var decodeBuf = this.decodeBuf; + var newBuf = Buffer.alloc(buf.length*2); + var idx1 = 0, idx2 = 0; + for (var i = 0; i < buf.length; i++) { + idx1 = buf[i]*2; idx2 = i*2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2+1] = decodeBuf[idx1+1]; + } + return newBuf.toString('ucs2'); +} + +SBCSDecoder.prototype.end = function() { +} diff --git a/node_modules/iconv-lite/encodings/sbcs-data-generated.js b/node_modules/iconv-lite/encodings/sbcs-data-generated.js new file mode 100644 index 0000000..9b48236 --- /dev/null +++ b/node_modules/iconv-lite/encodings/sbcs-data-generated.js @@ -0,0 +1,451 @@ +"use strict"; + +// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script. +module.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + "windows874": { + "type": "_sbcs", + "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" + }, + "win874": "windows874", + "cp874": "windows874", + "windows1250": { + "type": "_sbcs", + "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙" + }, + "win1250": "windows1250", + "cp1250": "windows1250", + "windows1251": { + "type": "_sbcs", + "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" + }, + "win1251": "windows1251", + "cp1251": "windows1251", + "windows1252": { + "type": "_sbcs", + "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" + }, + "win1252": "windows1252", + "cp1252": "windows1252", + "windows1253": { + "type": "_sbcs", + "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�" + }, + "win1253": "windows1253", + "cp1253": "windows1253", + "windows1254": { + "type": "_sbcs", + "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ" + }, + "win1254": "windows1254", + "cp1254": "windows1254", + "windows1255": { + "type": "_sbcs", + "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�" + }, + "win1255": "windows1255", + "cp1255": "windows1255", + "windows1256": { + "type": "_sbcs", + "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے" + }, + "win1256": "windows1256", + "cp1256": "windows1256", + "windows1257": { + "type": "_sbcs", + "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙" + }, + "win1257": "windows1257", + "cp1257": "windows1257", + "windows1258": { + "type": "_sbcs", + "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" + }, + "win1258": "windows1258", + "cp1258": "windows1258", + "iso88591": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" + }, + "cp28591": "iso88591", + "iso88592": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙" + }, + "cp28592": "iso88592", + "iso88593": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�ݰħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙" + }, + "cp28593": "iso88593", + "iso88594": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙" + }, + "cp28594": "iso88594", + "iso88595": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ" + }, + "cp28595": "iso88595", + "iso88596": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������" + }, + "cp28596": "iso88596", + "iso88597": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�" + }, + "cp28597": "iso88597", + "iso88598": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�" + }, + "cp28598": "iso88598", + "iso88599": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ" + }, + "cp28599": "iso88599", + "iso885910": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ" + }, + "cp28600": "iso885910", + "iso885911": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" + }, + "cp28601": "iso885911", + "iso885913": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’" + }, + "cp28603": "iso885913", + "iso885914": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ" + }, + "cp28604": "iso885914", + "iso885915": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" + }, + "cp28605": "iso885915", + "iso885916": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Чš©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ" + }, + "cp28606": "iso885916", + "cp437": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm437": "cp437", + "csibm437": "cp437", + "cp737": { + "type": "_sbcs", + "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ " + }, + "ibm737": "cp737", + "csibm737": "cp737", + "cp775": { + "type": "_sbcs", + "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ " + }, + "ibm775": "cp775", + "csibm775": "cp775", + "cp850": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ " + }, + "ibm850": "cp850", + "csibm850": "cp850", + "cp852": { + "type": "_sbcs", + "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ " + }, + "ibm852": "cp852", + "csibm852": "cp852", + "cp855": { + "type": "_sbcs", + "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ " + }, + "ibm855": "cp855", + "csibm855": "cp855", + "cp856": { + "type": "_sbcs", + "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ " + }, + "ibm856": "cp856", + "csibm856": "cp856", + "cp857": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ " + }, + "ibm857": "cp857", + "csibm857": "cp857", + "cp858": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ " + }, + "ibm858": "cp858", + "csibm858": "cp858", + "cp860": { + "type": "_sbcs", + "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm860": "cp860", + "csibm860": "cp860", + "cp861": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm861": "cp861", + "csibm861": "cp861", + "cp862": { + "type": "_sbcs", + "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm862": "cp862", + "csibm862": "cp862", + "cp863": { + "type": "_sbcs", + "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm863": "cp863", + "csibm863": "cp863", + "cp864": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�" + }, + "ibm864": "cp864", + "csibm864": "cp864", + "cp865": { + "type": "_sbcs", + "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + "ibm865": "cp865", + "csibm865": "cp865", + "cp866": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ " + }, + "ibm866": "cp866", + "csibm866": "cp866", + "cp869": { + "type": "_sbcs", + "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ " + }, + "ibm869": "cp869", + "csibm869": "cp869", + "cp922": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖרÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ" + }, + "ibm922": "cp922", + "csibm922": "cp922", + "cp1046": { + "type": "_sbcs", + "chars": "ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�" + }, + "ibm1046": "cp1046", + "csibm1046": "cp1046", + "cp1124": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ" + }, + "ibm1124": "cp1124", + "csibm1124": "cp1124", + "cp1125": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ " + }, + "ibm1125": "cp1125", + "csibm1125": "cp1125", + "cp1129": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" + }, + "ibm1129": "cp1129", + "csibm1129": "cp1129", + "cp1133": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�" + }, + "ibm1133": "cp1133", + "csibm1133": "cp1133", + "cp1161": { + "type": "_sbcs", + "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ " + }, + "ibm1161": "cp1161", + "csibm1161": "cp1161", + "cp1162": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" + }, + "ibm1162": "cp1162", + "csibm1162": "cp1162", + "cp1163": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ" + }, + "ibm1163": "cp1163", + "csibm1163": "cp1163", + "maccroatian": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ" + }, + "maccyrillic": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤" + }, + "macgreek": { + "type": "_sbcs", + "chars": "Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�" + }, + "maciceland": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" + }, + "macroman": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" + }, + "macromania": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" + }, + "macthai": { + "type": "_sbcs", + "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����" + }, + "macturkish": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ" + }, + "macukraine": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤" + }, + "koi8r": { + "type": "_sbcs", + "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" + }, + "koi8u": { + "type": "_sbcs", + "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" + }, + "koi8ru": { + "type": "_sbcs", + "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" + }, + "koi8t": { + "type": "_sbcs", + "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ" + }, + "armscii8": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�" + }, + "rk1048": { + "type": "_sbcs", + "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" + }, + "tcvn": { + "type": "_sbcs", + "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ" + }, + "georgianacademy": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ" + }, + "georgianps": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" + }, + "pt154": { + "type": "_sbcs", + "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя" + }, + "viscii": { + "type": "_sbcs", + "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ" + }, + "iso646cn": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������" + }, + "iso646jp": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������" + }, + "hproman8": { + "type": "_sbcs", + "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�" + }, + "macintosh": { + "type": "_sbcs", + "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ" + }, + "ascii": { + "type": "_sbcs", + "chars": "��������������������������������������������������������������������������������������������������������������������������������" + }, + "tis620": { + "type": "_sbcs", + "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����" + } +} \ No newline at end of file diff --git a/node_modules/iconv-lite/encodings/sbcs-data.js b/node_modules/iconv-lite/encodings/sbcs-data.js new file mode 100644 index 0000000..fdb81a3 --- /dev/null +++ b/node_modules/iconv-lite/encodings/sbcs-data.js @@ -0,0 +1,174 @@ +"use strict"; + +// Manually added data to be used by sbcs codec in addition to generated one. + +module.exports = { + // Not supported by iconv, not sure why. + "10029": "maccenteuro", + "maccenteuro": { + "type": "_sbcs", + "chars": "ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ" + }, + + "808": "cp808", + "ibm808": "cp808", + "cp808": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ " + }, + + "mik": { + "type": "_sbcs", + "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ " + }, + + // Aliases of generated encodings. + "ascii8bit": "ascii", + "usascii": "ascii", + "ansix34": "ascii", + "ansix341968": "ascii", + "ansix341986": "ascii", + "csascii": "ascii", + "cp367": "ascii", + "ibm367": "ascii", + "isoir6": "ascii", + "iso646us": "ascii", + "iso646irv": "ascii", + "us": "ascii", + + "latin1": "iso88591", + "latin2": "iso88592", + "latin3": "iso88593", + "latin4": "iso88594", + "latin5": "iso88599", + "latin6": "iso885910", + "latin7": "iso885913", + "latin8": "iso885914", + "latin9": "iso885915", + "latin10": "iso885916", + + "csisolatin1": "iso88591", + "csisolatin2": "iso88592", + "csisolatin3": "iso88593", + "csisolatin4": "iso88594", + "csisolatincyrillic": "iso88595", + "csisolatinarabic": "iso88596", + "csisolatingreek" : "iso88597", + "csisolatinhebrew": "iso88598", + "csisolatin5": "iso88599", + "csisolatin6": "iso885910", + + "l1": "iso88591", + "l2": "iso88592", + "l3": "iso88593", + "l4": "iso88594", + "l5": "iso88599", + "l6": "iso885910", + "l7": "iso885913", + "l8": "iso885914", + "l9": "iso885915", + "l10": "iso885916", + + "isoir14": "iso646jp", + "isoir57": "iso646cn", + "isoir100": "iso88591", + "isoir101": "iso88592", + "isoir109": "iso88593", + "isoir110": "iso88594", + "isoir144": "iso88595", + "isoir127": "iso88596", + "isoir126": "iso88597", + "isoir138": "iso88598", + "isoir148": "iso88599", + "isoir157": "iso885910", + "isoir166": "tis620", + "isoir179": "iso885913", + "isoir199": "iso885914", + "isoir203": "iso885915", + "isoir226": "iso885916", + + "cp819": "iso88591", + "ibm819": "iso88591", + + "cyrillic": "iso88595", + + "arabic": "iso88596", + "arabic8": "iso88596", + "ecma114": "iso88596", + "asmo708": "iso88596", + + "greek" : "iso88597", + "greek8" : "iso88597", + "ecma118" : "iso88597", + "elot928" : "iso88597", + + "hebrew": "iso88598", + "hebrew8": "iso88598", + + "turkish": "iso88599", + "turkish8": "iso88599", + + "thai": "iso885911", + "thai8": "iso885911", + + "celtic": "iso885914", + "celtic8": "iso885914", + "isoceltic": "iso885914", + + "tis6200": "tis620", + "tis62025291": "tis620", + "tis62025330": "tis620", + + "10000": "macroman", + "10006": "macgreek", + "10007": "maccyrillic", + "10079": "maciceland", + "10081": "macturkish", + + "cspc8codepage437": "cp437", + "cspc775baltic": "cp775", + "cspc850multilingual": "cp850", + "cspcp852": "cp852", + "cspc862latinhebrew": "cp862", + "cpgr": "cp869", + + "msee": "cp1250", + "mscyrl": "cp1251", + "msansi": "cp1252", + "msgreek": "cp1253", + "msturk": "cp1254", + "mshebr": "cp1255", + "msarab": "cp1256", + "winbaltrim": "cp1257", + + "cp20866": "koi8r", + "20866": "koi8r", + "ibm878": "koi8r", + "cskoi8r": "koi8r", + + "cp21866": "koi8u", + "21866": "koi8u", + "ibm1168": "koi8u", + + "strk10482002": "rk1048", + + "tcvn5712": "tcvn", + "tcvn57121": "tcvn", + + "gb198880": "iso646cn", + "cn": "iso646cn", + + "csiso14jisc6220ro": "iso646jp", + "jisc62201969ro": "iso646jp", + "jp": "iso646jp", + + "cshproman8": "hproman8", + "r8": "hproman8", + "roman8": "hproman8", + "xroman8": "hproman8", + "ibm1051": "hproman8", + + "mac": "macintosh", + "csmacintosh": "macintosh", +}; + diff --git a/node_modules/iconv-lite/encodings/tables/big5-added.json b/node_modules/iconv-lite/encodings/tables/big5-added.json new file mode 100644 index 0000000..3c3d3c2 --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/big5-added.json @@ -0,0 +1,122 @@ +[ +["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"], +["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"], +["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"], +["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"], +["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"], +["8940","𪎩𡅅"], +["8943","攊"], +["8946","丽滝鵎釟"], +["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"], +["89a1","琑糼緍楆竉刧"], +["89ab","醌碸酞肼"], +["89b0","贋胶𠧧"], +["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"], +["89c1","溚舾甙"], +["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"], +["8a40","𧶄唥"], +["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"], +["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"], +["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"], +["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"], +["8aac","䠋𠆩㿺塳𢶍"], +["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"], +["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"], +["8ac9","𪘁𠸉𢫏𢳉"], +["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"], +["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"], +["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"], +["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"], +["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"], +["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"], +["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"], +["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"], +["8ca1","𣏹椙橃𣱣泿"], +["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"], +["8cc9","顨杫䉶圽"], +["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"], +["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"], +["8d40","𠮟"], +["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"], +["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"], +["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"], +["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"], +["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"], +["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"], +["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"], +["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"], +["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"], +["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"], +["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"], +["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"], +["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"], +["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"], +["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"], +["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"], +["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"], +["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"], +["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"], +["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"], +["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"], +["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"], +["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"], +["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"], +["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"], +["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"], +["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"], +["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"], +["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"], +["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"], +["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"], +["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"], +["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"], +["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"], +["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"], +["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"], +["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"], +["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"], +["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"], +["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"], +["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"], +["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"], +["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"], +["9fae","酙隁酜"], +["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"], +["9fc1","𤤙盖鮝个𠳔莾衂"], +["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"], +["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"], +["9fe7","毺蠘罸"], +["9feb","嘠𪙊蹷齓"], +["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"], +["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"], +["a055","𡠻𦸅"], +["a058","詾𢔛"], +["a05b","惽癧髗鵄鍮鮏蟵"], +["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"], +["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"], +["a0a1","嵗𨯂迚𨸹"], +["a0a6","僙𡵆礆匲阸𠼻䁥"], +["a0ae","矾"], +["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"], +["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"], +["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"], +["a3c0","␀",31,"␡"], +["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23], +["c740","す",58,"ァアィイ"], +["c7a1","ゥ",81,"А",5,"ЁЖ",4], +["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"], +["c8a1","龰冈龱𧘇"], +["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"], +["c8f5","ʃɐɛɔɵœøŋʊɪ"], +["f9fe","■"], +["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"], +["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"], +["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"], +["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"], +["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"], +["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"], +["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"], +["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"], +["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"], +["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"] +] diff --git a/node_modules/iconv-lite/encodings/tables/cp936.json b/node_modules/iconv-lite/encodings/tables/cp936.json new file mode 100644 index 0000000..49ddb9a --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/cp936.json @@ -0,0 +1,264 @@ +[ +["0","\u0000",127,"€"], +["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"], +["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"], +["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11], +["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"], +["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"], +["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5], +["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"], +["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"], +["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"], +["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"], +["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"], +["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"], +["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4], +["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6], +["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"], +["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7], +["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"], +["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"], +["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"], +["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5], +["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"], +["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6], +["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"], +["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4], +["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4], +["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"], +["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"], +["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6], +["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"], +["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"], +["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"], +["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6], +["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"], +["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"], +["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"], +["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"], +["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"], +["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"], +["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8], +["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"], +["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"], +["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"], +["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"], +["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5], +["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"], +["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"], +["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"], +["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"], +["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5], +["9980","檧檨檪檭",114,"欥欦欨",6], +["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"], +["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"], +["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"], +["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"], +["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"], +["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5], +["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"], +["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"], +["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6], +["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"], +["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"], +["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4], +["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19], +["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"], +["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"], +["a2a1","ⅰ",9], +["a2b1","⒈",19,"⑴",19,"①",9], +["a2e5","㈠",9], +["a2f1","Ⅰ",11], +["a3a1","!"#¥%",88," ̄"], +["a4a1","ぁ",82], +["a5a1","ァ",85], +["a6a1","Α",16,"Σ",6], +["a6c1","α",16,"σ",6], +["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"], +["a6ee","︻︼︷︸︱"], +["a6f4","︳︴"], +["a7a1","А",5,"ЁЖ",25], +["a7d1","а",5,"ёж",25], +["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6], +["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"], +["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"], +["a8bd","ńň"], +["a8c0","ɡ"], +["a8c5","ㄅ",36], +["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"], +["a959","℡㈱"], +["a95c","‐"], +["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8], +["a980","﹢",4,"﹨﹩﹪﹫"], +["a996","〇"], +["a9a4","─",75], +["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8], +["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"], +["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4], +["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4], +["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11], +["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"], +["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12], +["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"], +["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"], +["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"], +["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"], +["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"], +["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"], +["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"], +["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"], +["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"], +["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4], +["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"], +["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"], +["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"], +["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9], +["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"], +["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"], +["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"], +["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"], +["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"], +["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16], +["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"], +["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"], +["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"], +["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"], +["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"], +["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"], +["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"], +["bb40","籃",9,"籎",36,"籵",5,"籾",9], +["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"], +["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5], +["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"], +["bd40","紷",54,"絯",7], +["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"], +["be40","継",12,"綧",6,"綯",42], +["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"], +["bf40","緻",62], +["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"], +["c040","繞",35,"纃",23,"纜纝纞"], +["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"], +["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"], +["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"], +["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"], +["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"], +["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"], +["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"], +["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"], +["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"], +["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"], +["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"], +["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"], +["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"], +["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"], +["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"], +["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"], +["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"], +["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"], +["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"], +["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10], +["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"], +["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"], +["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"], +["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"], +["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"], +["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"], +["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"], +["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"], +["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"], +["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9], +["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"], +["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"], +["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"], +["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5], +["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"], +["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"], +["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"], +["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6], +["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"], +["d440","訞",31,"訿",8,"詉",21], +["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"], +["d540","誁",7,"誋",7,"誔",46], +["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"], +["d640","諤",34,"謈",27], +["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"], +["d740","譆",31,"譧",4,"譭",25], +["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"], +["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"], +["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"], +["d940","貮",62], +["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"], +["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"], +["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"], +["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"], +["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"], +["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7], +["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"], +["dd40","軥",62], +["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"], +["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"], +["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"], +["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"], +["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"], +["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"], +["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"], +["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"], +["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"], +["e240","釦",62], +["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"], +["e340","鉆",45,"鉵",16], +["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"], +["e440","銨",5,"銯",24,"鋉",31], +["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"], +["e540","錊",51,"錿",10], +["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"], +["e640","鍬",34,"鎐",27], +["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"], +["e740","鏎",7,"鏗",54], +["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"], +["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"], +["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"], +["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42], +["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"], +["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"], +["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"], +["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"], +["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"], +["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7], +["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"], +["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46], +["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"], +["ee40","頏",62], +["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"], +["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4], +["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"], +["f040","餈",4,"餎餏餑",28,"餯",26], +["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"], +["f140","馌馎馚",10,"馦馧馩",47], +["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"], +["f240","駺",62], +["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"], +["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"], +["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"], +["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5], +["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"], +["f540","魼",62], +["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"], +["f640","鯜",62], +["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"], +["f740","鰼",62], +["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"], +["f840","鳣",62], +["f880","鴢",32], +["f940","鵃",62], +["f980","鶂",32], +["fa40","鶣",62], +["fa80","鷢",32], +["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"], +["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"], +["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6], +["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"], +["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38], +["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"], +["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"] +] diff --git a/node_modules/iconv-lite/encodings/tables/cp949.json b/node_modules/iconv-lite/encodings/tables/cp949.json new file mode 100644 index 0000000..2022a00 --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/cp949.json @@ -0,0 +1,273 @@ +[ +["0","\u0000",127], +["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"], +["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"], +["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"], +["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5], +["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"], +["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18], +["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7], +["8361","긝",18,"긲긳긵긶긹긻긼"], +["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8], +["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8], +["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18], +["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"], +["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4], +["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"], +["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"], +["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"], +["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10], +["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"], +["8741","놞",9,"놩",15], +["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"], +["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4], +["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4], +["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"], +["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"], +["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"], +["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"], +["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15], +["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"], +["8a61","둧",4,"둭",18,"뒁뒂"], +["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"], +["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"], +["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8], +["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18], +["8c41","똀",15,"똒똓똕똖똗똙",4], +["8c61","똞",6,"똦",5,"똭",6,"똵",5], +["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16], +["8d41","뛃",16,"뛕",8], +["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"], +["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"], +["8e41","랟랡",6,"랪랮",5,"랶랷랹",8], +["8e61","럂",4,"럈럊",19], +["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7], +["8f41","뢅",7,"뢎",17], +["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4], +["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5], +["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"], +["9061","륾",5,"릆릈릋릌릏",15], +["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"], +["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5], +["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5], +["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6], +["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"], +["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4], +["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"], +["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"], +["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8], +["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"], +["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8], +["9461","봞",5,"봥",6,"봭",12], +["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24], +["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"], +["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"], +["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14], +["9641","뺸",23,"뻒뻓"], +["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8], +["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44], +["9741","뾃",16,"뾕",8], +["9761","뾞",17,"뾱",7], +["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"], +["9841","쁀",16,"쁒",5,"쁙쁚쁛"], +["9861","쁝쁞쁟쁡",6,"쁪",15], +["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"], +["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"], +["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"], +["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"], +["9a41","숤숥숦숧숪숬숮숰숳숵",16], +["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"], +["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"], +["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8], +["9b61","쌳",17,"썆",7], +["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"], +["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5], +["9c61","쏿",8,"쐉",6,"쐑",9], +["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12], +["9d41","쒪",13,"쒹쒺쒻쒽",8], +["9d61","쓆",25], +["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"], +["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"], +["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"], +["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"], +["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"], +["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"], +["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"], +["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"], +["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13], +["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"], +["a141","좥좦좧좩",18,"좾좿죀죁"], +["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"], +["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"], +["a241","줐줒",5,"줙",18], +["a261","줭",6,"줵",18], +["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"], +["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"], +["a361","즑",6,"즚즜즞",16], +["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"], +["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"], +["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12], +["a481","쨦쨧쨨쨪",28,"ㄱ",93], +["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"], +["a561","쩫",17,"쩾",5,"쪅쪆"], +["a581","쪇",16,"쪙",14,"ⅰ",9], +["a5b0","Ⅰ",9], +["a5c1","Α",16,"Σ",6], +["a5e1","α",16,"σ",6], +["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"], +["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6], +["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7], +["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7], +["a761","쬪",22,"쭂쭃쭄"], +["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"], +["a841","쭭",10,"쭺",14], +["a861","쮉",18,"쮝",6], +["a881","쮤",19,"쮹",11,"ÆÐªĦ"], +["a8a6","IJ"], +["a8a8","ĿŁØŒºÞŦŊ"], +["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"], +["a941","쯅",14,"쯕",10], +["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18], +["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"], +["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"], +["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"], +["aa81","챳챴챶",29,"ぁ",82], +["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"], +["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5], +["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85], +["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"], +["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4], +["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25], +["acd1","а",5,"ёж",25], +["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7], +["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"], +["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"], +["ae41","췆",5,"췍췎췏췑",16], +["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4], +["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"], +["af41","츬츭츮츯츲츴츶",19], +["af61","칊",13,"칚칛칝칞칢",5,"칪칬"], +["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"], +["b041","캚",5,"캢캦",5,"캮",12], +["b061","캻",5,"컂",19], +["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"], +["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"], +["b161","켥",6,"켮켲",5,"켹",11], +["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"], +["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"], +["b261","쾎",18,"쾢",5,"쾩"], +["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"], +["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"], +["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5], +["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"], +["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5], +["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"], +["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"], +["b541","킕",14,"킦킧킩킪킫킭",5], +["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4], +["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"], +["b641","턅",7,"턎",17], +["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"], +["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"], +["b741","텮",13,"텽",6,"톅톆톇톉톊"], +["b761","톋",20,"톢톣톥톦톧"], +["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"], +["b841","퇐",7,"퇙",17], +["b861","퇫",8,"퇵퇶퇷퇹",13], +["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"], +["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"], +["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"], +["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"], +["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"], +["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5], +["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"], +["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"], +["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"], +["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"], +["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"], +["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"], +["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"], +["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"], +["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13], +["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"], +["be41","퐸",7,"푁푂푃푅",14], +["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"], +["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"], +["bf41","풞",10,"풪",14], +["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"], +["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"], +["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5], +["c061","픞",25], +["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"], +["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"], +["c161","햌햍햎햏햑",19,"햦햧"], +["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"], +["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"], +["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"], +["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"], +["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4], +["c361","홢",4,"홨홪",5,"홲홳홵",11], +["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"], +["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"], +["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4], +["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"], +["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"], +["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4], +["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"], +["c641","힍힎힏힑",6,"힚힜힞",5], +["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"], +["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"], +["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"], +["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"], +["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"], +["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"], +["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"], +["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"], +["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"], +["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"], +["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"], +["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"], +["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"], +["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"], +["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"], +["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"], +["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"], +["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"], +["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"], +["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"], +["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"], +["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"], +["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"], +["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"], +["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"], +["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"], +["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"], +["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"], +["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"], +["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"], +["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"], +["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"], +["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"], +["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"], +["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"], +["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"], +["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"], +["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"], +["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"], +["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"], +["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"], +["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"], +["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"], +["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"], +["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"], +["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"], +["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"], +["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"], +["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"], +["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"], +["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"], +["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"], +["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"], +["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"], +["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"] +] diff --git a/node_modules/iconv-lite/encodings/tables/cp950.json b/node_modules/iconv-lite/encodings/tables/cp950.json new file mode 100644 index 0000000..d8bc871 --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/cp950.json @@ -0,0 +1,177 @@ +[ +["0","\u0000",127], +["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"], +["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"], +["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"], +["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21], +["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10], +["a3a1","ㄐ",25,"˙ˉˊˇˋ"], +["a3e1","€"], +["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"], +["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"], +["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"], +["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"], +["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"], +["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"], +["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"], +["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"], +["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"], +["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"], +["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"], +["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"], +["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"], +["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"], +["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"], +["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"], +["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"], +["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"], +["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"], +["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"], +["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"], +["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"], +["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"], +["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"], +["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"], +["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"], +["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"], +["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"], +["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"], +["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"], +["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"], +["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"], +["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"], +["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"], +["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"], +["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"], +["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"], +["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"], +["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"], +["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"], +["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"], +["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"], +["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"], +["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"], +["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"], +["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"], +["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"], +["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"], +["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"], +["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"], +["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"], +["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"], +["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"], +["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"], +["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"], +["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"], +["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"], +["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"], +["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"], +["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"], +["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"], +["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"], +["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"], +["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"], +["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"], +["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"], +["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"], +["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"], +["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"], +["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"], +["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"], +["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"], +["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"], +["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"], +["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"], +["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"], +["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"], +["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"], +["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"], +["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"], +["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"], +["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"], +["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"], +["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"], +["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"], +["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"], +["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"], +["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"], +["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"], +["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"], +["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"], +["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"], +["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"], +["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"], +["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"], +["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"], +["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"], +["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"], +["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"], +["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"], +["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"], +["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"], +["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"], +["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"], +["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"], +["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"], +["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"], +["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"], +["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"], +["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"], +["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"], +["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"], +["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"], +["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"], +["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"], +["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"], +["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"], +["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"], +["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"], +["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"], +["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"], +["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"], +["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"], +["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"], +["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"], +["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"], +["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"], +["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"], +["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"], +["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"], +["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"], +["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"], +["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"], +["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"], +["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"], +["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"], +["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"], +["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"], +["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"], +["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"], +["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"], +["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"], +["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"], +["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"], +["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"], +["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"], +["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"], +["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"], +["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"], +["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"], +["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"], +["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"], +["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"], +["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"], +["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"], +["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"], +["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"], +["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"], +["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"], +["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"], +["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"], +["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"], +["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"], +["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"], +["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"], +["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"], +["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"] +] diff --git a/node_modules/iconv-lite/encodings/tables/eucjp.json b/node_modules/iconv-lite/encodings/tables/eucjp.json new file mode 100644 index 0000000..4fa61ca --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/eucjp.json @@ -0,0 +1,182 @@ +[ +["0","\u0000",127], +["8ea1","。",62], +["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"], +["a2a1","◆□■△▲▽▼※〒→←↑↓〓"], +["a2ba","∈∋⊆⊇⊂⊃∪∩"], +["a2ca","∧∨¬⇒⇔∀∃"], +["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"], +["a2f2","ʼn♯♭♪†‡¶"], +["a2fe","◯"], +["a3b0","0",9], +["a3c1","A",25], +["a3e1","a",25], +["a4a1","ぁ",82], +["a5a1","ァ",85], +["a6a1","Α",16,"Σ",6], +["a6c1","α",16,"σ",6], +["a7a1","А",5,"ЁЖ",25], +["a7d1","а",5,"ёж",25], +["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"], +["ada1","①",19,"Ⅰ",9], +["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"], +["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"], +["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"], +["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"], +["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"], +["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"], +["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"], +["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"], +["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"], +["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"], +["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"], +["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"], +["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"], +["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"], +["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"], +["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"], +["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"], +["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"], +["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"], +["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"], +["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"], +["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"], +["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"], +["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"], +["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"], +["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"], +["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"], +["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"], +["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"], +["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"], +["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"], +["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"], +["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"], +["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"], +["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"], +["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"], +["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"], +["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"], +["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"], +["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"], +["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"], +["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"], +["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"], +["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"], +["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"], +["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"], +["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"], +["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"], +["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"], +["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"], +["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"], +["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"], +["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"], +["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"], +["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"], +["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"], +["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"], +["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"], +["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"], +["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"], +["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"], +["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"], +["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"], +["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"], +["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"], +["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"], +["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"], +["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"], +["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"], +["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"], +["f4a1","堯槇遙瑤凜熙"], +["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"], +["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"], +["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"], +["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"], +["fcf1","ⅰ",9,"¬¦'""], +["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"], +["8fa2c2","¡¦¿"], +["8fa2eb","ºª©®™¤№"], +["8fa6e1","ΆΈΉΊΪ"], +["8fa6e7","Ό"], +["8fa6e9","ΎΫ"], +["8fa6ec","Ώ"], +["8fa6f1","άέήίϊΐόςύϋΰώ"], +["8fa7c2","Ђ",10,"ЎЏ"], +["8fa7f2","ђ",10,"ўџ"], +["8fa9a1","ÆĐ"], +["8fa9a4","Ħ"], +["8fa9a6","IJ"], +["8fa9a8","ŁĿ"], +["8fa9ab","ŊØŒ"], +["8fa9af","ŦÞ"], +["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"], +["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"], +["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"], +["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"], +["8fabbd","ġĥíìïîǐ"], +["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"], +["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"], +["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"], +["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"], +["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"], +["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"], +["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"], +["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"], +["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"], +["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"], +["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"], +["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"], +["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"], +["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"], +["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"], +["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"], +["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"], +["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"], +["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"], +["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"], +["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"], +["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"], +["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"], +["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"], +["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"], +["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"], +["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"], +["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"], +["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"], +["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"], +["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"], +["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"], +["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"], +["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"], +["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"], +["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5], +["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"], +["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"], +["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"], +["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"], +["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"], +["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"], +["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"], +["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"], +["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"], +["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"], +["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"], +["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"], +["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"], +["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"], +["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"], +["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"], +["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"], +["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"], +["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"], +["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"], +["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"], +["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"], +["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4], +["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"], +["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"], +["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"], +["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"] +] diff --git a/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json b/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json new file mode 100644 index 0000000..85c6934 --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json @@ -0,0 +1 @@ +{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]} \ No newline at end of file diff --git a/node_modules/iconv-lite/encodings/tables/gbk-added.json b/node_modules/iconv-lite/encodings/tables/gbk-added.json new file mode 100644 index 0000000..8abfa9f --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/gbk-added.json @@ -0,0 +1,55 @@ +[ +["a140","",62], +["a180","",32], +["a240","",62], +["a280","",32], +["a2ab","",5], +["a2e3","€"], +["a2ef",""], +["a2fd",""], +["a340","",62], +["a380","",31," "], +["a440","",62], +["a480","",32], +["a4f4","",10], +["a540","",62], +["a580","",32], +["a5f7","",7], +["a640","",62], +["a680","",32], +["a6b9","",7], +["a6d9","",6], +["a6ec",""], +["a6f3",""], +["a6f6","",8], +["a740","",62], +["a780","",32], +["a7c2","",14], +["a7f2","",12], +["a896","",10], +["a8bc",""], +["a8bf","ǹ"], +["a8c1",""], +["a8ea","",20], +["a958",""], +["a95b",""], +["a95d",""], +["a989","〾⿰",11], +["a997","",12], +["a9f0","",14], +["aaa1","",93], +["aba1","",93], +["aca1","",93], +["ada1","",93], +["aea1","",93], +["afa1","",93], +["d7fa","",4], +["f8a1","",93], +["f9a1","",93], +["faa1","",93], +["fba1","",93], +["fca1","",93], +["fda1","",93], +["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"], +["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93] +] diff --git a/node_modules/iconv-lite/encodings/tables/shiftjis.json b/node_modules/iconv-lite/encodings/tables/shiftjis.json new file mode 100644 index 0000000..5a3a43c --- /dev/null +++ b/node_modules/iconv-lite/encodings/tables/shiftjis.json @@ -0,0 +1,125 @@ +[ +["0","\u0000",128], +["a1","。",62], +["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"], +["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"], +["81b8","∈∋⊆⊇⊂⊃∪∩"], +["81c8","∧∨¬⇒⇔∀∃"], +["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"], +["81f0","ʼn♯♭♪†‡¶"], +["81fc","◯"], +["824f","0",9], +["8260","A",25], +["8281","a",25], +["829f","ぁ",82], +["8340","ァ",62], +["8380","ム",22], +["839f","Α",16,"Σ",6], +["83bf","α",16,"σ",6], +["8440","А",5,"ЁЖ",25], +["8470","а",5,"ёж",7], +["8480","о",17], +["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"], +["8740","①",19,"Ⅰ",9], +["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"], +["877e","㍻"], +["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"], +["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"], +["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"], +["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"], +["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"], +["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"], +["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"], +["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"], +["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"], +["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"], +["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"], +["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"], +["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"], +["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"], +["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"], +["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"], +["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"], +["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"], +["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"], +["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"], +["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"], +["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"], +["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"], +["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"], +["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"], +["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"], +["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"], +["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"], +["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"], +["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"], +["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"], +["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"], +["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"], +["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"], +["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"], +["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"], +["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"], +["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"], +["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"], +["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"], +["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"], +["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"], +["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"], +["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"], +["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"], +["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"], +["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"], +["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"], +["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"], +["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"], +["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"], +["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"], +["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"], +["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"], +["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"], +["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"], +["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"], +["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"], +["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"], +["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"], +["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"], +["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"], +["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"], +["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"], +["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"], +["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"], +["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"], +["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"], +["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"], +["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"], +["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"], +["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"], +["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"], +["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"], +["eeef","ⅰ",9,"¬¦'""], +["f040","",62], +["f080","",124], +["f140","",62], +["f180","",124], +["f240","",62], +["f280","",124], +["f340","",62], +["f380","",124], +["f440","",62], +["f480","",124], +["f540","",62], +["f580","",124], +["f640","",62], +["f680","",124], +["f740","",62], +["f780","",124], +["f840","",62], +["f880","",124], +["f940",""], +["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"], +["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"], +["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"], +["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"], +["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"] +] diff --git a/node_modules/iconv-lite/encodings/utf16.js b/node_modules/iconv-lite/encodings/utf16.js new file mode 100644 index 0000000..54765ae --- /dev/null +++ b/node_modules/iconv-lite/encodings/utf16.js @@ -0,0 +1,177 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js + +// == UTF16-BE codec. ========================================================== + +exports.utf16be = Utf16BECodec; +function Utf16BECodec() { +} + +Utf16BECodec.prototype.encoder = Utf16BEEncoder; +Utf16BECodec.prototype.decoder = Utf16BEDecoder; +Utf16BECodec.prototype.bomAware = true; + + +// -- Encoding + +function Utf16BEEncoder() { +} + +Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer.from(str, 'ucs2'); + for (var i = 0; i < buf.length; i += 2) { + var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp; + } + return buf; +} + +Utf16BEEncoder.prototype.end = function() { +} + + +// -- Decoding + +function Utf16BEDecoder() { + this.overflowByte = -1; +} + +Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) + return ''; + + var buf2 = Buffer.alloc(buf.length + 1), + i = 0, j = 0; + + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; j = 2; + } + + for (; i < buf.length-1; i += 2, j+= 2) { + buf2[j] = buf[i+1]; + buf2[j+1] = buf[i]; + } + + this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1; + + return buf2.slice(0, j).toString('ucs2'); +} + +Utf16BEDecoder.prototype.end = function() { +} + + +// == UTF-16 codec ============================================================= +// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic. +// Defaults to UTF-16LE, as it's prevalent and default in Node. +// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le +// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'}); + +// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false). + +exports.utf16 = Utf16Codec; +function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; +} + +Utf16Codec.prototype.encoder = Utf16Encoder; +Utf16Codec.prototype.decoder = Utf16Decoder; + + +// -- Encoding (pass-through) + +function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === undefined) + options.addBOM = true; + this.encoder = codec.iconv.getEncoder('utf-16le', options); +} + +Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); +} + +Utf16Encoder.prototype.end = function() { + return this.encoder.end(); +} + + +// -- Decoding + +function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBytes = []; + this.initialBytesLen = 0; + + this.options = options || {}; + this.iconv = codec.iconv; +} + +Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + // Codec is not chosen yet. Accumulate initial bytes. + this.initialBytes.push(buf); + this.initialBytesLen += buf.length; + + if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below) + return ''; + + // We have enough bytes -> detect endianness. + var buf = Buffer.concat(this.initialBytes), + encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + this.initialBytes.length = this.initialBytesLen = 0; + } + + return this.decoder.write(buf); +} + +Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var buf = Buffer.concat(this.initialBytes), + encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + + var res = this.decoder.write(buf), + trail = this.decoder.end(); + + return trail ? (res + trail) : res; + } + return this.decoder.end(); +} + +function detectEncoding(buf, defaultEncoding) { + var enc = defaultEncoding || 'utf-16le'; + + if (buf.length >= 2) { + // Check BOM. + if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM + enc = 'utf-16be'; + else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM + enc = 'utf-16le'; + else { + // No BOM found. Try to deduce encoding from initial content. + // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon. + // So, we count ASCII as if it was LE or BE, and decide from that. + var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions + _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even. + + for (var i = 0; i < _len; i += 2) { + if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++; + if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++; + } + + if (asciiCharsBE > asciiCharsLE) + enc = 'utf-16be'; + else if (asciiCharsBE < asciiCharsLE) + enc = 'utf-16le'; + } + } + + return enc; +} + + diff --git a/node_modules/iconv-lite/encodings/utf7.js b/node_modules/iconv-lite/encodings/utf7.js new file mode 100644 index 0000000..b7631c2 --- /dev/null +++ b/node_modules/iconv-lite/encodings/utf7.js @@ -0,0 +1,290 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152 +// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3 + +exports.utf7 = Utf7Codec; +exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7 +function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; +}; + +Utf7Codec.prototype.encoder = Utf7Encoder; +Utf7Codec.prototype.decoder = Utf7Decoder; +Utf7Codec.prototype.bomAware = true; + + +// -- Encoding + +var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + +function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; +} + +Utf7Encoder.prototype.write = function(str) { + // Naive implementation. + // Non-direct chars are encoded as "+-"; single "+" char is encoded as "+-". + return Buffer.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === '+' ? '' : + this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) + + "-"; + }.bind(this))); +} + +Utf7Encoder.prototype.end = function() { +} + + +// -- Decoding + +function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ''; +} + +var base64Regex = /[A-Za-z0-9\/+]/; +var base64Chars = []; +for (var i = 0; i < 256; i++) + base64Chars[i] = base64Regex.test(String.fromCharCode(i)); + +var plusChar = '+'.charCodeAt(0), + minusChar = '-'.charCodeAt(0), + andChar = '&'.charCodeAt(0); + +Utf7Decoder.prototype.write = function(buf) { + var res = "", lastI = 0, + inBase64 = this.inBase64, + base64Accum = this.base64Accum; + + // The decoder is more involved as we must handle chunks in stream. + + for (var i = 0; i < buf.length; i++) { + if (!inBase64) { // We're in direct mode. + // Write direct chars until '+' + if (buf[i] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. + lastI = i+1; + inBase64 = true; + } + } else { // We decode base64. + if (!base64Chars[buf[i]]) { // Base64 ended. + if (i == lastI && buf[i] == minusChar) {// "+-" -> "+" + res += "+"; + } else { + var b64str = base64Accum + buf.slice(lastI, i).toString(); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + if (buf[i] != minusChar) // Minus is absorbed after base64. + i--; + + lastI = i+1; + inBase64 = false; + base64Accum = ''; + } + } + } + + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. + } else { + var b64str = base64Accum + buf.slice(lastI).toString(); + + var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. + base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. + b64str = b64str.slice(0, canBeDecoded); + + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + + return res; +} + +Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); + + this.inBase64 = false; + this.base64Accum = ''; + return res; +} + + +// UTF-7-IMAP codec. +// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3) +// Differences: +// * Base64 part is started by "&" instead of "+" +// * Direct characters are 0x20-0x7E, except "&" (0x26) +// * In Base64, "," is used instead of "/" +// * Base64 must not be used to represent direct characters. +// * No implicit shift back from Base64 (should always end with '-') +// * String must end in non-shifted position. +// * "-&" while in base64 is not allowed. + + +exports.utf7imap = Utf7IMAPCodec; +function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; +}; + +Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; +Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; +Utf7IMAPCodec.prototype.bomAware = true; + + +// -- Encoding + +function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer.alloc(6); + this.base64AccumIdx = 0; +} + +Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64, + base64Accum = this.base64Accum, + base64AccumIdx = this.base64AccumIdx, + buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0; + + for (var i = 0; i < str.length; i++) { + var uChar = str.charCodeAt(i); + if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'. + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); + base64AccumIdx = 0; + } + + buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. + inBase64 = false; + } + + if (!inBase64) { + buf[bufIdx++] = uChar; // Write direct character + + if (uChar === andChar) // Ampersand -> '&-' + buf[bufIdx++] = minusChar; + } + + } else { // Non-direct character + if (!inBase64) { + buf[bufIdx++] = andChar; // Write '&', then go to base64 mode. + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 0xFF; + + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx); + base64AccumIdx = 0; + } + } + } + } + + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + + return buf.slice(0, bufIdx); +} + +Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer.alloc(10), bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); + this.base64AccumIdx = 0; + } + + buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. + this.inBase64 = false; + } + + return buf.slice(0, bufIdx); +} + + +// -- Decoding + +function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ''; +} + +var base64IMAPChars = base64Chars.slice(); +base64IMAPChars[','.charCodeAt(0)] = true; + +Utf7IMAPDecoder.prototype.write = function(buf) { + var res = "", lastI = 0, + inBase64 = this.inBase64, + base64Accum = this.base64Accum; + + // The decoder is more involved as we must handle chunks in stream. + // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end). + + for (var i = 0; i < buf.length; i++) { + if (!inBase64) { // We're in direct mode. + // Write direct chars until '&' + if (buf[i] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. + lastI = i+1; + inBase64 = true; + } + } else { // We decode base64. + if (!base64IMAPChars[buf[i]]) { // Base64 ended. + if (i == lastI && buf[i] == minusChar) { // "&-" -> "&" + res += "&"; + } else { + var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/'); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + if (buf[i] != minusChar) // Minus may be absorbed after base64. + i--; + + lastI = i+1; + inBase64 = false; + base64Accum = ''; + } + } + } + + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. + } else { + var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/'); + + var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. + base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. + b64str = b64str.slice(0, canBeDecoded); + + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + + return res; +} + +Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); + + this.inBase64 = false; + this.base64Accum = ''; + return res; +} + + diff --git a/node_modules/iconv-lite/lib/bom-handling.js b/node_modules/iconv-lite/lib/bom-handling.js new file mode 100644 index 0000000..1050872 --- /dev/null +++ b/node_modules/iconv-lite/lib/bom-handling.js @@ -0,0 +1,52 @@ +"use strict"; + +var BOMChar = '\uFEFF'; + +exports.PrependBOM = PrependBOMWrapper +function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; +} + +PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + + return this.encoder.write(str); +} + +PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); +} + + +//------------------------------------------------------------------------------ + +exports.StripBOM = StripBOMWrapper; +function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; +} + +StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) + return res; + + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === 'function') + this.options.stripBOM(); + } + + this.pass = true; + return res; +} + +StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); +} + diff --git a/node_modules/iconv-lite/lib/extend-node.js b/node_modules/iconv-lite/lib/extend-node.js new file mode 100644 index 0000000..87f5394 --- /dev/null +++ b/node_modules/iconv-lite/lib/extend-node.js @@ -0,0 +1,217 @@ +"use strict"; +var Buffer = require("buffer").Buffer; +// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer + +// == Extend Node primitives to use iconv-lite ================================= + +module.exports = function (iconv) { + var original = undefined; // Place to keep original methods. + + // Node authors rewrote Buffer internals to make it compatible with + // Uint8Array and we cannot patch key functions since then. + // Note: this does use older Buffer API on a purpose + iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array); + + iconv.extendNodeEncodings = function extendNodeEncodings() { + if (original) return; + original = {}; + + if (!iconv.supportsNodeEncodingsExtension) { + console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); + console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); + return; + } + + var nodeNativeEncodings = { + 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true, + 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true, + }; + + Buffer.isNativeEncoding = function(enc) { + return enc && nodeNativeEncodings[enc.toLowerCase()]; + } + + // -- SlowBuffer ----------------------------------------------------------- + var SlowBuffer = require('buffer').SlowBuffer; + + original.SlowBufferToString = SlowBuffer.prototype.toString; + SlowBuffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.SlowBufferToString.call(this, encoding, start, end); + + // Otherwise, use our decoding method. + if (typeof start == 'undefined') start = 0; + if (typeof end == 'undefined') end = this.length; + return iconv.decode(this.slice(start, end), encoding); + } + + original.SlowBufferWrite = SlowBuffer.prototype.write; + SlowBuffer.prototype.write = function(string, offset, length, encoding) { + // Support both (string, offset, length, encoding) + // and the legacy (string, encoding, offset, length) + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { // legacy + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.SlowBufferWrite.call(this, string, offset, length, encoding); + + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError('attempt to write beyond buffer bounds'); + + // Otherwise, use our encoding method. + var buf = iconv.encode(string, encoding); + if (buf.length < length) length = buf.length; + buf.copy(this, offset, 0, length); + return length; + } + + // -- Buffer --------------------------------------------------------------- + + original.BufferIsEncoding = Buffer.isEncoding; + Buffer.isEncoding = function(encoding) { + return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding); + } + + original.BufferByteLength = Buffer.byteLength; + Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferByteLength.call(this, str, encoding); + + // Slow, I know, but we don't have a better way yet. + return iconv.encode(str, encoding).length; + } + + original.BufferToString = Buffer.prototype.toString; + Buffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferToString.call(this, encoding, start, end); + + // Otherwise, use our decoding method. + if (typeof start == 'undefined') start = 0; + if (typeof end == 'undefined') end = this.length; + return iconv.decode(this.slice(start, end), encoding); + } + + original.BufferWrite = Buffer.prototype.write; + Buffer.prototype.write = function(string, offset, length, encoding) { + var _offset = offset, _length = length, _encoding = encoding; + // Support both (string, offset, length, encoding) + // and the legacy (string, encoding, offset, length) + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { // legacy + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferWrite.call(this, string, _offset, _length, _encoding); + + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError('attempt to write beyond buffer bounds'); + + // Otherwise, use our encoding method. + var buf = iconv.encode(string, encoding); + if (buf.length < length) length = buf.length; + buf.copy(this, offset, 0, length); + return length; + + // TODO: Set _charsWritten. + } + + + // -- Readable ------------------------------------------------------------- + if (iconv.supportsStreams) { + var Readable = require('stream').Readable; + + original.ReadableSetEncoding = Readable.prototype.setEncoding; + Readable.prototype.setEncoding = function setEncoding(enc, options) { + // Use our own decoder, it has the same interface. + // We cannot use original function as it doesn't handle BOM-s. + this._readableState.decoder = iconv.getDecoder(enc, options); + this._readableState.encoding = enc; + } + + Readable.prototype.collect = iconv._collect; + } + } + + // Remove iconv-lite Node primitive extensions. + iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { + if (!iconv.supportsNodeEncodingsExtension) + return; + if (!original) + throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.") + + delete Buffer.isNativeEncoding; + + var SlowBuffer = require('buffer').SlowBuffer; + + SlowBuffer.prototype.toString = original.SlowBufferToString; + SlowBuffer.prototype.write = original.SlowBufferWrite; + + Buffer.isEncoding = original.BufferIsEncoding; + Buffer.byteLength = original.BufferByteLength; + Buffer.prototype.toString = original.BufferToString; + Buffer.prototype.write = original.BufferWrite; + + if (iconv.supportsStreams) { + var Readable = require('stream').Readable; + + Readable.prototype.setEncoding = original.ReadableSetEncoding; + delete Readable.prototype.collect; + } + + original = undefined; + } +} diff --git a/node_modules/iconv-lite/lib/index.d.ts b/node_modules/iconv-lite/lib/index.d.ts new file mode 100644 index 0000000..0547eb3 --- /dev/null +++ b/node_modules/iconv-lite/lib/index.d.ts @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + * REQUIREMENT: This definition is dependent on the @types/node definition. + * Install with `npm install @types/node --save-dev` + *--------------------------------------------------------------------------------------------*/ + +declare module 'iconv-lite' { + export function decode(buffer: Buffer, encoding: string, options?: Options): string; + + export function encode(content: string, encoding: string, options?: Options): Buffer; + + export function encodingExists(encoding: string): boolean; + + export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; + + export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; +} + +export interface Options { + stripBOM?: boolean; + addBOM?: boolean; + defaultEncoding?: string; +} diff --git a/node_modules/iconv-lite/lib/index.js b/node_modules/iconv-lite/lib/index.js new file mode 100644 index 0000000..5391919 --- /dev/null +++ b/node_modules/iconv-lite/lib/index.js @@ -0,0 +1,153 @@ +"use strict"; + +// Some environments don't have global Buffer (e.g. React Native). +// Solution would be installing npm modules "buffer" and "stream" explicitly. +var Buffer = require("safer-buffer").Buffer; + +var bomHandling = require("./bom-handling"), + iconv = module.exports; + +// All codecs and aliases are kept here, keyed by encoding name/alias. +// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`. +iconv.encodings = null; + +// Characters emitted in case of error. +iconv.defaultCharUnicode = '�'; +iconv.defaultCharSingleByte = '?'; + +// Public API. +iconv.encode = function encode(str, encoding, options) { + str = "" + (str || ""); // Ensure string. + + var encoder = iconv.getEncoder(encoding, options); + + var res = encoder.write(str); + var trail = encoder.end(); + + return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res; +} + +iconv.decode = function decode(buf, encoding, options) { + if (typeof buf === 'string') { + if (!iconv.skipDecodeWarning) { + console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding'); + iconv.skipDecodeWarning = true; + } + + buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer. + } + + var decoder = iconv.getDecoder(encoding, options); + + var res = decoder.write(buf); + var trail = decoder.end(); + + return trail ? (res + trail) : res; +} + +iconv.encodingExists = function encodingExists(enc) { + try { + iconv.getCodec(enc); + return true; + } catch (e) { + return false; + } +} + +// Legacy aliases to convert functions +iconv.toEncoding = iconv.encode; +iconv.fromEncoding = iconv.decode; + +// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache. +iconv._codecDataCache = {}; +iconv.getCodec = function getCodec(encoding) { + if (!iconv.encodings) + iconv.encodings = require("../encodings"); // Lazy load all encoding definitions. + + // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. + var enc = iconv._canonicalizeEncoding(encoding); + + // Traverse iconv.encodings to find actual codec. + var codecOptions = {}; + while (true) { + var codec = iconv._codecDataCache[enc]; + if (codec) + return codec; + + var codecDef = iconv.encodings[enc]; + + switch (typeof codecDef) { + case "string": // Direct alias to other encoding. + enc = codecDef; + break; + + case "object": // Alias with options. Can be layered. + for (var key in codecDef) + codecOptions[key] = codecDef[key]; + + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + + enc = codecDef.type; + break; + + case "function": // Codec itself. + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + + // The codec function must load all tables and return object with .encoder and .decoder methods. + // It'll be called only once (for each different options object). + codec = new codecDef(codecOptions, iconv); + + iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later. + return codec; + + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')"); + } + } +} + +iconv._canonicalizeEncoding = function(encoding) { + // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. + return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); +} + +iconv.getEncoder = function getEncoder(encoding, options) { + var codec = iconv.getCodec(encoding), + encoder = new codec.encoder(options, codec); + + if (codec.bomAware && options && options.addBOM) + encoder = new bomHandling.PrependBOM(encoder, options); + + return encoder; +} + +iconv.getDecoder = function getDecoder(encoding, options) { + var codec = iconv.getCodec(encoding), + decoder = new codec.decoder(options, codec); + + if (codec.bomAware && !(options && options.stripBOM === false)) + decoder = new bomHandling.StripBOM(decoder, options); + + return decoder; +} + + +// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json. +var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node; +if (nodeVer) { + + // Load streaming support in Node v0.10+ + var nodeVerArr = nodeVer.split(".").map(Number); + if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { + require("./streams")(iconv); + } + + // Load Node primitive extensions. + require("./extend-node")(iconv); +} + +if ("Ā" != "\u0100") { + console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info."); +} diff --git a/node_modules/iconv-lite/lib/streams.js b/node_modules/iconv-lite/lib/streams.js new file mode 100644 index 0000000..4409552 --- /dev/null +++ b/node_modules/iconv-lite/lib/streams.js @@ -0,0 +1,121 @@ +"use strict"; + +var Buffer = require("buffer").Buffer, + Transform = require("stream").Transform; + + +// == Exports ================================================================== +module.exports = function(iconv) { + + // Additional Public API. + iconv.encodeStream = function encodeStream(encoding, options) { + return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); + } + + iconv.decodeStream = function decodeStream(encoding, options) { + return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); + } + + iconv.supportsStreams = true; + + + // Not published yet. + iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; + iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; + iconv._collect = IconvLiteDecoderStream.prototype.collect; +}; + + +// == Encoder stream ======================================================= +function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; // We accept only strings, so we don't need to decode them. + Transform.call(this, options); +} + +IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteEncoderStream } +}); + +IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk != 'string') + return done(new Error("Iconv encoding stream needs strings as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on('error', cb); + this.on('data', function(chunk) { chunks.push(chunk); }); + this.on('end', function() { + cb(null, Buffer.concat(chunks)); + }); + return this; +} + + +// == Decoder stream ======================================================= +function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = 'utf8'; // We output strings. + Transform.call(this, options); +} + +IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteDecoderStream } +}); + +IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer.isBuffer(chunk)) + return done(new Error("Iconv decoding stream needs buffers as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res, this.encoding); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res, this.encoding); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ''; + this.on('error', cb); + this.on('data', function(chunk) { res += chunk; }); + this.on('end', function() { + cb(null, res); + }); + return this; +} + diff --git a/node_modules/iconv-lite/package.json b/node_modules/iconv-lite/package.json new file mode 100644 index 0000000..a7c74fc --- /dev/null +++ b/node_modules/iconv-lite/package.json @@ -0,0 +1,46 @@ +{ + "name": "iconv-lite", + "description": "Convert character encodings in pure javascript.", + "version": "0.4.24", + "license": "MIT", + "keywords": [ + "iconv", + "convert", + "charset", + "icu" + ], + "author": "Alexander Shtuchkin ", + "main": "./lib/index.js", + "typings": "./lib/index.d.ts", + "homepage": "https://github.com/ashtuchkin/iconv-lite", + "bugs": "https://github.com/ashtuchkin/iconv-lite/issues", + "repository": { + "type": "git", + "url": "git://github.com/ashtuchkin/iconv-lite.git" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "coverage": "istanbul cover _mocha -- --grep .", + "coverage-open": "open coverage/lcov-report/index.html", + "test": "mocha --reporter spec --grep ." + }, + "browser": { + "./lib/extend-node": false, + "./lib/streams": false + }, + "devDependencies": { + "mocha": "^3.1.0", + "request": "~2.87.0", + "unorm": "*", + "errto": "*", + "async": "*", + "istanbul": "*", + "semver": "*", + "iconv": "*" + }, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + } +} diff --git a/node_modules/ignore-by-default/LICENSE b/node_modules/ignore-by-default/LICENSE new file mode 100644 index 0000000..ee1e367 --- /dev/null +++ b/node_modules/ignore-by-default/LICENSE @@ -0,0 +1,14 @@ +ISC License (ISC) +Copyright (c) 2016, Mark Wubben + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/node_modules/ignore-by-default/README.md b/node_modules/ignore-by-default/README.md new file mode 100644 index 0000000..ee77191 --- /dev/null +++ b/node_modules/ignore-by-default/README.md @@ -0,0 +1,26 @@ +# ignore-by-default + +This is a package aimed at Node.js development tools. It provides a list of +directories that should probably be ignored by such tools, e.g. when watching +for file changes. + +It's used by [AVA](https://www.npmjs.com/package/ava) and +[nodemon](https://www.npmjs.com/package/nodemon). + +[Please contribute!](./CONTRIBUTING.md) + +## Installation + +``` +npm install --save ignore-by-default +``` + +## Usage + +The `ignore-by-default` module exports a `directories()` function, which will +return an array of directory names. These are the ones you should ignore. + +```js +// ['.git', '.sass_cache', …] +var ignoredDirectories = require('ignore-by-default').directories() +``` diff --git a/node_modules/ignore-by-default/index.js b/node_modules/ignore-by-default/index.js new file mode 100644 index 0000000..c65857d --- /dev/null +++ b/node_modules/ignore-by-default/index.js @@ -0,0 +1,12 @@ +'use strict' + +exports.directories = function () { + return [ + '.git', // Git repository files, see + '.nyc_output', // Temporary directory where nyc stores coverage data, see + '.sass-cache', // Cache folder for node-sass, see + 'bower_components', // Where Bower packages are installed, see + 'coverage', // Standard output directory for code coverage reports, see + 'node_modules' // Where Node modules are installed, see + ] +} diff --git a/node_modules/ignore-by-default/package.json b/node_modules/ignore-by-default/package.json new file mode 100644 index 0000000..38e0d2b --- /dev/null +++ b/node_modules/ignore-by-default/package.json @@ -0,0 +1,34 @@ +{ + "name": "ignore-by-default", + "version": "1.0.1", + "description": "A list of directories you should ignore by default", + "main": "index.js", + "files": [ + "index.js" + ], + "scripts": { + "test": "standard && node test.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/novemberborn/ignore-by-default.git" + }, + "keywords": [ + "ignore", + "chokidar", + "watcher", + "exclude", + "glob", + "pattern" + ], + "author": "Mark Wubben (https://novemberborn.net/)", + "license": "ISC", + "bugs": { + "url": "https://github.com/novemberborn/ignore-by-default/issues" + }, + "homepage": "https://github.com/novemberborn/ignore-by-default#readme", + "devDependencies": { + "figures": "^1.4.0", + "standard": "^6.0.4" + } +} diff --git a/node_modules/inherits/LICENSE b/node_modules/inherits/LICENSE new file mode 100644 index 0000000..dea3013 --- /dev/null +++ b/node_modules/inherits/LICENSE @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + diff --git a/node_modules/inherits/README.md b/node_modules/inherits/README.md new file mode 100644 index 0000000..b1c5665 --- /dev/null +++ b/node_modules/inherits/README.md @@ -0,0 +1,42 @@ +Browser-friendly inheritance fully compatible with standard node.js +[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). + +This package exports standard `inherits` from node.js `util` module in +node environment, but also provides alternative browser-friendly +implementation through [browser +field](https://gist.github.com/shtylman/4339901). Alternative +implementation is a literal copy of standard one located in standalone +module to avoid requiring of `util`. It also has a shim for old +browsers with no `Object.create` support. + +While keeping you sure you are using standard `inherits` +implementation in node.js environment, it allows bundlers such as +[browserify](https://github.com/substack/node-browserify) to not +include full `util` package to your client code if all you need is +just `inherits` function. It worth, because browser shim for `util` +package is large and `inherits` is often the single function you need +from it. + +It's recommended to use this package instead of +`require('util').inherits` for any code that has chances to be used +not only in node.js but in browser too. + +## usage + +```js +var inherits = require('inherits'); +// then use exactly as the standard one +``` + +## note on version ~1.0 + +Version ~1.0 had completely different motivation and is not compatible +neither with 2.0 nor with standard node.js `inherits`. + +If you are using version ~1.0 and planning to switch to ~2.0, be +careful: + +* new version uses `super_` instead of `super` for referencing + superclass +* new version overwrites current prototype while old one preserves any + existing fields on it diff --git a/node_modules/inherits/inherits.js b/node_modules/inherits/inherits.js new file mode 100644 index 0000000..f71f2d9 --- /dev/null +++ b/node_modules/inherits/inherits.js @@ -0,0 +1,9 @@ +try { + var util = require('util'); + /* istanbul ignore next */ + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = require('./inherits_browser.js'); +} diff --git a/node_modules/inherits/inherits_browser.js b/node_modules/inherits/inherits_browser.js new file mode 100644 index 0000000..86bbb3d --- /dev/null +++ b/node_modules/inherits/inherits_browser.js @@ -0,0 +1,27 @@ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } +} diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json new file mode 100644 index 0000000..37b4366 --- /dev/null +++ b/node_modules/inherits/package.json @@ -0,0 +1,29 @@ +{ + "name": "inherits", + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "version": "2.0.4", + "keywords": [ + "inheritance", + "class", + "klass", + "oop", + "object-oriented", + "inherits", + "browser", + "browserify" + ], + "main": "./inherits.js", + "browser": "./inherits_browser.js", + "repository": "git://github.com/isaacs/inherits", + "license": "ISC", + "scripts": { + "test": "tap" + }, + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ] +} diff --git a/node_modules/ipaddr.js/LICENSE b/node_modules/ipaddr.js/LICENSE new file mode 100644 index 0000000..f6b37b5 --- /dev/null +++ b/node_modules/ipaddr.js/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2011-2017 whitequark + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/ipaddr.js/README.md b/node_modules/ipaddr.js/README.md new file mode 100644 index 0000000..f57725b --- /dev/null +++ b/node_modules/ipaddr.js/README.md @@ -0,0 +1,233 @@ +# ipaddr.js — an IPv6 and IPv4 address manipulation library [![Build Status](https://travis-ci.org/whitequark/ipaddr.js.svg)](https://travis-ci.org/whitequark/ipaddr.js) + +ipaddr.js is a small (1.9K minified and gzipped) library for manipulating +IP addresses in JavaScript environments. It runs on both CommonJS runtimes +(e.g. [nodejs]) and in a web browser. + +ipaddr.js allows you to verify and parse string representation of an IP +address, match it against a CIDR range or range list, determine if it falls +into some reserved ranges (examples include loopback and private ranges), +and convert between IPv4 and IPv4-mapped IPv6 addresses. + +[nodejs]: http://nodejs.org + +## Installation + +`npm install ipaddr.js` + +or + +`bower install ipaddr.js` + +## API + +ipaddr.js defines one object in the global scope: `ipaddr`. In CommonJS, +it is exported from the module: + +```js +var ipaddr = require('ipaddr.js'); +``` + +The API consists of several global methods and two classes: ipaddr.IPv6 and ipaddr.IPv4. + +### Global methods + +There are three global methods defined: `ipaddr.isValid`, `ipaddr.parse` and +`ipaddr.process`. All of them receive a string as a single parameter. + +The `ipaddr.isValid` method returns `true` if the address is a valid IPv4 or +IPv6 address, and `false` otherwise. It does not throw any exceptions. + +The `ipaddr.parse` method returns an object representing the IP address, +or throws an `Error` if the passed string is not a valid representation of an +IP address. + +The `ipaddr.process` method works just like the `ipaddr.parse` one, but it +automatically converts IPv4-mapped IPv6 addresses to their IPv4 counterparts +before returning. It is useful when you have a Node.js instance listening +on an IPv6 socket, and the `net.ivp6.bindv6only` sysctl parameter (or its +equivalent on non-Linux OS) is set to 0. In this case, you can accept IPv4 +connections on your IPv6-only socket, but the remote address will be mangled. +Use `ipaddr.process` method to automatically demangle it. + +### Object representation + +Parsing methods return an object which descends from `ipaddr.IPv6` or +`ipaddr.IPv4`. These objects share some properties, but most of them differ. + +#### Shared properties + +One can determine the type of address by calling `addr.kind()`. It will return +either `"ipv6"` or `"ipv4"`. + +An address can be converted back to its string representation with `addr.toString()`. +Note that this method: + * does not return the original string used to create the object (in fact, there is + no way of getting that string) + * returns a compact representation (when it is applicable) + +A `match(range, bits)` method can be used to check if the address falls into a +certain CIDR range. +Note that an address can be (obviously) matched only against an address of the same type. + +For example: + +```js +var addr = ipaddr.parse("2001:db8:1234::1"); +var range = ipaddr.parse("2001:db8::"); + +addr.match(range, 32); // => true +``` + +Alternatively, `match` can also be called as `match([range, bits])`. In this way, +it can be used together with the `parseCIDR(string)` method, which parses an IP +address together with a CIDR range. + +For example: + +```js +var addr = ipaddr.parse("2001:db8:1234::1"); + +addr.match(ipaddr.parseCIDR("2001:db8::/32")); // => true +``` + +A `range()` method returns one of predefined names for several special ranges defined +by IP protocols. The exact names (and their respective CIDR ranges) can be looked up +in the source: [IPv6 ranges] and [IPv4 ranges]. Some common ones include `"unicast"` +(the default one) and `"reserved"`. + +You can match against your own range list by using +`ipaddr.subnetMatch(address, rangeList, defaultName)` method. It can work with a mix of IPv6 or IPv4 addresses, and accepts a name-to-subnet map as the range list. For example: + +```js +var rangeList = { + documentationOnly: [ ipaddr.parse('2001:db8::'), 32 ], + tunnelProviders: [ + [ ipaddr.parse('2001:470::'), 32 ], // he.net + [ ipaddr.parse('2001:5c0::'), 32 ] // freenet6 + ] +}; +ipaddr.subnetMatch(ipaddr.parse('2001:470:8:66::1'), rangeList, 'unknown'); // => "tunnelProviders" +``` + +The addresses can be converted to their byte representation with `toByteArray()`. +(Actually, JavaScript mostly does not know about byte buffers. They are emulated with +arrays of numbers, each in range of 0..255.) + +```js +var bytes = ipaddr.parse('2a00:1450:8007::68').toByteArray(); // ipv6.google.com +bytes // => [42, 0x00, 0x14, 0x50, 0x80, 0x07, 0x00, , 0x00, 0x68 ] +``` + +The `ipaddr.IPv4` and `ipaddr.IPv6` objects have some methods defined, too. All of them +have the same interface for both protocols, and are similar to global methods. + +`ipaddr.IPvX.isValid(string)` can be used to check if the string is a valid address +for particular protocol, and `ipaddr.IPvX.parse(string)` is the error-throwing parser. + +`ipaddr.IPvX.isValid(string)` uses the same format for parsing as the POSIX `inet_ntoa` function, which accepts unusual formats like `0xc0.168.1.1` or `0x10000000`. The function `ipaddr.IPv4.isValidFourPartDecimal(string)` validates the IPv4 address and also ensures that it is written in four-part decimal format. + +[IPv6 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L186 +[IPv4 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L71 + +#### IPv6 properties + +Sometimes you will want to convert IPv6 not to a compact string representation (with +the `::` substitution); the `toNormalizedString()` method will return an address where +all zeroes are explicit. + +For example: + +```js +var addr = ipaddr.parse("2001:0db8::0001"); +addr.toString(); // => "2001:db8::1" +addr.toNormalizedString(); // => "2001:db8:0:0:0:0:0:1" +``` + +The `isIPv4MappedAddress()` method will return `true` if this address is an IPv4-mapped +one, and `toIPv4Address()` will return an IPv4 object address. + +To access the underlying binary representation of the address, use `addr.parts`. + +```js +var addr = ipaddr.parse("2001:db8:10::1234:DEAD"); +addr.parts // => [0x2001, 0xdb8, 0x10, 0, 0, 0, 0x1234, 0xdead] +``` + +A IPv6 zone index can be accessed via `addr.zoneId`: + +```js +var addr = ipaddr.parse("2001:db8::%eth0"); +addr.zoneId // => 'eth0' +``` + +#### IPv4 properties + +`toIPv4MappedAddress()` will return a corresponding IPv4-mapped IPv6 address. + +To access the underlying representation of the address, use `addr.octets`. + +```js +var addr = ipaddr.parse("192.168.1.1"); +addr.octets // => [192, 168, 1, 1] +``` + +`prefixLengthFromSubnetMask()` will return a CIDR prefix length for a valid IPv4 netmask or +null if the netmask is not valid. + +```js +ipaddr.IPv4.parse('255.255.255.240').prefixLengthFromSubnetMask() == 28 +ipaddr.IPv4.parse('255.192.164.0').prefixLengthFromSubnetMask() == null +``` + +`subnetMaskFromPrefixLength()` will return an IPv4 netmask for a valid CIDR prefix length. + +```js +ipaddr.IPv4.subnetMaskFromPrefixLength(24) == "255.255.255.0" +ipaddr.IPv4.subnetMaskFromPrefixLength(29) == "255.255.255.248" +``` + +`broadcastAddressFromCIDR()` will return the broadcast address for a given IPv4 interface and netmask in CIDR notation. +```js +ipaddr.IPv4.broadcastAddressFromCIDR("172.0.0.1/24") == "172.0.0.255" +``` +`networkAddressFromCIDR()` will return the network address for a given IPv4 interface and netmask in CIDR notation. +```js +ipaddr.IPv4.networkAddressFromCIDR("172.0.0.1/24") == "172.0.0.0" +``` + +#### Conversion + +IPv4 and IPv6 can be converted bidirectionally to and from network byte order (MSB) byte arrays. + +The `fromByteArray()` method will take an array and create an appropriate IPv4 or IPv6 object +if the input satisfies the requirements. For IPv4 it has to be an array of four 8-bit values, +while for IPv6 it has to be an array of sixteen 8-bit values. + +For example: +```js +var addr = ipaddr.fromByteArray([0x7f, 0, 0, 1]); +addr.toString(); // => "127.0.0.1" +``` + +or + +```js +var addr = ipaddr.fromByteArray([0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) +addr.toString(); // => "2001:db8::1" +``` + +Both objects also offer a `toByteArray()` method, which returns an array in network byte order (MSB). + +For example: +```js +var addr = ipaddr.parse("127.0.0.1"); +addr.toByteArray(); // => [0x7f, 0, 0, 1] +``` + +or + +```js +var addr = ipaddr.parse("2001:db8::1"); +addr.toByteArray(); // => [0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] +``` diff --git a/node_modules/ipaddr.js/ipaddr.min.js b/node_modules/ipaddr.js/ipaddr.min.js new file mode 100644 index 0000000..b54a7cc --- /dev/null +++ b/node_modules/ipaddr.js/ipaddr.min.js @@ -0,0 +1 @@ +(function(){var r,t,n,e,i,o,a,s;t={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=t:s.ipaddr=t,a=function(r,t,n,e){var i,o;if(r.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if((o=n-e)<0&&(o=0),r[i]>>o!=t[i]>>o)return!1;e-=n,i+=1}return!0},t.subnetMatch=function(r,t,n){var e,i,o,a,s;null==n&&(n="unicast");for(o in t)for(!(a=t[o])[0]||a[0]instanceof Array||(a=[a]),e=0,i=a.length;e=0;t=n+=-1){if(!((e=this.octets[t])in a))return null;if(o=a[e],i&&0!==o)return null;8!==o&&(i=!0),r+=o}return 32-r},r}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},t.IPv4.parser=function(r){var t,n,i,o,a;if(n=function(r){return"0"===r[0]&&"x"!==r[1]?parseInt(r,8):parseInt(r)},t=r.match(e.fourOctet))return function(){var r,e,o,a;for(a=[],r=0,e=(o=t.slice(1,6)).length;r4294967295||a<0)throw new Error("ipaddr: address outside defined range");return function(){var r,t;for(t=[],o=r=0;r<=24;o=r+=8)t.push(a>>o&255);return t}().reverse()}return null},t.IPv6=function(){function r(r,t){var n,e,i,o,a,s;if(16===r.length)for(this.parts=[],n=e=0;e<=14;n=e+=2)this.parts.push(r[n]<<8|r[n+1]);else{if(8!==r.length)throw new Error("ipaddr: ipv6 part count should be 8 or 16");this.parts=r}for(i=0,o=(s=this.parts).length;it&&(r=n.index,t=n[0].length);return t<0?i:i.substring(0,r)+"::"+i.substring(r+t)},r.prototype.toByteArray=function(){var r,t,n,e,i;for(r=[],t=0,n=(i=this.parts).length;t>8),r.push(255&e);return r},r.prototype.toNormalizedString=function(){var r,t,n;return r=function(){var r,n,e,i;for(i=[],r=0,n=(e=this.parts).length;r>8,255&r,n>>8,255&n])},r.prototype.prefixLengthFromSubnetMask=function(){var r,t,n,e,i,o,a;for(a={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},r=0,i=!1,t=n=7;n>=0;t=n+=-1){if(!((e=this.parts[t])in a))return null;if(o=a[e],i&&0!==o)return null;16!==o&&(i=!0),r+=o}return 128-r},r}(),i="(?:[0-9a-f]+::?)+",o={zoneIndex:new RegExp("%[0-9a-z]{1,}","i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?(%[0-9a-z]{1,})?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+n+"\\."+n+"\\."+n+"\\."+n+"(%[0-9a-z]{1,})?$","i")},r=function(r,t){var n,e,i,a,s,p;if(r.indexOf("::")!==r.lastIndexOf("::"))return null;for((p=(r.match(o.zoneIndex)||[])[0])&&(p=p.substring(1),r=r.replace(/%.+$/,"")),n=0,e=-1;(e=r.indexOf(":",e+1))>=0;)n++;if("::"===r.substr(0,2)&&n--,"::"===r.substr(-2,2)&&n--,n>t)return null;for(s=t-n,a=":";s--;)a+="0:";return":"===(r=r.replace("::",a))[0]&&(r=r.slice(1)),":"===r[r.length-1]&&(r=r.slice(0,-1)),t=function(){var t,n,e,o;for(o=[],t=0,n=(e=r.split(":")).length;t=0&&t<=32)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},t.IPv4.subnetMaskFromPrefixLength=function(r){var t,n,e;if((r=parseInt(r))<0||r>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(e=[0,0,0,0],n=0,t=Math.floor(r/8);n=0&&t<=128)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},t.isValid=function(r){return t.IPv6.isValid(r)||t.IPv4.isValid(r)},t.parse=function(r){if(t.IPv6.isValid(r))return t.IPv6.parse(r);if(t.IPv4.isValid(r))return t.IPv4.parse(r);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},t.parseCIDR=function(r){try{return t.IPv6.parseCIDR(r)}catch(n){n;try{return t.IPv4.parseCIDR(r)}catch(r){throw r,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},t.fromByteArray=function(r){var n;if(4===(n=r.length))return new t.IPv4(r);if(16===n)return new t.IPv6(r);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},t.process=function(r){var t;return t=this.parse(r),"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t}}).call(this); \ No newline at end of file diff --git a/node_modules/ipaddr.js/lib/ipaddr.js b/node_modules/ipaddr.js/lib/ipaddr.js new file mode 100644 index 0000000..18bd93b --- /dev/null +++ b/node_modules/ipaddr.js/lib/ipaddr.js @@ -0,0 +1,673 @@ +(function() { + var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex; + + ipaddr = {}; + + root = this; + + if ((typeof module !== "undefined" && module !== null) && module.exports) { + module.exports = ipaddr; + } else { + root['ipaddr'] = ipaddr; + } + + matchCIDR = function(first, second, partSize, cidrBits) { + var part, shift; + if (first.length !== second.length) { + throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); + } + part = 0; + while (cidrBits > 0) { + shift = partSize - cidrBits; + if (shift < 0) { + shift = 0; + } + if (first[part] >> shift !== second[part] >> shift) { + return false; + } + cidrBits -= partSize; + part += 1; + } + return true; + }; + + ipaddr.subnetMatch = function(address, rangeList, defaultName) { + var k, len, rangeName, rangeSubnets, subnet; + if (defaultName == null) { + defaultName = 'unicast'; + } + for (rangeName in rangeList) { + rangeSubnets = rangeList[rangeName]; + if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { + rangeSubnets = [rangeSubnets]; + } + for (k = 0, len = rangeSubnets.length; k < len; k++) { + subnet = rangeSubnets[k]; + if (address.kind() === subnet[0].kind()) { + if (address.match.apply(address, subnet)) { + return rangeName; + } + } + } + } + return defaultName; + }; + + ipaddr.IPv4 = (function() { + function IPv4(octets) { + var k, len, octet; + if (octets.length !== 4) { + throw new Error("ipaddr: ipv4 octet count should be 4"); + } + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!((0 <= octet && octet <= 255))) { + throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); + } + } + this.octets = octets; + } + + IPv4.prototype.kind = function() { + return 'ipv4'; + }; + + IPv4.prototype.toString = function() { + return this.octets.join("."); + }; + + IPv4.prototype.toNormalizedString = function() { + return this.toString(); + }; + + IPv4.prototype.toByteArray = function() { + return this.octets.slice(0); + }; + + IPv4.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== 'ipv4') { + throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); + } + return matchCIDR(this.octets, other.octets, 8, cidrRange); + }; + + IPv4.prototype.SpecialRanges = { + unspecified: [[new IPv4([0, 0, 0, 0]), 8]], + broadcast: [[new IPv4([255, 255, 255, 255]), 32]], + multicast: [[new IPv4([224, 0, 0, 0]), 4]], + linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], + loopback: [[new IPv4([127, 0, 0, 0]), 8]], + carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]], + "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], + reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] + }; + + IPv4.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + + IPv4.prototype.toIPv4MappedAddress = function() { + return ipaddr.IPv6.parse("::ffff:" + (this.toString())); + }; + + IPv4.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, octet, stop, zeros, zerotable; + zerotable = { + 0: 8, + 128: 7, + 192: 6, + 224: 5, + 240: 4, + 248: 3, + 252: 2, + 254: 1, + 255: 0 + }; + cidr = 0; + stop = false; + for (i = k = 3; k >= 0; i = k += -1) { + octet = this.octets[i]; + if (octet in zerotable) { + zeros = zerotable[octet]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 8) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 32 - cidr; + }; + + return IPv4; + + })(); + + ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; + + ipv4Regexes = { + fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", 'i'), + longValue: new RegExp("^" + ipv4Part + "$", 'i') + }; + + ipaddr.IPv4.parser = function(string) { + var match, parseIntAuto, part, shift, value; + parseIntAuto = function(string) { + if (string[0] === "0" && string[1] !== "x") { + return parseInt(string, 8); + } else { + return parseInt(string); + } + }; + if (match = string.match(ipv4Regexes.fourOctet)) { + return (function() { + var k, len, ref, results; + ref = match.slice(1, 6); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseIntAuto(part)); + } + return results; + })(); + } else if (match = string.match(ipv4Regexes.longValue)) { + value = parseIntAuto(match[1]); + if (value > 0xffffffff || value < 0) { + throw new Error("ipaddr: address outside defined range"); + } + return ((function() { + var k, results; + results = []; + for (shift = k = 0; k <= 24; shift = k += 8) { + results.push((value >> shift) & 0xff); + } + return results; + })()).reverse(); + } else { + return null; + } + }; + + ipaddr.IPv6 = (function() { + function IPv6(parts, zoneId) { + var i, k, l, len, part, ref; + if (parts.length === 16) { + this.parts = []; + for (i = k = 0; k <= 14; i = k += 2) { + this.parts.push((parts[i] << 8) | parts[i + 1]); + } + } else if (parts.length === 8) { + this.parts = parts; + } else { + throw new Error("ipaddr: ipv6 part count should be 8 or 16"); + } + ref = this.parts; + for (l = 0, len = ref.length; l < len; l++) { + part = ref[l]; + if (!((0 <= part && part <= 0xffff))) { + throw new Error("ipaddr: ipv6 part should fit in 16 bits"); + } + } + if (zoneId) { + this.zoneId = zoneId; + } + } + + IPv6.prototype.kind = function() { + return 'ipv6'; + }; + + IPv6.prototype.toString = function() { + return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, '::'); + }; + + IPv6.prototype.toRFC5952String = function() { + var bestMatchIndex, bestMatchLength, match, regex, string; + regex = /((^|:)(0(:|$)){2,})/g; + string = this.toNormalizedString(); + bestMatchIndex = 0; + bestMatchLength = -1; + while ((match = regex.exec(string))) { + if (match[0].length > bestMatchLength) { + bestMatchIndex = match.index; + bestMatchLength = match[0].length; + } + } + if (bestMatchLength < 0) { + return string; + } + return string.substring(0, bestMatchIndex) + '::' + string.substring(bestMatchIndex + bestMatchLength); + }; + + IPv6.prototype.toByteArray = function() { + var bytes, k, len, part, ref; + bytes = []; + ref = this.parts; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + bytes.push(part >> 8); + bytes.push(part & 0xff); + } + return bytes; + }; + + IPv6.prototype.toNormalizedString = function() { + var addr, part, suffix; + addr = ((function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16)); + } + return results; + }).call(this)).join(":"); + suffix = ''; + if (this.zoneId) { + suffix = '%' + this.zoneId; + } + return addr + suffix; + }; + + IPv6.prototype.toFixedLengthString = function() { + var addr, part, suffix; + addr = ((function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16).padStart(4, '0')); + } + return results; + }).call(this)).join(":"); + suffix = ''; + if (this.zoneId) { + suffix = '%' + this.zoneId; + } + return addr + suffix; + }; + + IPv6.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== 'ipv6') { + throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); + } + return matchCIDR(this.parts, other.parts, 16, cidrRange); + }; + + IPv6.prototype.SpecialRanges = { + unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], + linkLocal: [new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10], + multicast: [new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8], + loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], + uniqueLocal: [new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7], + ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96], + rfc6145: [new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96], + rfc6052: [new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96], + '6to4': [new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16], + teredo: [new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32], + reserved: [[new IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32]] + }; + + IPv6.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + + IPv6.prototype.isIPv4MappedAddress = function() { + return this.range() === 'ipv4Mapped'; + }; + + IPv6.prototype.toIPv4Address = function() { + var high, low, ref; + if (!this.isIPv4MappedAddress()) { + throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); + } + ref = this.parts.slice(-2), high = ref[0], low = ref[1]; + return new ipaddr.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]); + }; + + IPv6.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, part, stop, zeros, zerotable; + zerotable = { + 0: 16, + 32768: 15, + 49152: 14, + 57344: 13, + 61440: 12, + 63488: 11, + 64512: 10, + 65024: 9, + 65280: 8, + 65408: 7, + 65472: 6, + 65504: 5, + 65520: 4, + 65528: 3, + 65532: 2, + 65534: 1, + 65535: 0 + }; + cidr = 0; + stop = false; + for (i = k = 7; k >= 0; i = k += -1) { + part = this.parts[i]; + if (part in zerotable) { + zeros = zerotable[part]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 16) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 128 - cidr; + }; + + return IPv6; + + })(); + + ipv6Part = "(?:[0-9a-f]+::?)+"; + + zoneIndex = "%[0-9a-z]{1,}"; + + ipv6Regexes = { + zoneIndex: new RegExp(zoneIndex, 'i'), + "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", 'i'), + transitional: new RegExp(("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)") + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), 'i') + }; + + expandIPv6 = function(string, parts) { + var colonCount, lastColon, part, replacement, replacementCount, zoneId; + if (string.indexOf('::') !== string.lastIndexOf('::')) { + return null; + } + zoneId = (string.match(ipv6Regexes['zoneIndex']) || [])[0]; + if (zoneId) { + zoneId = zoneId.substring(1); + string = string.replace(/%.+$/, ''); + } + colonCount = 0; + lastColon = -1; + while ((lastColon = string.indexOf(':', lastColon + 1)) >= 0) { + colonCount++; + } + if (string.substr(0, 2) === '::') { + colonCount--; + } + if (string.substr(-2, 2) === '::') { + colonCount--; + } + if (colonCount > parts) { + return null; + } + replacementCount = parts - colonCount; + replacement = ':'; + while (replacementCount--) { + replacement += '0:'; + } + string = string.replace('::', replacement); + if (string[0] === ':') { + string = string.slice(1); + } + if (string[string.length - 1] === ':') { + string = string.slice(0, -1); + } + parts = (function() { + var k, len, ref, results; + ref = string.split(":"); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseInt(part, 16)); + } + return results; + })(); + return { + parts: parts, + zoneId: zoneId + }; + }; + + ipaddr.IPv6.parser = function(string) { + var addr, k, len, match, octet, octets, zoneId; + if (ipv6Regexes['native'].test(string)) { + return expandIPv6(string, 8); + } else if (match = string.match(ipv6Regexes['transitional'])) { + zoneId = match[6] || ''; + addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6); + if (addr.parts) { + octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])]; + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!((0 <= octet && octet <= 255))) { + return null; + } + } + addr.parts.push(octets[0] << 8 | octets[1]); + addr.parts.push(octets[2] << 8 | octets[3]); + return { + parts: addr.parts, + zoneId: addr.zoneId + }; + } + } + return null; + }; + + ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { + return this.parser(string) !== null; + }; + + ipaddr.IPv4.isValid = function(string) { + var e; + try { + new this(this.parser(string)); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + + ipaddr.IPv4.isValidFourPartDecimal = function(string) { + if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { + return true; + } else { + return false; + } + }; + + ipaddr.IPv6.isValid = function(string) { + var addr, e; + if (typeof string === "string" && string.indexOf(":") === -1) { + return false; + } + try { + addr = this.parser(string); + new this(addr.parts, addr.zoneId); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + + ipaddr.IPv4.parse = function(string) { + var parts; + parts = this.parser(string); + if (parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(parts); + }; + + ipaddr.IPv6.parse = function(string) { + var addr; + addr = this.parser(string); + if (addr.parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(addr.parts, addr.zoneId); + }; + + ipaddr.IPv4.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 32) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, 'toString', { + value: function() { + return this.join('/'); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); + }; + + ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) { + var filledOctetCount, j, octets; + prefix = parseInt(prefix); + if (prefix < 0 || prefix > 32) { + throw new Error('ipaddr: invalid IPv4 prefix length'); + } + octets = [0, 0, 0, 0]; + j = 0; + filledOctetCount = Math.floor(prefix / 8); + while (j < filledOctetCount) { + octets[j] = 255; + j++; + } + if (filledOctetCount < 4) { + octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - (prefix % 8); + } + return new this(octets); + }; + + ipaddr.IPv4.broadcastAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error('ipaddr: the address does not have IPv4 CIDR format'); + } + }; + + ipaddr.IPv4.networkAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error('ipaddr: the address does not have IPv4 CIDR format'); + } + }; + + ipaddr.IPv6.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 128) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, 'toString', { + value: function() { + return this.join('/'); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); + }; + + ipaddr.isValid = function(string) { + return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); + }; + + ipaddr.parse = function(string) { + if (ipaddr.IPv6.isValid(string)) { + return ipaddr.IPv6.parse(string); + } else if (ipaddr.IPv4.isValid(string)) { + return ipaddr.IPv4.parse(string); + } else { + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); + } + }; + + ipaddr.parseCIDR = function(string) { + var e; + try { + return ipaddr.IPv6.parseCIDR(string); + } catch (error1) { + e = error1; + try { + return ipaddr.IPv4.parseCIDR(string); + } catch (error1) { + e = error1; + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); + } + } + }; + + ipaddr.fromByteArray = function(bytes) { + var length; + length = bytes.length; + if (length === 4) { + return new ipaddr.IPv4(bytes); + } else if (length === 16) { + return new ipaddr.IPv6(bytes); + } else { + throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); + } + }; + + ipaddr.process = function(string) { + var addr; + addr = this.parse(string); + if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) { + return addr.toIPv4Address(); + } else { + return addr; + } + }; + +}).call(this); diff --git a/node_modules/ipaddr.js/lib/ipaddr.js.d.ts b/node_modules/ipaddr.js/lib/ipaddr.js.d.ts new file mode 100644 index 0000000..52174b6 --- /dev/null +++ b/node_modules/ipaddr.js/lib/ipaddr.js.d.ts @@ -0,0 +1,68 @@ +declare module "ipaddr.js" { + type IPv4Range = 'unicast' | 'unspecified' | 'broadcast' | 'multicast' | 'linkLocal' | 'loopback' | 'carrierGradeNat' | 'private' | 'reserved'; + type IPv6Range = 'unicast' | 'unspecified' | 'linkLocal' | 'multicast' | 'loopback' | 'uniqueLocal' | 'ipv4Mapped' | 'rfc6145' | 'rfc6052' | '6to4' | 'teredo' | 'reserved'; + + interface RangeList { + [name: string]: [T, number] | [T, number][]; + } + + // Common methods/properties for IPv4 and IPv6 classes. + class IP { + prefixLengthFromSubnetMask(): number | null; + toByteArray(): number[]; + toNormalizedString(): string; + toString(): string; + } + + namespace Address { + export function isValid(addr: string): boolean; + export function fromByteArray(bytes: number[]): IPv4 | IPv6; + export function parse(addr: string): IPv4 | IPv6; + export function parseCIDR(mask: string): [IPv4 | IPv6, number]; + export function process(addr: string): IPv4 | IPv6; + export function subnetMatch(addr: IPv4, rangeList: RangeList, defaultName?: string): string; + export function subnetMatch(addr: IPv6, rangeList: RangeList, defaultName?: string): string; + + export class IPv4 extends IP { + static broadcastAddressFromCIDR(addr: string): IPv4; + static isIPv4(addr: string): boolean; + static isValidFourPartDecimal(addr: string): boolean; + static isValid(addr: string): boolean; + static networkAddressFromCIDR(addr: string): IPv4; + static parse(addr: string): IPv4; + static parseCIDR(addr: string): [IPv4, number]; + static subnetMaskFromPrefixLength(prefix: number): IPv4; + constructor(octets: number[]); + octets: number[] + + kind(): 'ipv4'; + match(addr: IPv4, bits: number): boolean; + match(mask: [IPv4, number]): boolean; + range(): IPv4Range; + subnetMatch(rangeList: RangeList, defaultName?: string): string; + toIPv4MappedAddress(): IPv6; + } + + export class IPv6 extends IP { + static broadcastAddressFromCIDR(addr: string): IPv6; + static isIPv6(addr: string): boolean; + static isValid(addr: string): boolean; + static parse(addr: string): IPv6; + static parseCIDR(addr: string): [IPv6, number]; + static subnetMaskFromPrefixLength(prefix: number): IPv6; + constructor(parts: number[]); + parts: number[] + zoneId?: string + + isIPv4MappedAddress(): boolean; + kind(): 'ipv6'; + match(addr: IPv6, bits: number): boolean; + match(mask: [IPv6, number]): boolean; + range(): IPv6Range; + subnetMatch(rangeList: RangeList, defaultName?: string): string; + toIPv4Address(): IPv4; + } + } + + export = Address; +} diff --git a/node_modules/ipaddr.js/package.json b/node_modules/ipaddr.js/package.json new file mode 100644 index 0000000..f4d3547 --- /dev/null +++ b/node_modules/ipaddr.js/package.json @@ -0,0 +1,35 @@ +{ + "name": "ipaddr.js", + "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", + "version": "1.9.1", + "author": "whitequark ", + "directories": { + "lib": "./lib" + }, + "dependencies": {}, + "devDependencies": { + "coffee-script": "~1.12.6", + "nodeunit": "^0.11.3", + "uglify-js": "~3.0.19" + }, + "scripts": { + "test": "cake build test" + }, + "files": [ + "lib/", + "LICENSE", + "ipaddr.min.js" + ], + "keywords": [ + "ip", + "ipv4", + "ipv6" + ], + "repository": "git://github.com/whitequark/ipaddr.js", + "main": "./lib/ipaddr.js", + "engines": { + "node": ">= 0.10" + }, + "license": "MIT", + "types": "./lib/ipaddr.js.d.ts" +} diff --git a/node_modules/is-binary-path/index.d.ts b/node_modules/is-binary-path/index.d.ts new file mode 100644 index 0000000..19dcd43 --- /dev/null +++ b/node_modules/is-binary-path/index.d.ts @@ -0,0 +1,17 @@ +/** +Check if a file path is a binary file. + +@example +``` +import isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` +*/ +declare function isBinaryPath(filePath: string): boolean; + +export = isBinaryPath; diff --git a/node_modules/is-binary-path/index.js b/node_modules/is-binary-path/index.js new file mode 100644 index 0000000..ef7548c --- /dev/null +++ b/node_modules/is-binary-path/index.js @@ -0,0 +1,7 @@ +'use strict'; +const path = require('path'); +const binaryExtensions = require('binary-extensions'); + +const extensions = new Set(binaryExtensions); + +module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); diff --git a/node_modules/is-binary-path/license b/node_modules/is-binary-path/license new file mode 100644 index 0000000..401b1c7 --- /dev/null +++ b/node_modules/is-binary-path/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/is-binary-path/package.json b/node_modules/is-binary-path/package.json new file mode 100644 index 0000000..a8d005a --- /dev/null +++ b/node_modules/is-binary-path/package.json @@ -0,0 +1,40 @@ +{ + "name": "is-binary-path", + "version": "2.1.0", + "description": "Check if a file path is a binary file", + "license": "MIT", + "repository": "sindresorhus/is-binary-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "path", + "check", + "detect", + "is" + ], + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-binary-path/readme.md b/node_modules/is-binary-path/readme.md new file mode 100644 index 0000000..b4ab025 --- /dev/null +++ b/node_modules/is-binary-path/readme.md @@ -0,0 +1,34 @@ +# is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) + +> Check if a file path is a binary file + + +## Install + +``` +$ npm install is-binary-path +``` + + +## Usage + +```js +const isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` + + +## Related + +- [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions +- [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) diff --git a/node_modules/is-extglob/LICENSE b/node_modules/is-extglob/LICENSE new file mode 100644 index 0000000..842218c --- /dev/null +++ b/node_modules/is-extglob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2016, Jon Schlinkert + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/is-extglob/README.md b/node_modules/is-extglob/README.md new file mode 100644 index 0000000..0416af5 --- /dev/null +++ b/node_modules/is-extglob/README.md @@ -0,0 +1,107 @@ +# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) + +> Returns true if a string has an extglob. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-extglob +``` + +## Usage + +```js +var isExtglob = require('is-extglob'); +``` + +**True** + +```js +isExtglob('?(abc)'); +isExtglob('@(abc)'); +isExtglob('!(abc)'); +isExtglob('*(abc)'); +isExtglob('+(abc)'); +``` + +**False** + +Escaped extglobs: + +```js +isExtglob('\\?(abc)'); +isExtglob('\\@(abc)'); +isExtglob('\\!(abc)'); +isExtglob('\\*(abc)'); +isExtglob('\\+(abc)'); +``` + +Everything else... + +```js +isExtglob('foo.js'); +isExtglob('!foo.js'); +isExtglob('*.js'); +isExtglob('**/abc.js'); +isExtglob('abc/*.js'); +isExtglob('abc/(aaa|bbb).js'); +isExtglob('abc/[a-z].js'); +isExtglob('abc/{a,b}.js'); +isExtglob('abc/?.js'); +isExtglob('abc.js'); +isExtglob('abc/def/ghi.js'); +``` + +## History + +**v2.0** + +Adds support for escaping. Escaped exglobs no longer return true. + +## About + +### Related projects + +* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") +* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") + +### Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +### Building docs + +_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ + +To generate the readme and API documentation with [verb](https://github.com/verbose/verb): + +```sh +$ npm install -g verb verb-generate-readme && verb +``` + +### Running tests + +Install dev dependencies: + +```sh +$ npm install -d && npm test +``` + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) + +### License + +Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ \ No newline at end of file diff --git a/node_modules/is-extglob/index.js b/node_modules/is-extglob/index.js new file mode 100644 index 0000000..c1d986f --- /dev/null +++ b/node_modules/is-extglob/index.js @@ -0,0 +1,20 @@ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + +module.exports = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } + + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } + + return false; +}; diff --git a/node_modules/is-extglob/package.json b/node_modules/is-extglob/package.json new file mode 100644 index 0000000..7a90836 --- /dev/null +++ b/node_modules/is-extglob/package.json @@ -0,0 +1,69 @@ +{ + "name": "is-extglob", + "description": "Returns true if a string has an extglob.", + "version": "2.1.1", + "homepage": "https://github.com/jonschlinkert/is-extglob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "repository": "jonschlinkert/is-extglob", + "bugs": { + "url": "https://github.com/jonschlinkert/is-extglob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "has-glob", + "is-glob", + "micromatch" + ] + }, + "reflinks": [ + "verb", + "verb-generate-readme" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/is-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/is-glob/README.md b/node_modules/is-glob/README.md new file mode 100644 index 0000000..740724b --- /dev/null +++ b/node_modules/is-glob/README.md @@ -0,0 +1,206 @@ +# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions) + +> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-glob +``` + +You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob). + +## Usage + +```js +var isGlob = require('is-glob'); +``` + +### Default behavior + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js'); +isGlob('*.js'); +isGlob('**/abc.js'); +isGlob('abc/*.js'); +isGlob('abc/(aaa|bbb).js'); +isGlob('abc/[a-z].js'); +isGlob('abc/{a,b}.js'); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js'); +isGlob('abc/!(a).js'); +isGlob('abc/+(a).js'); +isGlob('abc/*(a).js'); +isGlob('abc/?(a).js'); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('abc/\\@(a).js'); +isGlob('abc/\\!(a).js'); +isGlob('abc/\\+(a).js'); +isGlob('abc/\\*(a).js'); +isGlob('abc/\\?(a).js'); +isGlob('\\!foo.js'); +isGlob('\\*.js'); +isGlob('\\*\\*/abc.js'); +isGlob('abc/\\*.js'); +isGlob('abc/\\(aaa|bbb).js'); +isGlob('abc/\\[a-z].js'); +isGlob('abc/\\{a,b}.js'); +//=> false +``` + +Patterns that do not have glob patterns return `false`: + +```js +isGlob('abc.js'); +isGlob('abc/def/ghi.js'); +isGlob('foo.js'); +isGlob('abc/@.js'); +isGlob('abc/+.js'); +isGlob('abc/?.js'); +isGlob(); +isGlob(null); +//=> false +``` + +Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)): + +```js +isGlob(['**/*.js']); +isGlob(['foo.js']); +//=> false +``` + +### Option strict + +When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that +some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not. + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js', {strict: false}); +isGlob('*.js', {strict: false}); +isGlob('**/abc.js', {strict: false}); +isGlob('abc/*.js', {strict: false}); +isGlob('abc/(aaa|bbb).js', {strict: false}); +isGlob('abc/[a-z].js', {strict: false}); +isGlob('abc/{a,b}.js', {strict: false}); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js', {strict: false}); +isGlob('abc/!(a).js', {strict: false}); +isGlob('abc/+(a).js', {strict: false}); +isGlob('abc/*(a).js', {strict: false}); +isGlob('abc/?(a).js', {strict: false}); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('\\!foo.js', {strict: false}); +isGlob('\\*.js', {strict: false}); +isGlob('\\*\\*/abc.js', {strict: false}); +isGlob('abc/\\*.js', {strict: false}); +isGlob('abc/\\(aaa|bbb).js', {strict: false}); +isGlob('abc/\\[a-z].js', {strict: false}); +isGlob('abc/\\{a,b}.js', {strict: false}); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit") +* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks") +* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.") +* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 47 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [doowb](https://github.com/doowb) | +| 1 | [phated](https://github.com/phated) | +| 1 | [danhper](https://github.com/danhper) | +| 1 | [paulmillr](https://github.com/paulmillr) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._ \ No newline at end of file diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js new file mode 100644 index 0000000..620f563 --- /dev/null +++ b/node_modules/is-glob/index.js @@ -0,0 +1,150 @@ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +var isExtglob = require('is-extglob'); +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === '*') { + return true; + } + + if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { + return true; + } + + if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf(']', index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + + if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { + closeCurlyIndex = str.indexOf('}', index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + + if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { + closeParenIndex = str.indexOf(')', index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + + if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { + if (pipeIndex < index) { + pipeIndex = str.indexOf('|', index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { + closeParenIndex = str.indexOf(')', pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf('\\', pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +var relaxedCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +module.exports = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } + + if (isExtglob(str)) { + return true; + } + + var check = strictCheck; + + // optionally relax check + if (options && options.strict === false) { + check = relaxedCheck; + } + + return check(str); +}; diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json new file mode 100644 index 0000000..858af03 --- /dev/null +++ b/node_modules/is-glob/package.json @@ -0,0 +1,81 @@ +{ + "name": "is-glob", + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", + "version": "4.0.3", + "homepage": "https://github.com/micromatch/is-glob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Daniel Perez (https://tuvistavie.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/is-glob", + "bugs": { + "url": "https://github.com/micromatch/is-glob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha && node benchmark.js" + }, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "layout": "default", + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "assemble", + "base", + "update", + "verb" + ] + }, + "reflinks": [ + "assemble", + "bach", + "base", + "composer", + "gulp", + "has-glob", + "is-valid-glob", + "micromatch", + "npm", + "scaffold", + "verb", + "vinyl" + ] + } +} diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/is-number/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/is-number/README.md b/node_modules/is-number/README.md new file mode 100644 index 0000000..eb8149e --- /dev/null +++ b/node_modules/is-number/README.md @@ -0,0 +1,187 @@ +# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number) + +> Returns true if the value is a finite number. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-number +``` + +## Why is this needed? + +In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results: + +```js +console.log(+[]); //=> 0 +console.log(+''); //=> 0 +console.log(+' '); //=> 0 +console.log(typeof NaN); //=> 'number' +``` + +This library offers a performant way to smooth out edge cases like these. + +## Usage + +```js +const isNumber = require('is-number'); +``` + +See the [tests](./test.js) for more examples. + +### true + +```js +isNumber(5e3); // true +isNumber(0xff); // true +isNumber(-1.1); // true +isNumber(0); // true +isNumber(1); // true +isNumber(1.1); // true +isNumber(10); // true +isNumber(10.10); // true +isNumber(100); // true +isNumber('-1.1'); // true +isNumber('0'); // true +isNumber('012'); // true +isNumber('0xff'); // true +isNumber('1'); // true +isNumber('1.1'); // true +isNumber('10'); // true +isNumber('10.10'); // true +isNumber('100'); // true +isNumber('5e3'); // true +isNumber(parseInt('012')); // true +isNumber(parseFloat('012')); // true +``` + +### False + +Everything else is false, as you would expect: + +```js +isNumber(Infinity); // false +isNumber(NaN); // false +isNumber(null); // false +isNumber(undefined); // false +isNumber(''); // false +isNumber(' '); // false +isNumber('foo'); // false +isNumber([1]); // false +isNumber([]); // false +isNumber(function () {}); // false +isNumber({}); // false +``` + +## Release history + +### 7.0.0 + +* Refactor. Now uses `.isFinite` if it exists. +* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number. + +### 6.0.0 + +* Optimizations, thanks to @benaadams. + +### 5.0.0 + +**Breaking changes** + +* removed support for `instanceof Number` and `instanceof String` + +## Benchmarks + +As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail. + +``` +# all +v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled) +v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled) +parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled) +fastest is 'v7.0' + +# string +v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled) +v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled) +parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled) +fastest is 'parseFloat,v7.0' + +# number +v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled) +v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled) +parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled) +fastest is 'v6.0' +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 49 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [charlike-old](https://github.com/charlike-old) | +| 1 | [benaadams](https://github.com/benaadams) | +| 1 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 15, 2018._ \ No newline at end of file diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js new file mode 100644 index 0000000..27f19b7 --- /dev/null +++ b/node_modules/is-number/index.js @@ -0,0 +1,18 @@ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json new file mode 100644 index 0000000..3715072 --- /dev/null +++ b/node_modules/is-number/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-number", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "version": "7.0.0", + "homepage": "https://github.com/jonschlinkert/is-number", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Olsten Larck (https://i.am.charlike.online)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "jonschlinkert/is-number", + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.12.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "gulp-format-md": "^1.0.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "cast", + "check", + "coerce", + "coercion", + "finite", + "integer", + "is", + "isnan", + "is-nan", + "is-num", + "is-number", + "isnumber", + "isfinite", + "istype", + "kind", + "math", + "nan", + "num", + "number", + "numeric", + "parseFloat", + "parseInt", + "test", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "related": { + "list": [ + "is-plain-object", + "is-primitive", + "isobject", + "kind-of" + ] + }, + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/math-intrinsics/.eslintrc b/node_modules/math-intrinsics/.eslintrc new file mode 100644 index 0000000..d90a1bc --- /dev/null +++ b/node_modules/math-intrinsics/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "eqeqeq": ["error", "allow-null"], + "id-length": "off", + "new-cap": ["error", { + "capIsNewExceptions": [ + "RequireObjectCoercible", + "ToObject", + ], + }], + }, +} diff --git a/node_modules/math-intrinsics/.github/FUNDING.yml b/node_modules/math-intrinsics/.github/FUNDING.yml new file mode 100644 index 0000000..868f4ff --- /dev/null +++ b/node_modules/math-intrinsics/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/math-intrinsics +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/math-intrinsics/CHANGELOG.md b/node_modules/math-intrinsics/CHANGELOG.md new file mode 100644 index 0000000..9cf48f5 --- /dev/null +++ b/node_modules/math-intrinsics/CHANGELOG.md @@ -0,0 +1,24 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.0](https://github.com/es-shims/math-intrinsics/compare/v1.0.0...v1.1.0) - 2024-12-18 + +### Commits + +- [New] add `round` [`7cfb044`](https://github.com/es-shims/math-intrinsics/commit/7cfb04460c0fbdf1ca101eecbac3f59d11994130) +- [Tests] add attw [`e96be8f`](https://github.com/es-shims/math-intrinsics/commit/e96be8fbf58449eafe976446a0470e6ea561ad8d) +- [Dev Deps] update `@types/tape` [`30d0023`](https://github.com/es-shims/math-intrinsics/commit/30d00234ce8a3fa0094a61cd55d6686eb91e36ec) + +## v1.0.0 - 2024-12-11 + +### Commits + +- Initial implementation, tests, readme, types [`b898caa`](https://github.com/es-shims/math-intrinsics/commit/b898caae94e9994a94a42b8740f7bbcfd0a868fe) +- Initial commit [`02745b0`](https://github.com/es-shims/math-intrinsics/commit/02745b03a62255af8a332771987b55d127538d9c) +- [New] add `constants/maxArrayLength`, `mod` [`b978178`](https://github.com/es-shims/math-intrinsics/commit/b978178a57685bd23ed1c7efe2137f3784f5fcc5) +- npm init [`a39fc57`](https://github.com/es-shims/math-intrinsics/commit/a39fc57e5639a645d0bd52a0dc56202480223be2) +- Only apps should have lockfiles [`9451580`](https://github.com/es-shims/math-intrinsics/commit/94515800fb34db4f3cc7e99290042d45609ac7bd) diff --git a/node_modules/math-intrinsics/LICENSE b/node_modules/math-intrinsics/LICENSE new file mode 100644 index 0000000..34995e7 --- /dev/null +++ b/node_modules/math-intrinsics/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 ECMAScript Shims + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/math-intrinsics/README.md b/node_modules/math-intrinsics/README.md new file mode 100644 index 0000000..4a66dcf --- /dev/null +++ b/node_modules/math-intrinsics/README.md @@ -0,0 +1,50 @@ +# math-intrinsics [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +ES Math-related intrinsics and helpers, robustly cached. + + - `abs` + - `floor` + - `isFinite` + - `isInteger` + - `isNaN` + - `isNegativeZero` + - `max` + - `min` + - `mod` + - `pow` + - `round` + - `sign` + - `constants/maxArrayLength` + - `constants/maxSafeInteger` + - `constants/maxValue` + + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/math-intrinsics +[npm-version-svg]: https://versionbadg.es/es-shims/math-intrinsics.svg +[deps-svg]: https://david-dm.org/es-shims/math-intrinsics.svg +[deps-url]: https://david-dm.org/es-shims/math-intrinsics +[dev-deps-svg]: https://david-dm.org/es-shims/math-intrinsics/dev-status.svg +[dev-deps-url]: https://david-dm.org/es-shims/math-intrinsics#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/math-intrinsics.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/math-intrinsics.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-object.svg +[downloads-url]: https://npm-stat.com/charts.html?package=math-intrinsics +[codecov-image]: https://codecov.io/gh/es-shims/math-intrinsics/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/es-shims/math-intrinsics/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/math-intrinsics +[actions-url]: https://github.com/es-shims/math-intrinsics/actions diff --git a/node_modules/math-intrinsics/abs.d.ts b/node_modules/math-intrinsics/abs.d.ts new file mode 100644 index 0000000..14ad9c6 --- /dev/null +++ b/node_modules/math-intrinsics/abs.d.ts @@ -0,0 +1 @@ +export = Math.abs; \ No newline at end of file diff --git a/node_modules/math-intrinsics/abs.js b/node_modules/math-intrinsics/abs.js new file mode 100644 index 0000000..a751424 --- /dev/null +++ b/node_modules/math-intrinsics/abs.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./abs')} */ +module.exports = Math.abs; diff --git a/node_modules/math-intrinsics/constants/maxArrayLength.d.ts b/node_modules/math-intrinsics/constants/maxArrayLength.d.ts new file mode 100644 index 0000000..b92d46b --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxArrayLength.d.ts @@ -0,0 +1,3 @@ +declare const MAX_ARRAY_LENGTH: 4294967295; + +export = MAX_ARRAY_LENGTH; \ No newline at end of file diff --git a/node_modules/math-intrinsics/constants/maxArrayLength.js b/node_modules/math-intrinsics/constants/maxArrayLength.js new file mode 100644 index 0000000..cfc6aff --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxArrayLength.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./maxArrayLength')} */ +module.exports = 4294967295; // Math.pow(2, 32) - 1; diff --git a/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts b/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts new file mode 100644 index 0000000..fee3f62 --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts @@ -0,0 +1,3 @@ +declare const MAX_SAFE_INTEGER: 9007199254740991; + +export = MAX_SAFE_INTEGER; \ No newline at end of file diff --git a/node_modules/math-intrinsics/constants/maxSafeInteger.js b/node_modules/math-intrinsics/constants/maxSafeInteger.js new file mode 100644 index 0000000..b568ad3 --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxSafeInteger.js @@ -0,0 +1,5 @@ +'use strict'; + +/** @type {import('./maxSafeInteger')} */ +// eslint-disable-next-line no-extra-parens +module.exports = /** @type {import('./maxSafeInteger')} */ (Number.MAX_SAFE_INTEGER) || 9007199254740991; // Math.pow(2, 53) - 1; diff --git a/node_modules/math-intrinsics/constants/maxValue.d.ts b/node_modules/math-intrinsics/constants/maxValue.d.ts new file mode 100644 index 0000000..292cb82 --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxValue.d.ts @@ -0,0 +1,3 @@ +declare const MAX_VALUE: 1.7976931348623157e+308; + +export = MAX_VALUE; diff --git a/node_modules/math-intrinsics/constants/maxValue.js b/node_modules/math-intrinsics/constants/maxValue.js new file mode 100644 index 0000000..a2202dc --- /dev/null +++ b/node_modules/math-intrinsics/constants/maxValue.js @@ -0,0 +1,5 @@ +'use strict'; + +/** @type {import('./maxValue')} */ +// eslint-disable-next-line no-extra-parens +module.exports = /** @type {import('./maxValue')} */ (Number.MAX_VALUE) || 1.7976931348623157e+308; diff --git a/node_modules/math-intrinsics/floor.d.ts b/node_modules/math-intrinsics/floor.d.ts new file mode 100644 index 0000000..9265236 --- /dev/null +++ b/node_modules/math-intrinsics/floor.d.ts @@ -0,0 +1 @@ +export = Math.floor; \ No newline at end of file diff --git a/node_modules/math-intrinsics/floor.js b/node_modules/math-intrinsics/floor.js new file mode 100644 index 0000000..ab0e5d7 --- /dev/null +++ b/node_modules/math-intrinsics/floor.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./floor')} */ +module.exports = Math.floor; diff --git a/node_modules/math-intrinsics/isFinite.d.ts b/node_modules/math-intrinsics/isFinite.d.ts new file mode 100644 index 0000000..6daae33 --- /dev/null +++ b/node_modules/math-intrinsics/isFinite.d.ts @@ -0,0 +1,3 @@ +declare function isFinite(x: unknown): x is number | bigint; + +export = isFinite; \ No newline at end of file diff --git a/node_modules/math-intrinsics/isFinite.js b/node_modules/math-intrinsics/isFinite.js new file mode 100644 index 0000000..b201a5a --- /dev/null +++ b/node_modules/math-intrinsics/isFinite.js @@ -0,0 +1,12 @@ +'use strict'; + +var $isNaN = require('./isNaN'); + +/** @type {import('./isFinite')} */ +module.exports = function isFinite(x) { + return (typeof x === 'number' || typeof x === 'bigint') + && !$isNaN(x) + && x !== Infinity + && x !== -Infinity; +}; + diff --git a/node_modules/math-intrinsics/isInteger.d.ts b/node_modules/math-intrinsics/isInteger.d.ts new file mode 100644 index 0000000..13935a8 --- /dev/null +++ b/node_modules/math-intrinsics/isInteger.d.ts @@ -0,0 +1,3 @@ +declare function isInteger(argument: unknown): argument is number; + +export = isInteger; \ No newline at end of file diff --git a/node_modules/math-intrinsics/isInteger.js b/node_modules/math-intrinsics/isInteger.js new file mode 100644 index 0000000..4b1b9a5 --- /dev/null +++ b/node_modules/math-intrinsics/isInteger.js @@ -0,0 +1,16 @@ +'use strict'; + +var $abs = require('./abs'); +var $floor = require('./floor'); + +var $isNaN = require('./isNaN'); +var $isFinite = require('./isFinite'); + +/** @type {import('./isInteger')} */ +module.exports = function isInteger(argument) { + if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { + return false; + } + var absValue = $abs(argument); + return $floor(absValue) === absValue; +}; diff --git a/node_modules/math-intrinsics/isNaN.d.ts b/node_modules/math-intrinsics/isNaN.d.ts new file mode 100644 index 0000000..c1d4c55 --- /dev/null +++ b/node_modules/math-intrinsics/isNaN.d.ts @@ -0,0 +1 @@ +export = Number.isNaN; \ No newline at end of file diff --git a/node_modules/math-intrinsics/isNaN.js b/node_modules/math-intrinsics/isNaN.js new file mode 100644 index 0000000..e36475c --- /dev/null +++ b/node_modules/math-intrinsics/isNaN.js @@ -0,0 +1,6 @@ +'use strict'; + +/** @type {import('./isNaN')} */ +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; diff --git a/node_modules/math-intrinsics/isNegativeZero.d.ts b/node_modules/math-intrinsics/isNegativeZero.d.ts new file mode 100644 index 0000000..7ad8819 --- /dev/null +++ b/node_modules/math-intrinsics/isNegativeZero.d.ts @@ -0,0 +1,3 @@ +declare function isNegativeZero(x: unknown): boolean; + +export = isNegativeZero; \ No newline at end of file diff --git a/node_modules/math-intrinsics/isNegativeZero.js b/node_modules/math-intrinsics/isNegativeZero.js new file mode 100644 index 0000000..b69adcc --- /dev/null +++ b/node_modules/math-intrinsics/isNegativeZero.js @@ -0,0 +1,6 @@ +'use strict'; + +/** @type {import('./isNegativeZero')} */ +module.exports = function isNegativeZero(x) { + return x === 0 && 1 / x === 1 / -0; +}; diff --git a/node_modules/math-intrinsics/max.d.ts b/node_modules/math-intrinsics/max.d.ts new file mode 100644 index 0000000..ad6f43e --- /dev/null +++ b/node_modules/math-intrinsics/max.d.ts @@ -0,0 +1 @@ +export = Math.max; \ No newline at end of file diff --git a/node_modules/math-intrinsics/max.js b/node_modules/math-intrinsics/max.js new file mode 100644 index 0000000..edb55df --- /dev/null +++ b/node_modules/math-intrinsics/max.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./max')} */ +module.exports = Math.max; diff --git a/node_modules/math-intrinsics/min.d.ts b/node_modules/math-intrinsics/min.d.ts new file mode 100644 index 0000000..fd90f2d --- /dev/null +++ b/node_modules/math-intrinsics/min.d.ts @@ -0,0 +1 @@ +export = Math.min; \ No newline at end of file diff --git a/node_modules/math-intrinsics/min.js b/node_modules/math-intrinsics/min.js new file mode 100644 index 0000000..5a4a7c7 --- /dev/null +++ b/node_modules/math-intrinsics/min.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./min')} */ +module.exports = Math.min; diff --git a/node_modules/math-intrinsics/mod.d.ts b/node_modules/math-intrinsics/mod.d.ts new file mode 100644 index 0000000..549dbd4 --- /dev/null +++ b/node_modules/math-intrinsics/mod.d.ts @@ -0,0 +1,3 @@ +declare function mod(number: number, modulo: number): number; + +export = mod; \ No newline at end of file diff --git a/node_modules/math-intrinsics/mod.js b/node_modules/math-intrinsics/mod.js new file mode 100644 index 0000000..4a98362 --- /dev/null +++ b/node_modules/math-intrinsics/mod.js @@ -0,0 +1,9 @@ +'use strict'; + +var $floor = require('./floor'); + +/** @type {import('./mod')} */ +module.exports = function mod(number, modulo) { + var remain = number % modulo; + return $floor(remain >= 0 ? remain : remain + modulo); +}; diff --git a/node_modules/math-intrinsics/package.json b/node_modules/math-intrinsics/package.json new file mode 100644 index 0000000..0676273 --- /dev/null +++ b/node_modules/math-intrinsics/package.json @@ -0,0 +1,86 @@ +{ + "name": "math-intrinsics", + "version": "1.1.0", + "description": "ES Math-related intrinsics and helpers, robustly cached.", + "main": false, + "exports": { + "./abs": "./abs.js", + "./floor": "./floor.js", + "./isFinite": "./isFinite.js", + "./isInteger": "./isInteger.js", + "./isNaN": "./isNaN.js", + "./isNegativeZero": "./isNegativeZero.js", + "./max": "./max.js", + "./min": "./min.js", + "./mod": "./mod.js", + "./pow": "./pow.js", + "./sign": "./sign.js", + "./round": "./round.js", + "./constants/maxArrayLength": "./constants/maxArrayLength.js", + "./constants/maxSafeInteger": "./constants/maxSafeInteger.js", + "./constants/maxValue": "./constants/maxValue.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@'>= 10.2' audit --production", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/es-shims/math-intrinsics.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/es-shims/math-intrinsics/issues" + }, + "homepage": "https://github.com/es-shims/math-intrinsics#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/for-each": "^0.3.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.0", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.5.0", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/math-intrinsics/pow.d.ts b/node_modules/math-intrinsics/pow.d.ts new file mode 100644 index 0000000..5873c44 --- /dev/null +++ b/node_modules/math-intrinsics/pow.d.ts @@ -0,0 +1 @@ +export = Math.pow; \ No newline at end of file diff --git a/node_modules/math-intrinsics/pow.js b/node_modules/math-intrinsics/pow.js new file mode 100644 index 0000000..c0a4103 --- /dev/null +++ b/node_modules/math-intrinsics/pow.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./pow')} */ +module.exports = Math.pow; diff --git a/node_modules/math-intrinsics/round.d.ts b/node_modules/math-intrinsics/round.d.ts new file mode 100644 index 0000000..da1fde3 --- /dev/null +++ b/node_modules/math-intrinsics/round.d.ts @@ -0,0 +1 @@ +export = Math.round; \ No newline at end of file diff --git a/node_modules/math-intrinsics/round.js b/node_modules/math-intrinsics/round.js new file mode 100644 index 0000000..b792156 --- /dev/null +++ b/node_modules/math-intrinsics/round.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./round')} */ +module.exports = Math.round; diff --git a/node_modules/math-intrinsics/sign.d.ts b/node_modules/math-intrinsics/sign.d.ts new file mode 100644 index 0000000..c49ceca --- /dev/null +++ b/node_modules/math-intrinsics/sign.d.ts @@ -0,0 +1,3 @@ +declare function sign(x: number): number; + +export = sign; \ No newline at end of file diff --git a/node_modules/math-intrinsics/sign.js b/node_modules/math-intrinsics/sign.js new file mode 100644 index 0000000..9e5173c --- /dev/null +++ b/node_modules/math-intrinsics/sign.js @@ -0,0 +1,11 @@ +'use strict'; + +var $isNaN = require('./isNaN'); + +/** @type {import('./sign')} */ +module.exports = function sign(number) { + if ($isNaN(number) || number === 0) { + return number; + } + return number < 0 ? -1 : +1; +}; diff --git a/node_modules/math-intrinsics/test/index.js b/node_modules/math-intrinsics/test/index.js new file mode 100644 index 0000000..0f90a5d --- /dev/null +++ b/node_modules/math-intrinsics/test/index.js @@ -0,0 +1,192 @@ +'use strict'; + +var test = require('tape'); +var v = require('es-value-fixtures'); +var forEach = require('for-each'); +var inspect = require('object-inspect'); + +var abs = require('../abs'); +var floor = require('../floor'); +var isFinite = require('../isFinite'); +var isInteger = require('../isInteger'); +var isNaN = require('../isNaN'); +var isNegativeZero = require('../isNegativeZero'); +var max = require('../max'); +var min = require('../min'); +var mod = require('../mod'); +var pow = require('../pow'); +var round = require('../round'); +var sign = require('../sign'); + +var maxArrayLength = require('../constants/maxArrayLength'); +var maxSafeInteger = require('../constants/maxSafeInteger'); +var maxValue = require('../constants/maxValue'); + +test('abs', function (t) { + t.equal(abs(-1), 1, 'abs(-1) === 1'); + t.equal(abs(+1), 1, 'abs(+1) === 1'); + t.equal(abs(+0), +0, 'abs(+0) === +0'); + t.equal(abs(-0), +0, 'abs(-0) === +0'); + + t.end(); +}); + +test('floor', function (t) { + t.equal(floor(-1.1), -2, 'floor(-1.1) === -2'); + t.equal(floor(+1.1), 1, 'floor(+1.1) === 1'); + t.equal(floor(+0), +0, 'floor(+0) === +0'); + t.equal(floor(-0), -0, 'floor(-0) === -0'); + t.equal(floor(-Infinity), -Infinity, 'floor(-Infinity) === -Infinity'); + t.equal(floor(Number(Infinity)), Number(Infinity), 'floor(+Infinity) === +Infinity'); + t.equal(floor(NaN), NaN, 'floor(NaN) === NaN'); + t.equal(floor(0), +0, 'floor(0) === +0'); + t.equal(floor(-0), -0, 'floor(-0) === -0'); + t.equal(floor(1), 1, 'floor(1) === 1'); + t.equal(floor(-1), -1, 'floor(-1) === -1'); + t.equal(floor(1.1), 1, 'floor(1.1) === 1'); + t.equal(floor(-1.1), -2, 'floor(-1.1) === -2'); + t.equal(floor(maxValue), maxValue, 'floor(maxValue) === maxValue'); + t.equal(floor(maxSafeInteger), maxSafeInteger, 'floor(maxSafeInteger) === maxSafeInteger'); + + t.end(); +}); + +test('isFinite', function (t) { + t.equal(isFinite(0), true, 'isFinite(+0) === true'); + t.equal(isFinite(-0), true, 'isFinite(-0) === true'); + t.equal(isFinite(1), true, 'isFinite(1) === true'); + t.equal(isFinite(Infinity), false, 'isFinite(Infinity) === false'); + t.equal(isFinite(-Infinity), false, 'isFinite(-Infinity) === false'); + t.equal(isFinite(NaN), false, 'isFinite(NaN) === false'); + + forEach(v.nonNumbers, function (nonNumber) { + t.equal(isFinite(nonNumber), false, 'isFinite(' + inspect(nonNumber) + ') === false'); + }); + + t.end(); +}); + +test('isInteger', function (t) { + forEach([].concat( + // @ts-expect-error TS sucks with concat + v.nonNumbers, + v.nonIntegerNumbers + ), function (nonInteger) { + t.equal(isInteger(nonInteger), false, 'isInteger(' + inspect(nonInteger) + ') === false'); + }); + + t.end(); +}); + +test('isNaN', function (t) { + forEach([].concat( + // @ts-expect-error TS sucks with concat + v.nonNumbers, + v.infinities, + v.zeroes, + v.integerNumbers + ), function (nonNaN) { + t.equal(isNaN(nonNaN), false, 'isNaN(' + inspect(nonNaN) + ') === false'); + }); + + t.equal(isNaN(NaN), true, 'isNaN(NaN) === true'); + + t.end(); +}); + +test('isNegativeZero', function (t) { + t.equal(isNegativeZero(-0), true, 'isNegativeZero(-0) === true'); + t.equal(isNegativeZero(+0), false, 'isNegativeZero(+0) === false'); + t.equal(isNegativeZero(1), false, 'isNegativeZero(1) === false'); + t.equal(isNegativeZero(-1), false, 'isNegativeZero(-1) === false'); + t.equal(isNegativeZero(NaN), false, 'isNegativeZero(NaN) === false'); + t.equal(isNegativeZero(Infinity), false, 'isNegativeZero(Infinity) === false'); + t.equal(isNegativeZero(-Infinity), false, 'isNegativeZero(-Infinity) === false'); + + forEach(v.nonNumbers, function (nonNumber) { + t.equal(isNegativeZero(nonNumber), false, 'isNegativeZero(' + inspect(nonNumber) + ') === false'); + }); + + t.end(); +}); + +test('max', function (t) { + t.equal(max(1, 2), 2, 'max(1, 2) === 2'); + t.equal(max(1, 2, 3), 3, 'max(1, 2, 3) === 3'); + t.equal(max(1, 2, 3, 4), 4, 'max(1, 2, 3, 4) === 4'); + t.equal(max(1, 2, 3, 4, 5), 5, 'max(1, 2, 3, 4, 5) === 5'); + t.equal(max(1, 2, 3, 4, 5, 6), 6, 'max(1, 2, 3, 4, 5, 6) === 6'); + t.equal(max(1, 2, 3, 4, 5, 6, 7), 7, 'max(1, 2, 3, 4, 5, 6, 7) === 7'); + + t.end(); +}); + +test('min', function (t) { + t.equal(min(1, 2), 1, 'min(1, 2) === 1'); + t.equal(min(1, 2, 3), 1, 'min(1, 2, 3) === 1'); + t.equal(min(1, 2, 3, 4), 1, 'min(1, 2, 3, 4) === 1'); + t.equal(min(1, 2, 3, 4, 5), 1, 'min(1, 2, 3, 4, 5) === 1'); + t.equal(min(1, 2, 3, 4, 5, 6), 1, 'min(1, 2, 3, 4, 5, 6) === 1'); + + t.end(); +}); + +test('mod', function (t) { + t.equal(mod(1, 2), 1, 'mod(1, 2) === 1'); + t.equal(mod(2, 2), 0, 'mod(2, 2) === 0'); + t.equal(mod(3, 2), 1, 'mod(3, 2) === 1'); + t.equal(mod(4, 2), 0, 'mod(4, 2) === 0'); + t.equal(mod(5, 2), 1, 'mod(5, 2) === 1'); + t.equal(mod(6, 2), 0, 'mod(6, 2) === 0'); + t.equal(mod(7, 2), 1, 'mod(7, 2) === 1'); + t.equal(mod(8, 2), 0, 'mod(8, 2) === 0'); + t.equal(mod(9, 2), 1, 'mod(9, 2) === 1'); + t.equal(mod(10, 2), 0, 'mod(10, 2) === 0'); + t.equal(mod(11, 2), 1, 'mod(11, 2) === 1'); + + t.end(); +}); + +test('pow', function (t) { + t.equal(pow(2, 2), 4, 'pow(2, 2) === 4'); + t.equal(pow(2, 3), 8, 'pow(2, 3) === 8'); + t.equal(pow(2, 4), 16, 'pow(2, 4) === 16'); + t.equal(pow(2, 5), 32, 'pow(2, 5) === 32'); + t.equal(pow(2, 6), 64, 'pow(2, 6) === 64'); + t.equal(pow(2, 7), 128, 'pow(2, 7) === 128'); + t.equal(pow(2, 8), 256, 'pow(2, 8) === 256'); + t.equal(pow(2, 9), 512, 'pow(2, 9) === 512'); + t.equal(pow(2, 10), 1024, 'pow(2, 10) === 1024'); + + t.end(); +}); + +test('round', function (t) { + t.equal(round(1.1), 1, 'round(1.1) === 1'); + t.equal(round(1.5), 2, 'round(1.5) === 2'); + t.equal(round(1.9), 2, 'round(1.9) === 2'); + + t.end(); +}); + +test('sign', function (t) { + t.equal(sign(-1), -1, 'sign(-1) === -1'); + t.equal(sign(+1), +1, 'sign(+1) === +1'); + t.equal(sign(+0), +0, 'sign(+0) === +0'); + t.equal(sign(-0), -0, 'sign(-0) === -0'); + t.equal(sign(NaN), NaN, 'sign(NaN) === NaN'); + t.equal(sign(Infinity), +1, 'sign(Infinity) === +1'); + t.equal(sign(-Infinity), -1, 'sign(-Infinity) === -1'); + t.equal(sign(maxValue), +1, 'sign(maxValue) === +1'); + t.equal(sign(maxSafeInteger), +1, 'sign(maxSafeInteger) === +1'); + + t.end(); +}); + +test('constants', function (t) { + t.equal(typeof maxArrayLength, 'number', 'typeof maxArrayLength === "number"'); + t.equal(typeof maxSafeInteger, 'number', 'typeof maxSafeInteger === "number"'); + t.equal(typeof maxValue, 'number', 'typeof maxValue === "number"'); + + t.end(); +}); diff --git a/node_modules/math-intrinsics/tsconfig.json b/node_modules/math-intrinsics/tsconfig.json new file mode 100644 index 0000000..b131000 --- /dev/null +++ b/node_modules/math-intrinsics/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@ljharb/tsconfig", +} diff --git a/node_modules/media-typer/HISTORY.md b/node_modules/media-typer/HISTORY.md new file mode 100644 index 0000000..62c2003 --- /dev/null +++ b/node_modules/media-typer/HISTORY.md @@ -0,0 +1,22 @@ +0.3.0 / 2014-09-07 +================== + + * Support Node.js 0.6 + * Throw error when parameter format invalid on parse + +0.2.0 / 2014-06-18 +================== + + * Add `typer.format()` to format media types + +0.1.0 / 2014-06-17 +================== + + * Accept `req` as argument to `parse` + * Accept `res` as argument to `parse` + * Parse media type with extra LWS between type and first parameter + +0.0.0 / 2014-06-13 +================== + + * Initial implementation diff --git a/node_modules/media-typer/LICENSE b/node_modules/media-typer/LICENSE new file mode 100644 index 0000000..b7dce6c --- /dev/null +++ b/node_modules/media-typer/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/media-typer/README.md b/node_modules/media-typer/README.md new file mode 100644 index 0000000..d8df623 --- /dev/null +++ b/node_modules/media-typer/README.md @@ -0,0 +1,81 @@ +# media-typer + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Simple RFC 6838 media type parser + +## Installation + +```sh +$ npm install media-typer +``` + +## API + +```js +var typer = require('media-typer') +``` + +### typer.parse(string) + +```js +var obj = typer.parse('image/svg+xml; charset=utf-8') +``` + +Parse a media type string. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The type of the media type (always lower case). Example: `'image'` + + - `subtype`: The subtype of the media type (always lower case). Example: `'svg'` + + - `suffix`: The suffix of the media type (always lower case). Example: `'xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter always lower case). Example: `{charset: 'utf-8'}` + +### typer.parse(req) + +```js +var obj = typer.parse(req) +``` + +Parse the `content-type` header from the given `req`. Short-cut for +`typer.parse(req.headers['content-type'])`. + +### typer.parse(res) + +```js +var obj = typer.parse(res) +``` + +Parse the `content-type` header set on the given `res`. Short-cut for +`typer.parse(res.getHeader('content-type'))`. + +### typer.format(obj) + +```js +var obj = typer.format({type: 'image', subtype: 'svg', suffix: 'xml'}) +``` + +Format an object into a media type string. This will return a string of the +mime type for the given object. For the properties of the object, see the +documentation for `typer.parse(string)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/media-typer.svg?style=flat +[npm-url]: https://npmjs.org/package/media-typer +[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat +[node-version-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/jshttp/media-typer.svg?style=flat +[travis-url]: https://travis-ci.org/jshttp/media-typer +[coveralls-image]: https://img.shields.io/coveralls/jshttp/media-typer.svg?style=flat +[coveralls-url]: https://coveralls.io/r/jshttp/media-typer +[downloads-image]: https://img.shields.io/npm/dm/media-typer.svg?style=flat +[downloads-url]: https://npmjs.org/package/media-typer diff --git a/node_modules/media-typer/index.js b/node_modules/media-typer/index.js new file mode 100644 index 0000000..07f7295 --- /dev/null +++ b/node_modules/media-typer/index.js @@ -0,0 +1,270 @@ +/*! + * media-typer + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * RegExp to match *( ";" parameter ) in RFC 2616 sec 3.7 + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * SHT = + * CTL = + * OCTET = + */ +var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; +var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/ +var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/ + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + */ +var qescRegExp = /\\([\u0000-\u007f])/g; + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + */ +var quoteRegExp = /([\\"])/g; + +/** + * RegExp to match type in RFC 6838 + * + * type-name = restricted-name + * subtype-name = restricted-name + * restricted-name = restricted-name-first *126restricted-name-chars + * restricted-name-first = ALPHA / DIGIT + * restricted-name-chars = ALPHA / DIGIT / "!" / "#" / + * "$" / "&" / "-" / "^" / "_" + * restricted-name-chars =/ "." ; Characters before first dot always + * ; specify a facet name + * restricted-name-chars =/ "+" ; Characters after last plus always + * ; specify a structured syntax suffix + * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z + * DIGIT = %x30-39 ; 0-9 + */ +var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/ +var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/ +var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + +/** + * Module exports. + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @api public + */ + +function format(obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var subtype = obj.subtype + var suffix = obj.suffix + var type = obj.type + + if (!type || !typeNameRegExp.test(type)) { + throw new TypeError('invalid type') + } + + if (!subtype || !subtypeNameRegExp.test(subtype)) { + throw new TypeError('invalid subtype') + } + + // format as type/subtype + var string = type + '/' + subtype + + // append +suffix + if (suffix) { + if (!typeNameRegExp.test(suffix)) { + throw new TypeError('invalid suffix') + } + + string += '+' + suffix + } + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!tokenRegExp.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @api public + */ + +function parse(string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + if (typeof string === 'object') { + string = getcontenttype(string) + } + + if (typeof string !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = string.indexOf(';') + var type = index !== -1 + ? string.substr(0, index) + : string + + var key + var match + var obj = splitType(type) + var params = {} + var value + + paramRegExp.lastIndex = index + + while (match = paramRegExp.exec(string)) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(qescRegExp, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + obj.parameters = params + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @api private + */ + +function getcontenttype(obj) { + if (typeof obj.getHeader === 'function') { + // res-like + return obj.getHeader('content-type') + } + + if (typeof obj.headers === 'object') { + // req-like + return obj.headers && obj.headers['content-type'] + } +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @api private + */ + +function qstring(val) { + var str = String(val) + + // no need to quote tokens + if (tokenRegExp.test(str)) { + return str + } + + if (str.length > 0 && !textRegExp.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(quoteRegExp, '\\$1') + '"' +} + +/** + * Simply "type/subtype+siffx" into parts. + * + * @param {string} string + * @return {Object} + * @api private + */ + +function splitType(string) { + var match = typeRegExp.exec(string.toLowerCase()) + + if (!match) { + throw new TypeError('invalid media type') + } + + var type = match[1] + var subtype = match[2] + var suffix + + // suffix after last + + var index = subtype.lastIndexOf('+') + if (index !== -1) { + suffix = subtype.substr(index + 1) + subtype = subtype.substr(0, index) + } + + var obj = { + type: type, + subtype: subtype, + suffix: suffix + } + + return obj +} diff --git a/node_modules/media-typer/package.json b/node_modules/media-typer/package.json new file mode 100644 index 0000000..8cf3ebc --- /dev/null +++ b/node_modules/media-typer/package.json @@ -0,0 +1,26 @@ +{ + "name": "media-typer", + "description": "Simple RFC 6838 media type parser and formatter", + "version": "0.3.0", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "repository": "jshttp/media-typer", + "devDependencies": { + "istanbul": "0.3.2", + "mocha": "~1.21.4", + "should": "~4.0.4" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/merge-descriptors/HISTORY.md b/node_modules/merge-descriptors/HISTORY.md new file mode 100644 index 0000000..486771f --- /dev/null +++ b/node_modules/merge-descriptors/HISTORY.md @@ -0,0 +1,21 @@ +1.0.1 / 2016-01-17 +================== + + * perf: enable strict mode + +1.0.0 / 2015-03-01 +================== + + * Add option to only add new descriptors + * Add simple argument validation + * Add jsdoc to source file + +0.0.2 / 2013-12-14 +================== + + * Move repository to `component` organization + +0.0.1 / 2013-10-29 +================== + + * Initial release diff --git a/node_modules/merge-descriptors/LICENSE b/node_modules/merge-descriptors/LICENSE new file mode 100644 index 0000000..274bfd8 --- /dev/null +++ b/node_modules/merge-descriptors/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/merge-descriptors/README.md b/node_modules/merge-descriptors/README.md new file mode 100644 index 0000000..3403f4a --- /dev/null +++ b/node_modules/merge-descriptors/README.md @@ -0,0 +1,49 @@ +# merge-descriptors + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Merge objects using descriptors. + +```js +var thing = { + get name() { + return 'jon' + } +} + +var animal = { + +} + +merge(animal, thing) + +animal.name === 'jon' +``` + +## API + +### merge(destination, source) + +Redefines `destination`'s descriptors with `source`'s. The return value is the +`destination` object. + +### merge(destination, source, false) + +Defines `source`'s descriptors on `destination` if `destination` does not have +a descriptor by the same name. The return value is the `destination` object. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/merge-descriptors.svg +[npm-url]: https://npmjs.org/package/merge-descriptors +[travis-image]: https://img.shields.io/travis/component/merge-descriptors/master.svg +[travis-url]: https://travis-ci.org/component/merge-descriptors +[coveralls-image]: https://img.shields.io/coveralls/component/merge-descriptors/master.svg +[coveralls-url]: https://coveralls.io/r/component/merge-descriptors?branch=master +[downloads-image]: https://img.shields.io/npm/dm/merge-descriptors.svg +[downloads-url]: https://npmjs.org/package/merge-descriptors diff --git a/node_modules/merge-descriptors/index.js b/node_modules/merge-descriptors/index.js new file mode 100644 index 0000000..f22ebab --- /dev/null +++ b/node_modules/merge-descriptors/index.js @@ -0,0 +1,60 @@ +/*! + * merge-descriptors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = merge + +/** + * Module variables. + * @private + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty + +/** + * Merge the property descriptors of `src` into `dest` + * + * @param {object} dest Object to add descriptors to + * @param {object} src Object to clone descriptors from + * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties + * @returns {object} Reference to dest + * @public + */ + +function merge (dest, src, redefine) { + if (!dest) { + throw new TypeError('argument dest is required') + } + + if (!src) { + throw new TypeError('argument src is required') + } + + if (redefine === undefined) { + // Default to true + redefine = true + } + + Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName (name) { + if (!redefine && hasOwnProperty.call(dest, name)) { + // Skip descriptor + return + } + + // Copy descriptor + var descriptor = Object.getOwnPropertyDescriptor(src, name) + Object.defineProperty(dest, name, descriptor) + }) + + return dest +} diff --git a/node_modules/merge-descriptors/package.json b/node_modules/merge-descriptors/package.json new file mode 100644 index 0000000..aa9af0a --- /dev/null +++ b/node_modules/merge-descriptors/package.json @@ -0,0 +1,39 @@ +{ + "name": "merge-descriptors", + "description": "Merge objects using descriptors", + "version": "1.0.3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com", + "twitter": "https://twitter.com/jongleberry" + }, + "contributors": [ + "Douglas Christopher Wilson ", + "Mike Grabowski " + ], + "license": "MIT", + "repository": "sindresorhus/merge-descriptors", + "funding": "https://github.com/sponsors/sindresorhus", + "devDependencies": { + "eslint": "5.9.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.0.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "5.2.0", + "nyc": "13.1.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "test": "mocha test/", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/methods/HISTORY.md b/node_modules/methods/HISTORY.md new file mode 100644 index 0000000..c0ecf07 --- /dev/null +++ b/node_modules/methods/HISTORY.md @@ -0,0 +1,29 @@ +1.1.2 / 2016-01-17 +================== + + * perf: enable strict mode + +1.1.1 / 2014-12-30 +================== + + * Improve `browserify` support + +1.1.0 / 2014-07-05 +================== + + * Add `CONNECT` method + +1.0.1 / 2014-06-02 +================== + + * Fix module to work with harmony transform + +1.0.0 / 2014-05-08 +================== + + * Add `PURGE` method + +0.1.0 / 2013-10-28 +================== + + * Add `http.METHODS` support diff --git a/node_modules/methods/LICENSE b/node_modules/methods/LICENSE new file mode 100644 index 0000000..220dc1a --- /dev/null +++ b/node_modules/methods/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2013-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. + diff --git a/node_modules/methods/README.md b/node_modules/methods/README.md new file mode 100644 index 0000000..672a32b --- /dev/null +++ b/node_modules/methods/README.md @@ -0,0 +1,51 @@ +# Methods + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP verbs that Node.js core's HTTP parser supports. + +This module provides an export that is just like `http.METHODS` from Node.js core, +with the following differences: + + * All method names are lower-cased. + * Contains a fallback list of methods for Node.js versions that do not have a + `http.METHODS` export (0.10 and lower). + * Provides the fallback list when using tools like `browserify` without pulling + in the `http` shim module. + +## Install + +```bash +$ npm install methods +``` + +## API + +```js +var methods = require('methods') +``` + +### methods + +This is an array of lower-cased method names that Node.js supports. If Node.js +provides the `http.METHODS` export, then this is the same array lower-cased, +otherwise it is a snapshot of the verbs from Node.js 0.10. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/methods.svg?style=flat +[npm-url]: https://npmjs.org/package/methods +[node-version-image]: https://img.shields.io/node/v/methods.svg?style=flat +[node-version-url]: https://nodejs.org/en/download/ +[travis-image]: https://img.shields.io/travis/jshttp/methods.svg?style=flat +[travis-url]: https://travis-ci.org/jshttp/methods +[coveralls-image]: https://img.shields.io/coveralls/jshttp/methods.svg?style=flat +[coveralls-url]: https://coveralls.io/r/jshttp/methods?branch=master +[downloads-image]: https://img.shields.io/npm/dm/methods.svg?style=flat +[downloads-url]: https://npmjs.org/package/methods diff --git a/node_modules/methods/index.js b/node_modules/methods/index.js new file mode 100644 index 0000000..667a50b --- /dev/null +++ b/node_modules/methods/index.js @@ -0,0 +1,69 @@ +/*! + * methods + * Copyright(c) 2013-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var http = require('http'); + +/** + * Module exports. + * @public + */ + +module.exports = getCurrentNodeMethods() || getBasicNodeMethods(); + +/** + * Get the current Node.js methods. + * @private + */ + +function getCurrentNodeMethods() { + return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) { + return method.toLowerCase(); + }); +} + +/** + * Get the "basic" Node.js methods, a snapshot from Node.js 0.10. + * @private + */ + +function getBasicNodeMethods() { + return [ + 'get', + 'post', + 'put', + 'head', + 'delete', + 'options', + 'trace', + 'copy', + 'lock', + 'mkcol', + 'move', + 'purge', + 'propfind', + 'proppatch', + 'unlock', + 'report', + 'mkactivity', + 'checkout', + 'merge', + 'm-search', + 'notify', + 'subscribe', + 'unsubscribe', + 'patch', + 'search', + 'connect' + ]; +} diff --git a/node_modules/methods/package.json b/node_modules/methods/package.json new file mode 100644 index 0000000..c4ce6f0 --- /dev/null +++ b/node_modules/methods/package.json @@ -0,0 +1,36 @@ +{ + "name": "methods", + "description": "HTTP methods that node supports", + "version": "1.1.2", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)", + "TJ Holowaychuk (http://tjholowaychuk.com)" + ], + "license": "MIT", + "repository": "jshttp/methods", + "devDependencies": { + "istanbul": "0.4.1", + "mocha": "1.21.5" + }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "browser": { + "http": false + }, + "keywords": [ + "http", + "methods" + ] +} diff --git a/node_modules/mime-db/HISTORY.md b/node_modules/mime-db/HISTORY.md new file mode 100644 index 0000000..7436f64 --- /dev/null +++ b/node_modules/mime-db/HISTORY.md @@ -0,0 +1,507 @@ +1.52.0 / 2022-02-21 +=================== + + * Add extensions from IANA for more `image/*` types + * Add extension `.asc` to `application/pgp-keys` + * Add extensions to various XML types + * Add new upstream MIME types + +1.51.0 / 2021-11-08 +=================== + + * Add new upstream MIME types + * Mark `image/vnd.microsoft.icon` as compressible + * Mark `image/vnd.ms-dds` as compressible + +1.50.0 / 2021-09-15 +=================== + + * Add deprecated iWorks mime types and extensions + * Add new upstream MIME types + +1.49.0 / 2021-07-26 +=================== + + * Add extension `.trig` to `application/trig` + * Add new upstream MIME types + +1.48.0 / 2021-05-30 +=================== + + * Add extension `.mvt` to `application/vnd.mapbox-vector-tile` + * Add new upstream MIME types + * Mark `text/yaml` as compressible + +1.47.0 / 2021-04-01 +=================== + + * Add new upstream MIME types + * Remove ambigious extensions from IANA for `application/*+xml` types + * Update primary extension to `.es` for `application/ecmascript` + +1.46.0 / 2021-02-13 +=================== + + * Add extension `.amr` to `audio/amr` + * Add extension `.m4s` to `video/iso.segment` + * Add extension `.opus` to `audio/ogg` + * Add new upstream MIME types + +1.45.0 / 2020-09-22 +=================== + + * Add `application/ubjson` with extension `.ubj` + * Add `image/avif` with extension `.avif` + * Add `image/ktx2` with extension `.ktx2` + * Add extension `.dbf` to `application/vnd.dbf` + * Add extension `.rar` to `application/vnd.rar` + * Add extension `.td` to `application/urc-targetdesc+xml` + * Add new upstream MIME types + * Fix extension of `application/vnd.apple.keynote` to be `.key` + +1.44.0 / 2020-04-22 +=================== + + * Add charsets from IANA + * Add extension `.cjs` to `application/node` + * Add new upstream MIME types + +1.43.0 / 2020-01-05 +=================== + + * Add `application/x-keepass2` with extension `.kdbx` + * Add extension `.mxmf` to `audio/mobile-xmf` + * Add extensions from IANA for `application/*+xml` types + * Add new upstream MIME types + +1.42.0 / 2019-09-25 +=================== + + * Add `image/vnd.ms-dds` with extension `.dds` + * Add new upstream MIME types + * Remove compressible from `multipart/mixed` + +1.41.0 / 2019-08-30 +=================== + + * Add new upstream MIME types + * Add `application/toml` with extension `.toml` + * Mark `font/ttf` as compressible + +1.40.0 / 2019-04-20 +=================== + + * Add extensions from IANA for `model/*` types + * Add `text/mdx` with extension `.mdx` + +1.39.0 / 2019-04-04 +=================== + + * Add extensions `.siv` and `.sieve` to `application/sieve` + * Add new upstream MIME types + +1.38.0 / 2019-02-04 +=================== + + * Add extension `.nq` to `application/n-quads` + * Add extension `.nt` to `application/n-triples` + * Add new upstream MIME types + * Mark `text/less` as compressible + +1.37.0 / 2018-10-19 +=================== + + * Add extensions to HEIC image types + * Add new upstream MIME types + +1.36.0 / 2018-08-20 +=================== + + * Add Apple file extensions from IANA + * Add extensions from IANA for `image/*` types + * Add new upstream MIME types + +1.35.0 / 2018-07-15 +=================== + + * Add extension `.owl` to `application/rdf+xml` + * Add new upstream MIME types + - Removes extension `.woff` from `application/font-woff` + +1.34.0 / 2018-06-03 +=================== + + * Add extension `.csl` to `application/vnd.citationstyles.style+xml` + * Add extension `.es` to `application/ecmascript` + * Add new upstream MIME types + * Add `UTF-8` as default charset for `text/turtle` + * Mark all XML-derived types as compressible + +1.33.0 / 2018-02-15 +=================== + + * Add extensions from IANA for `message/*` types + * Add new upstream MIME types + * Fix some incorrect OOXML types + * Remove `application/font-woff2` + +1.32.0 / 2017-11-29 +=================== + + * Add new upstream MIME types + * Update `text/hjson` to registered `application/hjson` + * Add `text/shex` with extension `.shex` + +1.31.0 / 2017-10-25 +=================== + + * Add `application/raml+yaml` with extension `.raml` + * Add `application/wasm` with extension `.wasm` + * Add new `font` type from IANA + * Add new upstream font extensions + * Add new upstream MIME types + * Add extensions for JPEG-2000 images + +1.30.0 / 2017-08-27 +=================== + + * Add `application/vnd.ms-outlook` + * Add `application/x-arj` + * Add extension `.mjs` to `application/javascript` + * Add glTF types and extensions + * Add new upstream MIME types + * Add `text/x-org` + * Add VirtualBox MIME types + * Fix `source` records for `video/*` types that are IANA + * Update `font/opentype` to registered `font/otf` + +1.29.0 / 2017-07-10 +=================== + + * Add `application/fido.trusted-apps+json` + * Add extension `.wadl` to `application/vnd.sun.wadl+xml` + * Add new upstream MIME types + * Add `UTF-8` as default charset for `text/css` + +1.28.0 / 2017-05-14 +=================== + + * Add new upstream MIME types + * Add extension `.gz` to `application/gzip` + * Update extensions `.md` and `.markdown` to be `text/markdown` + +1.27.0 / 2017-03-16 +=================== + + * Add new upstream MIME types + * Add `image/apng` with extension `.apng` + +1.26.0 / 2017-01-14 +=================== + + * Add new upstream MIME types + * Add extension `.geojson` to `application/geo+json` + +1.25.0 / 2016-11-11 +=================== + + * Add new upstream MIME types + +1.24.0 / 2016-09-18 +=================== + + * Add `audio/mp3` + * Add new upstream MIME types + +1.23.0 / 2016-05-01 +=================== + + * Add new upstream MIME types + * Add extension `.3gpp` to `audio/3gpp` + +1.22.0 / 2016-02-15 +=================== + + * Add `text/slim` + * Add extension `.rng` to `application/xml` + * Add new upstream MIME types + * Fix extension of `application/dash+xml` to be `.mpd` + * Update primary extension to `.m4a` for `audio/mp4` + +1.21.0 / 2016-01-06 +=================== + + * Add Google document types + * Add new upstream MIME types + +1.20.0 / 2015-11-10 +=================== + + * Add `text/x-suse-ymp` + * Add new upstream MIME types + +1.19.0 / 2015-09-17 +=================== + + * Add `application/vnd.apple.pkpass` + * Add new upstream MIME types + +1.18.0 / 2015-09-03 +=================== + + * Add new upstream MIME types + +1.17.0 / 2015-08-13 +=================== + + * Add `application/x-msdos-program` + * Add `audio/g711-0` + * Add `image/vnd.mozilla.apng` + * Add extension `.exe` to `application/x-msdos-program` + +1.16.0 / 2015-07-29 +=================== + + * Add `application/vnd.uri-map` + +1.15.0 / 2015-07-13 +=================== + + * Add `application/x-httpd-php` + +1.14.0 / 2015-06-25 +=================== + + * Add `application/scim+json` + * Add `application/vnd.3gpp.ussd+xml` + * Add `application/vnd.biopax.rdf+xml` + * Add `text/x-processing` + +1.13.0 / 2015-06-07 +=================== + + * Add nginx as a source + * Add `application/x-cocoa` + * Add `application/x-java-archive-diff` + * Add `application/x-makeself` + * Add `application/x-perl` + * Add `application/x-pilot` + * Add `application/x-redhat-package-manager` + * Add `application/x-sea` + * Add `audio/x-m4a` + * Add `audio/x-realaudio` + * Add `image/x-jng` + * Add `text/mathml` + +1.12.0 / 2015-06-05 +=================== + + * Add `application/bdoc` + * Add `application/vnd.hyperdrive+json` + * Add `application/x-bdoc` + * Add extension `.rtf` to `text/rtf` + +1.11.0 / 2015-05-31 +=================== + + * Add `audio/wav` + * Add `audio/wave` + * Add extension `.litcoffee` to `text/coffeescript` + * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` + * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` + +1.10.0 / 2015-05-19 +=================== + + * Add `application/vnd.balsamiq.bmpr` + * Add `application/vnd.microsoft.portable-executable` + * Add `application/x-ns-proxy-autoconfig` + +1.9.1 / 2015-04-19 +================== + + * Remove `.json` extension from `application/manifest+json` + - This is causing bugs downstream + +1.9.0 / 2015-04-19 +================== + + * Add `application/manifest+json` + * Add `application/vnd.micro+json` + * Add `image/vnd.zbrush.pcx` + * Add `image/x-ms-bmp` + +1.8.0 / 2015-03-13 +================== + + * Add `application/vnd.citationstyles.style+xml` + * Add `application/vnd.fastcopy-disk-image` + * Add `application/vnd.gov.sk.xmldatacontainer+xml` + * Add extension `.jsonld` to `application/ld+json` + +1.7.0 / 2015-02-08 +================== + + * Add `application/vnd.gerber` + * Add `application/vnd.msa-disk-image` + +1.6.1 / 2015-02-05 +================== + + * Community extensions ownership transferred from `node-mime` + +1.6.0 / 2015-01-29 +================== + + * Add `application/jose` + * Add `application/jose+json` + * Add `application/json-seq` + * Add `application/jwk+json` + * Add `application/jwk-set+json` + * Add `application/jwt` + * Add `application/rdap+json` + * Add `application/vnd.gov.sk.e-form+xml` + * Add `application/vnd.ims.imsccv1p3` + +1.5.0 / 2014-12-30 +================== + + * Add `application/vnd.oracle.resource+json` + * Fix various invalid MIME type entries + - `application/mbox+xml` + - `application/oscp-response` + - `application/vwg-multiplexed` + - `audio/g721` + +1.4.0 / 2014-12-21 +================== + + * Add `application/vnd.ims.imsccv1p2` + * Fix various invalid MIME type entries + - `application/vnd-acucobol` + - `application/vnd-curl` + - `application/vnd-dart` + - `application/vnd-dxr` + - `application/vnd-fdf` + - `application/vnd-mif` + - `application/vnd-sema` + - `application/vnd-wap-wmlc` + - `application/vnd.adobe.flash-movie` + - `application/vnd.dece-zip` + - `application/vnd.dvb_service` + - `application/vnd.micrografx-igx` + - `application/vnd.sealed-doc` + - `application/vnd.sealed-eml` + - `application/vnd.sealed-mht` + - `application/vnd.sealed-ppt` + - `application/vnd.sealed-tiff` + - `application/vnd.sealed-xls` + - `application/vnd.sealedmedia.softseal-html` + - `application/vnd.sealedmedia.softseal-pdf` + - `application/vnd.wap-slc` + - `application/vnd.wap-wbxml` + - `audio/vnd.sealedmedia.softseal-mpeg` + - `image/vnd-djvu` + - `image/vnd-svf` + - `image/vnd-wap-wbmp` + - `image/vnd.sealed-png` + - `image/vnd.sealedmedia.softseal-gif` + - `image/vnd.sealedmedia.softseal-jpg` + - `model/vnd-dwf` + - `model/vnd.parasolid.transmit-binary` + - `model/vnd.parasolid.transmit-text` + - `text/vnd-a` + - `text/vnd-curl` + - `text/vnd.wap-wml` + * Remove example template MIME types + - `application/example` + - `audio/example` + - `image/example` + - `message/example` + - `model/example` + - `multipart/example` + - `text/example` + - `video/example` + +1.3.1 / 2014-12-16 +================== + + * Fix missing extensions + - `application/json5` + - `text/hjson` + +1.3.0 / 2014-12-07 +================== + + * Add `application/a2l` + * Add `application/aml` + * Add `application/atfx` + * Add `application/atxml` + * Add `application/cdfx+xml` + * Add `application/dii` + * Add `application/json5` + * Add `application/lxf` + * Add `application/mf4` + * Add `application/vnd.apache.thrift.compact` + * Add `application/vnd.apache.thrift.json` + * Add `application/vnd.coffeescript` + * Add `application/vnd.enphase.envoy` + * Add `application/vnd.ims.imsccv1p1` + * Add `text/csv-schema` + * Add `text/hjson` + * Add `text/markdown` + * Add `text/yaml` + +1.2.0 / 2014-11-09 +================== + + * Add `application/cea` + * Add `application/dit` + * Add `application/vnd.gov.sk.e-form+zip` + * Add `application/vnd.tmd.mediaflex.api+xml` + * Type `application/epub+zip` is now IANA-registered + +1.1.2 / 2014-10-23 +================== + + * Rebuild database for `application/x-www-form-urlencoded` change + +1.1.1 / 2014-10-20 +================== + + * Mark `application/x-www-form-urlencoded` as compressible. + +1.1.0 / 2014-09-28 +================== + + * Add `application/font-woff2` + +1.0.3 / 2014-09-25 +================== + + * Fix engine requirement in package + +1.0.2 / 2014-09-25 +================== + + * Add `application/coap-group+json` + * Add `application/dcd` + * Add `application/vnd.apache.thrift.binary` + * Add `image/vnd.tencent.tap` + * Mark all JSON-derived types as compressible + * Update `text/vtt` data + +1.0.1 / 2014-08-30 +================== + + * Fix extension ordering + +1.0.0 / 2014-08-30 +================== + + * Add `application/atf` + * Add `application/merge-patch+json` + * Add `multipart/x-mixed-replace` + * Add `source: 'apache'` metadata + * Add `source: 'iana'` metadata + * Remove badly-assumed charset data diff --git a/node_modules/mime-db/LICENSE b/node_modules/mime-db/LICENSE new file mode 100644 index 0000000..0751cb1 --- /dev/null +++ b/node_modules/mime-db/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015-2022 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/mime-db/README.md b/node_modules/mime-db/README.md new file mode 100644 index 0000000..5a8fcfe --- /dev/null +++ b/node_modules/mime-db/README.md @@ -0,0 +1,100 @@ +# mime-db + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +This is a large database of mime types and information about them. +It consists of a single, public JSON file and does not include any logic, +allowing it to remain as un-opinionated as possible with an API. +It aggregates data from the following sources: + +- http://www.iana.org/assignments/media-types/media-types.xhtml +- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types + +## Installation + +```bash +npm install mime-db +``` + +### Database Download + +If you're crazy enough to use this in the browser, you can just grab the +JSON file using [jsDelivr](https://www.jsdelivr.com/). It is recommended to +replace `master` with [a release tag](https://github.com/jshttp/mime-db/tags) +as the JSON format may change in the future. + +``` +https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json +``` + +## Usage + +```js +var db = require('mime-db') + +// grab data on .js files +var data = db['application/javascript'] +``` + +## Data Structure + +The JSON file is a map lookup for lowercased mime types. +Each mime type has the following properties: + +- `.source` - where the mime type is defined. + If not set, it's probably a custom media type. + - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) + - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) + - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) +- `.extensions[]` - known extensions associated with this mime type. +- `.compressible` - whether a file of this type can be gzipped. +- `.charset` - the default charset associated with this type, if any. + +If unknown, every property could be `undefined`. + +## Contributing + +To edit the database, only make PRs against `src/custom-types.json` or +`src/custom-suffix.json`. + +The `src/custom-types.json` file is a JSON object with the MIME type as the +keys and the values being an object with the following keys: + +- `compressible` - leave out if you don't know, otherwise `true`/`false` to + indicate whether the data represented by the type is typically compressible. +- `extensions` - include an array of file extensions that are associated with + the type. +- `notes` - human-readable notes about the type, typically what the type is. +- `sources` - include an array of URLs of where the MIME type and the associated + extensions are sourced from. This needs to be a [primary source](https://en.wikipedia.org/wiki/Primary_source); + links to type aggregating sites and Wikipedia are _not acceptable_. + +To update the build, run `npm run build`. + +### Adding Custom Media Types + +The best way to get new media types included in this library is to register +them with the IANA. The community registration procedure is outlined in +[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types +registered with the IANA are automatically pulled into this library. + +If that is not possible / feasible, they can be added directly here as a +"custom" type. To do this, it is required to have a primary source that +definitively lists the media type. If an extension is going to be listed as +associateed with this media type, the source must definitively link the +media type and extension as well. + +[ci-image]: https://badgen.net/github/checks/jshttp/mime-db/master?label=ci +[ci-url]: https://github.com/jshttp/mime-db/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-db/master +[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master +[node-image]: https://badgen.net/npm/node/mime-db +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/mime-db +[npm-url]: https://npmjs.org/package/mime-db +[npm-version-image]: https://badgen.net/npm/v/mime-db diff --git a/node_modules/mime-db/db.json b/node_modules/mime-db/db.json new file mode 100644 index 0000000..eb9c42c --- /dev/null +++ b/node_modules/mime-db/db.json @@ -0,0 +1,8519 @@ +{ + "application/1d-interleaved-parityfec": { + "source": "iana" + }, + "application/3gpdash-qoe-report+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/3gpp-ims+xml": { + "source": "iana", + "compressible": true + }, + "application/3gpphal+json": { + "source": "iana", + "compressible": true + }, + "application/3gpphalforms+json": { + "source": "iana", + "compressible": true + }, + "application/a2l": { + "source": "iana" + }, + "application/ace+cbor": { + "source": "iana" + }, + "application/activemessage": { + "source": "iana" + }, + "application/activity+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-directory+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcost+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcostparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointprop+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointpropparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-error+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamcontrol+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamparams+json": { + "source": "iana", + "compressible": true + }, + "application/aml": { + "source": "iana" + }, + "application/andrew-inset": { + "source": "iana", + "extensions": ["ez"] + }, + "application/applefile": { + "source": "iana" + }, + "application/applixware": { + "source": "apache", + "extensions": ["aw"] + }, + "application/at+jwt": { + "source": "iana" + }, + "application/atf": { + "source": "iana" + }, + "application/atfx": { + "source": "iana" + }, + "application/atom+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atom"] + }, + "application/atomcat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomcat"] + }, + "application/atomdeleted+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomdeleted"] + }, + "application/atomicmail": { + "source": "iana" + }, + "application/atomsvc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomsvc"] + }, + "application/atsc-dwd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dwd"] + }, + "application/atsc-dynamic-event-message": { + "source": "iana" + }, + "application/atsc-held+xml": { + "source": "iana", + "compressible": true, + "extensions": ["held"] + }, + "application/atsc-rdt+json": { + "source": "iana", + "compressible": true + }, + "application/atsc-rsat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsat"] + }, + "application/atxml": { + "source": "iana" + }, + "application/auth-policy+xml": { + "source": "iana", + "compressible": true + }, + "application/bacnet-xdd+zip": { + "source": "iana", + "compressible": false + }, + "application/batch-smtp": { + "source": "iana" + }, + "application/bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/beep+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/calendar+json": { + "source": "iana", + "compressible": true + }, + "application/calendar+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xcs"] + }, + "application/call-completion": { + "source": "iana" + }, + "application/cals-1840": { + "source": "iana" + }, + "application/captive+json": { + "source": "iana", + "compressible": true + }, + "application/cbor": { + "source": "iana" + }, + "application/cbor-seq": { + "source": "iana" + }, + "application/cccex": { + "source": "iana" + }, + "application/ccmp+xml": { + "source": "iana", + "compressible": true + }, + "application/ccxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ccxml"] + }, + "application/cdfx+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdfx"] + }, + "application/cdmi-capability": { + "source": "iana", + "extensions": ["cdmia"] + }, + "application/cdmi-container": { + "source": "iana", + "extensions": ["cdmic"] + }, + "application/cdmi-domain": { + "source": "iana", + "extensions": ["cdmid"] + }, + "application/cdmi-object": { + "source": "iana", + "extensions": ["cdmio"] + }, + "application/cdmi-queue": { + "source": "iana", + "extensions": ["cdmiq"] + }, + "application/cdni": { + "source": "iana" + }, + "application/cea": { + "source": "iana" + }, + "application/cea-2018+xml": { + "source": "iana", + "compressible": true + }, + "application/cellml+xml": { + "source": "iana", + "compressible": true + }, + "application/cfw": { + "source": "iana" + }, + "application/city+json": { + "source": "iana", + "compressible": true + }, + "application/clr": { + "source": "iana" + }, + "application/clue+xml": { + "source": "iana", + "compressible": true + }, + "application/clue_info+xml": { + "source": "iana", + "compressible": true + }, + "application/cms": { + "source": "iana" + }, + "application/cnrp+xml": { + "source": "iana", + "compressible": true + }, + "application/coap-group+json": { + "source": "iana", + "compressible": true + }, + "application/coap-payload": { + "source": "iana" + }, + "application/commonground": { + "source": "iana" + }, + "application/conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/cose": { + "source": "iana" + }, + "application/cose-key": { + "source": "iana" + }, + "application/cose-key-set": { + "source": "iana" + }, + "application/cpl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cpl"] + }, + "application/csrattrs": { + "source": "iana" + }, + "application/csta+xml": { + "source": "iana", + "compressible": true + }, + "application/cstadata+xml": { + "source": "iana", + "compressible": true + }, + "application/csvm+json": { + "source": "iana", + "compressible": true + }, + "application/cu-seeme": { + "source": "apache", + "extensions": ["cu"] + }, + "application/cwt": { + "source": "iana" + }, + "application/cybercash": { + "source": "iana" + }, + "application/dart": { + "compressible": true + }, + "application/dash+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpd"] + }, + "application/dash-patch+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpp"] + }, + "application/dashdelta": { + "source": "iana" + }, + "application/davmount+xml": { + "source": "iana", + "compressible": true, + "extensions": ["davmount"] + }, + "application/dca-rft": { + "source": "iana" + }, + "application/dcd": { + "source": "iana" + }, + "application/dec-dx": { + "source": "iana" + }, + "application/dialog-info+xml": { + "source": "iana", + "compressible": true + }, + "application/dicom": { + "source": "iana" + }, + "application/dicom+json": { + "source": "iana", + "compressible": true + }, + "application/dicom+xml": { + "source": "iana", + "compressible": true + }, + "application/dii": { + "source": "iana" + }, + "application/dit": { + "source": "iana" + }, + "application/dns": { + "source": "iana" + }, + "application/dns+json": { + "source": "iana", + "compressible": true + }, + "application/dns-message": { + "source": "iana" + }, + "application/docbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dbk"] + }, + "application/dots+cbor": { + "source": "iana" + }, + "application/dskpp+xml": { + "source": "iana", + "compressible": true + }, + "application/dssc+der": { + "source": "iana", + "extensions": ["dssc"] + }, + "application/dssc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdssc"] + }, + "application/dvcs": { + "source": "iana" + }, + "application/ecmascript": { + "source": "iana", + "compressible": true, + "extensions": ["es","ecma"] + }, + "application/edi-consent": { + "source": "iana" + }, + "application/edi-x12": { + "source": "iana", + "compressible": false + }, + "application/edifact": { + "source": "iana", + "compressible": false + }, + "application/efi": { + "source": "iana" + }, + "application/elm+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/elm+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.cap+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/emergencycalldata.comment+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.control+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.deviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.ecall.msd": { + "source": "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.serviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.subscriberinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.veds+xml": { + "source": "iana", + "compressible": true + }, + "application/emma+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emma"] + }, + "application/emotionml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emotionml"] + }, + "application/encaprtp": { + "source": "iana" + }, + "application/epp+xml": { + "source": "iana", + "compressible": true + }, + "application/epub+zip": { + "source": "iana", + "compressible": false, + "extensions": ["epub"] + }, + "application/eshop": { + "source": "iana" + }, + "application/exi": { + "source": "iana", + "extensions": ["exi"] + }, + "application/expect-ct-report+json": { + "source": "iana", + "compressible": true + }, + "application/express": { + "source": "iana", + "extensions": ["exp"] + }, + "application/fastinfoset": { + "source": "iana" + }, + "application/fastsoap": { + "source": "iana" + }, + "application/fdt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fdt"] + }, + "application/fhir+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fhir+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fido.trusted-apps+json": { + "compressible": true + }, + "application/fits": { + "source": "iana" + }, + "application/flexfec": { + "source": "iana" + }, + "application/font-sfnt": { + "source": "iana" + }, + "application/font-tdpfr": { + "source": "iana", + "extensions": ["pfr"] + }, + "application/font-woff": { + "source": "iana", + "compressible": false + }, + "application/framework-attributes+xml": { + "source": "iana", + "compressible": true + }, + "application/geo+json": { + "source": "iana", + "compressible": true, + "extensions": ["geojson"] + }, + "application/geo+json-seq": { + "source": "iana" + }, + "application/geopackage+sqlite3": { + "source": "iana" + }, + "application/geoxacml+xml": { + "source": "iana", + "compressible": true + }, + "application/gltf-buffer": { + "source": "iana" + }, + "application/gml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["gml"] + }, + "application/gpx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["gpx"] + }, + "application/gxf": { + "source": "apache", + "extensions": ["gxf"] + }, + "application/gzip": { + "source": "iana", + "compressible": false, + "extensions": ["gz"] + }, + "application/h224": { + "source": "iana" + }, + "application/held+xml": { + "source": "iana", + "compressible": true + }, + "application/hjson": { + "extensions": ["hjson"] + }, + "application/http": { + "source": "iana" + }, + "application/hyperstudio": { + "source": "iana", + "extensions": ["stk"] + }, + "application/ibe-key-request+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pkg-reply+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pp-data": { + "source": "iana" + }, + "application/iges": { + "source": "iana" + }, + "application/im-iscomposing+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/index": { + "source": "iana" + }, + "application/index.cmd": { + "source": "iana" + }, + "application/index.obj": { + "source": "iana" + }, + "application/index.response": { + "source": "iana" + }, + "application/index.vnd": { + "source": "iana" + }, + "application/inkml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ink","inkml"] + }, + "application/iotp": { + "source": "iana" + }, + "application/ipfix": { + "source": "iana", + "extensions": ["ipfix"] + }, + "application/ipp": { + "source": "iana" + }, + "application/isup": { + "source": "iana" + }, + "application/its+xml": { + "source": "iana", + "compressible": true, + "extensions": ["its"] + }, + "application/java-archive": { + "source": "apache", + "compressible": false, + "extensions": ["jar","war","ear"] + }, + "application/java-serialized-object": { + "source": "apache", + "compressible": false, + "extensions": ["ser"] + }, + "application/java-vm": { + "source": "apache", + "compressible": false, + "extensions": ["class"] + }, + "application/javascript": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["js","mjs"] + }, + "application/jf2feed+json": { + "source": "iana", + "compressible": true + }, + "application/jose": { + "source": "iana" + }, + "application/jose+json": { + "source": "iana", + "compressible": true + }, + "application/jrd+json": { + "source": "iana", + "compressible": true + }, + "application/jscalendar+json": { + "source": "iana", + "compressible": true + }, + "application/json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["json","map"] + }, + "application/json-patch+json": { + "source": "iana", + "compressible": true + }, + "application/json-seq": { + "source": "iana" + }, + "application/json5": { + "extensions": ["json5"] + }, + "application/jsonml+json": { + "source": "apache", + "compressible": true, + "extensions": ["jsonml"] + }, + "application/jwk+json": { + "source": "iana", + "compressible": true + }, + "application/jwk-set+json": { + "source": "iana", + "compressible": true + }, + "application/jwt": { + "source": "iana" + }, + "application/kpml-request+xml": { + "source": "iana", + "compressible": true + }, + "application/kpml-response+xml": { + "source": "iana", + "compressible": true + }, + "application/ld+json": { + "source": "iana", + "compressible": true, + "extensions": ["jsonld"] + }, + "application/lgr+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lgr"] + }, + "application/link-format": { + "source": "iana" + }, + "application/load-control+xml": { + "source": "iana", + "compressible": true + }, + "application/lost+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lostxml"] + }, + "application/lostsync+xml": { + "source": "iana", + "compressible": true + }, + "application/lpf+zip": { + "source": "iana", + "compressible": false + }, + "application/lxf": { + "source": "iana" + }, + "application/mac-binhex40": { + "source": "iana", + "extensions": ["hqx"] + }, + "application/mac-compactpro": { + "source": "apache", + "extensions": ["cpt"] + }, + "application/macwriteii": { + "source": "iana" + }, + "application/mads+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mads"] + }, + "application/manifest+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["webmanifest"] + }, + "application/marc": { + "source": "iana", + "extensions": ["mrc"] + }, + "application/marcxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mrcx"] + }, + "application/mathematica": { + "source": "iana", + "extensions": ["ma","nb","mb"] + }, + "application/mathml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mathml"] + }, + "application/mathml-content+xml": { + "source": "iana", + "compressible": true + }, + "application/mathml-presentation+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-associated-procedure-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-deregister+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-envelope+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-protection-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-reception-report+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-schedule+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-user-service-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbox": { + "source": "iana", + "extensions": ["mbox"] + }, + "application/media-policy-dataset+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpf"] + }, + "application/media_control+xml": { + "source": "iana", + "compressible": true + }, + "application/mediaservercontrol+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mscml"] + }, + "application/merge-patch+json": { + "source": "iana", + "compressible": true + }, + "application/metalink+xml": { + "source": "apache", + "compressible": true, + "extensions": ["metalink"] + }, + "application/metalink4+xml": { + "source": "iana", + "compressible": true, + "extensions": ["meta4"] + }, + "application/mets+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mets"] + }, + "application/mf4": { + "source": "iana" + }, + "application/mikey": { + "source": "iana" + }, + "application/mipc": { + "source": "iana" + }, + "application/missing-blocks+cbor-seq": { + "source": "iana" + }, + "application/mmt-aei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["maei"] + }, + "application/mmt-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musd"] + }, + "application/mods+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mods"] + }, + "application/moss-keys": { + "source": "iana" + }, + "application/moss-signature": { + "source": "iana" + }, + "application/mosskey-data": { + "source": "iana" + }, + "application/mosskey-request": { + "source": "iana" + }, + "application/mp21": { + "source": "iana", + "extensions": ["m21","mp21"] + }, + "application/mp4": { + "source": "iana", + "extensions": ["mp4s","m4p"] + }, + "application/mpeg4-generic": { + "source": "iana" + }, + "application/mpeg4-iod": { + "source": "iana" + }, + "application/mpeg4-iod-xmt": { + "source": "iana" + }, + "application/mrb-consumer+xml": { + "source": "iana", + "compressible": true + }, + "application/mrb-publish+xml": { + "source": "iana", + "compressible": true + }, + "application/msc-ivr+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msc-mixer+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msword": { + "source": "iana", + "compressible": false, + "extensions": ["doc","dot"] + }, + "application/mud+json": { + "source": "iana", + "compressible": true + }, + "application/multipart-core": { + "source": "iana" + }, + "application/mxf": { + "source": "iana", + "extensions": ["mxf"] + }, + "application/n-quads": { + "source": "iana", + "extensions": ["nq"] + }, + "application/n-triples": { + "source": "iana", + "extensions": ["nt"] + }, + "application/nasdata": { + "source": "iana" + }, + "application/news-checkgroups": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-groupinfo": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-transmission": { + "source": "iana" + }, + "application/nlsml+xml": { + "source": "iana", + "compressible": true + }, + "application/node": { + "source": "iana", + "extensions": ["cjs"] + }, + "application/nss": { + "source": "iana" + }, + "application/oauth-authz-req+jwt": { + "source": "iana" + }, + "application/oblivious-dns-message": { + "source": "iana" + }, + "application/ocsp-request": { + "source": "iana" + }, + "application/ocsp-response": { + "source": "iana" + }, + "application/octet-stream": { + "source": "iana", + "compressible": false, + "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] + }, + "application/oda": { + "source": "iana", + "extensions": ["oda"] + }, + "application/odm+xml": { + "source": "iana", + "compressible": true + }, + "application/odx": { + "source": "iana" + }, + "application/oebps-package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["opf"] + }, + "application/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogx"] + }, + "application/omdoc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["omdoc"] + }, + "application/onenote": { + "source": "apache", + "extensions": ["onetoc","onetoc2","onetmp","onepkg"] + }, + "application/opc-nodeset+xml": { + "source": "iana", + "compressible": true + }, + "application/oscore": { + "source": "iana" + }, + "application/oxps": { + "source": "iana", + "extensions": ["oxps"] + }, + "application/p21": { + "source": "iana" + }, + "application/p21+zip": { + "source": "iana", + "compressible": false + }, + "application/p2p-overlay+xml": { + "source": "iana", + "compressible": true, + "extensions": ["relo"] + }, + "application/parityfec": { + "source": "iana" + }, + "application/passport": { + "source": "iana" + }, + "application/patch-ops-error+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xer"] + }, + "application/pdf": { + "source": "iana", + "compressible": false, + "extensions": ["pdf"] + }, + "application/pdx": { + "source": "iana" + }, + "application/pem-certificate-chain": { + "source": "iana" + }, + "application/pgp-encrypted": { + "source": "iana", + "compressible": false, + "extensions": ["pgp"] + }, + "application/pgp-keys": { + "source": "iana", + "extensions": ["asc"] + }, + "application/pgp-signature": { + "source": "iana", + "extensions": ["asc","sig"] + }, + "application/pics-rules": { + "source": "apache", + "extensions": ["prf"] + }, + "application/pidf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pidf-diff+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pkcs10": { + "source": "iana", + "extensions": ["p10"] + }, + "application/pkcs12": { + "source": "iana" + }, + "application/pkcs7-mime": { + "source": "iana", + "extensions": ["p7m","p7c"] + }, + "application/pkcs7-signature": { + "source": "iana", + "extensions": ["p7s"] + }, + "application/pkcs8": { + "source": "iana", + "extensions": ["p8"] + }, + "application/pkcs8-encrypted": { + "source": "iana" + }, + "application/pkix-attr-cert": { + "source": "iana", + "extensions": ["ac"] + }, + "application/pkix-cert": { + "source": "iana", + "extensions": ["cer"] + }, + "application/pkix-crl": { + "source": "iana", + "extensions": ["crl"] + }, + "application/pkix-pkipath": { + "source": "iana", + "extensions": ["pkipath"] + }, + "application/pkixcmp": { + "source": "iana", + "extensions": ["pki"] + }, + "application/pls+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pls"] + }, + "application/poc-settings+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/postscript": { + "source": "iana", + "compressible": true, + "extensions": ["ai","eps","ps"] + }, + "application/ppsp-tracker+json": { + "source": "iana", + "compressible": true + }, + "application/problem+json": { + "source": "iana", + "compressible": true + }, + "application/problem+xml": { + "source": "iana", + "compressible": true + }, + "application/provenance+xml": { + "source": "iana", + "compressible": true, + "extensions": ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + "source": "iana" + }, + "application/prs.cww": { + "source": "iana", + "extensions": ["cww"] + }, + "application/prs.cyn": { + "source": "iana", + "charset": "7-BIT" + }, + "application/prs.hpub+zip": { + "source": "iana", + "compressible": false + }, + "application/prs.nprend": { + "source": "iana" + }, + "application/prs.plucker": { + "source": "iana" + }, + "application/prs.rdf-xml-crypt": { + "source": "iana" + }, + "application/prs.xsf+xml": { + "source": "iana", + "compressible": true + }, + "application/pskc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pskcxml"] + }, + "application/pvd+json": { + "source": "iana", + "compressible": true + }, + "application/qsig": { + "source": "iana" + }, + "application/raml+yaml": { + "compressible": true, + "extensions": ["raml"] + }, + "application/raptorfec": { + "source": "iana" + }, + "application/rdap+json": { + "source": "iana", + "compressible": true + }, + "application/rdf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rdf","owl"] + }, + "application/reginfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rif"] + }, + "application/relax-ng-compact-syntax": { + "source": "iana", + "extensions": ["rnc"] + }, + "application/remote-printing": { + "source": "iana" + }, + "application/reputon+json": { + "source": "iana", + "compressible": true + }, + "application/resource-lists+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rl"] + }, + "application/resource-lists-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rld"] + }, + "application/rfc+xml": { + "source": "iana", + "compressible": true + }, + "application/riscos": { + "source": "iana" + }, + "application/rlmi+xml": { + "source": "iana", + "compressible": true + }, + "application/rls-services+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rs"] + }, + "application/route-apd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rapd"] + }, + "application/route-s-tsid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sls"] + }, + "application/route-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rusd"] + }, + "application/rpki-ghostbusters": { + "source": "iana", + "extensions": ["gbr"] + }, + "application/rpki-manifest": { + "source": "iana", + "extensions": ["mft"] + }, + "application/rpki-publication": { + "source": "iana" + }, + "application/rpki-roa": { + "source": "iana", + "extensions": ["roa"] + }, + "application/rpki-updown": { + "source": "iana" + }, + "application/rsd+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rsd"] + }, + "application/rss+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rss"] + }, + "application/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "application/rtploopback": { + "source": "iana" + }, + "application/rtx": { + "source": "iana" + }, + "application/samlassertion+xml": { + "source": "iana", + "compressible": true + }, + "application/samlmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/sarif+json": { + "source": "iana", + "compressible": true + }, + "application/sarif-external-properties+json": { + "source": "iana", + "compressible": true + }, + "application/sbe": { + "source": "iana" + }, + "application/sbml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sbml"] + }, + "application/scaip+xml": { + "source": "iana", + "compressible": true + }, + "application/scim+json": { + "source": "iana", + "compressible": true + }, + "application/scvp-cv-request": { + "source": "iana", + "extensions": ["scq"] + }, + "application/scvp-cv-response": { + "source": "iana", + "extensions": ["scs"] + }, + "application/scvp-vp-request": { + "source": "iana", + "extensions": ["spq"] + }, + "application/scvp-vp-response": { + "source": "iana", + "extensions": ["spp"] + }, + "application/sdp": { + "source": "iana", + "extensions": ["sdp"] + }, + "application/secevent+jwt": { + "source": "iana" + }, + "application/senml+cbor": { + "source": "iana" + }, + "application/senml+json": { + "source": "iana", + "compressible": true + }, + "application/senml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["senmlx"] + }, + "application/senml-etch+cbor": { + "source": "iana" + }, + "application/senml-etch+json": { + "source": "iana", + "compressible": true + }, + "application/senml-exi": { + "source": "iana" + }, + "application/sensml+cbor": { + "source": "iana" + }, + "application/sensml+json": { + "source": "iana", + "compressible": true + }, + "application/sensml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sensmlx"] + }, + "application/sensml-exi": { + "source": "iana" + }, + "application/sep+xml": { + "source": "iana", + "compressible": true + }, + "application/sep-exi": { + "source": "iana" + }, + "application/session-info": { + "source": "iana" + }, + "application/set-payment": { + "source": "iana" + }, + "application/set-payment-initiation": { + "source": "iana", + "extensions": ["setpay"] + }, + "application/set-registration": { + "source": "iana" + }, + "application/set-registration-initiation": { + "source": "iana", + "extensions": ["setreg"] + }, + "application/sgml": { + "source": "iana" + }, + "application/sgml-open-catalog": { + "source": "iana" + }, + "application/shf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["shf"] + }, + "application/sieve": { + "source": "iana", + "extensions": ["siv","sieve"] + }, + "application/simple-filter+xml": { + "source": "iana", + "compressible": true + }, + "application/simple-message-summary": { + "source": "iana" + }, + "application/simplesymbolcontainer": { + "source": "iana" + }, + "application/sipc": { + "source": "iana" + }, + "application/slate": { + "source": "iana" + }, + "application/smil": { + "source": "iana" + }, + "application/smil+xml": { + "source": "iana", + "compressible": true, + "extensions": ["smi","smil"] + }, + "application/smpte336m": { + "source": "iana" + }, + "application/soap+fastinfoset": { + "source": "iana" + }, + "application/soap+xml": { + "source": "iana", + "compressible": true + }, + "application/sparql-query": { + "source": "iana", + "extensions": ["rq"] + }, + "application/sparql-results+xml": { + "source": "iana", + "compressible": true, + "extensions": ["srx"] + }, + "application/spdx+json": { + "source": "iana", + "compressible": true + }, + "application/spirits-event+xml": { + "source": "iana", + "compressible": true + }, + "application/sql": { + "source": "iana" + }, + "application/srgs": { + "source": "iana", + "extensions": ["gram"] + }, + "application/srgs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["grxml"] + }, + "application/sru+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sru"] + }, + "application/ssdl+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ssdl"] + }, + "application/ssml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ssml"] + }, + "application/stix+json": { + "source": "iana", + "compressible": true + }, + "application/swid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["swidtag"] + }, + "application/tamp-apex-update": { + "source": "iana" + }, + "application/tamp-apex-update-confirm": { + "source": "iana" + }, + "application/tamp-community-update": { + "source": "iana" + }, + "application/tamp-community-update-confirm": { + "source": "iana" + }, + "application/tamp-error": { + "source": "iana" + }, + "application/tamp-sequence-adjust": { + "source": "iana" + }, + "application/tamp-sequence-adjust-confirm": { + "source": "iana" + }, + "application/tamp-status-query": { + "source": "iana" + }, + "application/tamp-status-response": { + "source": "iana" + }, + "application/tamp-update": { + "source": "iana" + }, + "application/tamp-update-confirm": { + "source": "iana" + }, + "application/tar": { + "compressible": true + }, + "application/taxii+json": { + "source": "iana", + "compressible": true + }, + "application/td+json": { + "source": "iana", + "compressible": true + }, + "application/tei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tei","teicorpus"] + }, + "application/tetra_isi": { + "source": "iana" + }, + "application/thraud+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tfi"] + }, + "application/timestamp-query": { + "source": "iana" + }, + "application/timestamp-reply": { + "source": "iana" + }, + "application/timestamped-data": { + "source": "iana", + "extensions": ["tsd"] + }, + "application/tlsrpt+gzip": { + "source": "iana" + }, + "application/tlsrpt+json": { + "source": "iana", + "compressible": true + }, + "application/tnauthlist": { + "source": "iana" + }, + "application/token-introspection+jwt": { + "source": "iana" + }, + "application/toml": { + "compressible": true, + "extensions": ["toml"] + }, + "application/trickle-ice-sdpfrag": { + "source": "iana" + }, + "application/trig": { + "source": "iana", + "extensions": ["trig"] + }, + "application/ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ttml"] + }, + "application/tve-trigger": { + "source": "iana" + }, + "application/tzif": { + "source": "iana" + }, + "application/tzif-leap": { + "source": "iana" + }, + "application/ubjson": { + "compressible": false, + "extensions": ["ubj"] + }, + "application/ulpfec": { + "source": "iana" + }, + "application/urc-grpsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/urc-ressheet+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsheet"] + }, + "application/urc-targetdesc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["td"] + }, + "application/urc-uisocketdesc+xml": { + "source": "iana", + "compressible": true + }, + "application/vcard+json": { + "source": "iana", + "compressible": true + }, + "application/vcard+xml": { + "source": "iana", + "compressible": true + }, + "application/vemmi": { + "source": "iana" + }, + "application/vividence.scriptfile": { + "source": "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + "source": "iana", + "compressible": true, + "extensions": ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-v2x-local-service-information": { + "source": "iana" + }, + "application/vnd.3gpp.5gnas": { + "source": "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.bsf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gmop+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gtpc": { + "source": "iana" + }, + "application/vnd.3gpp.interworking-data": { + "source": "iana" + }, + "application/vnd.3gpp.lpp": { + "source": "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-payload": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-signalling": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mid-call+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ngap": { + "source": "iana" + }, + "application/vnd.3gpp.pfcp": { + "source": "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + "source": "iana", + "extensions": ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + "source": "iana", + "extensions": ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + "source": "iana", + "extensions": ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + "source": "iana" + }, + "application/vnd.3gpp.sms": { + "source": "iana" + }, + "application/vnd.3gpp.sms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ussd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.sms": { + "source": "iana" + }, + "application/vnd.3gpp2.tcap": { + "source": "iana", + "extensions": ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + "source": "iana" + }, + "application/vnd.3m.post-it-notes": { + "source": "iana", + "extensions": ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + "source": "iana", + "extensions": ["aso"] + }, + "application/vnd.accpac.simply.imp": { + "source": "iana", + "extensions": ["imp"] + }, + "application/vnd.acucobol": { + "source": "iana", + "extensions": ["acu"] + }, + "application/vnd.acucorp": { + "source": "iana", + "extensions": ["atc","acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + "source": "apache", + "compressible": false, + "extensions": ["air"] + }, + "application/vnd.adobe.flash.movie": { + "source": "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + "source": "iana", + "extensions": ["fcdt"] + }, + "application/vnd.adobe.fxp": { + "source": "iana", + "extensions": ["fxp","fxpl"] + }, + "application/vnd.adobe.partial-upload": { + "source": "iana" + }, + "application/vnd.adobe.xdp+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdp"] + }, + "application/vnd.adobe.xfdf": { + "source": "iana", + "extensions": ["xfdf"] + }, + "application/vnd.aether.imp": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + "source": "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + "source": "iana" + }, + "application/vnd.afpc.foca-charset": { + "source": "iana" + }, + "application/vnd.afpc.foca-codedfont": { + "source": "iana" + }, + "application/vnd.afpc.foca-codepage": { + "source": "iana" + }, + "application/vnd.afpc.modca": { + "source": "iana" + }, + "application/vnd.afpc.modca-cmtable": { + "source": "iana" + }, + "application/vnd.afpc.modca-formdef": { + "source": "iana" + }, + "application/vnd.afpc.modca-mediummap": { + "source": "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + "source": "iana" + }, + "application/vnd.afpc.modca-overlay": { + "source": "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + "source": "iana" + }, + "application/vnd.age": { + "source": "iana", + "extensions": ["age"] + }, + "application/vnd.ah-barcode": { + "source": "iana" + }, + "application/vnd.ahead.space": { + "source": "iana", + "extensions": ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + "source": "iana", + "extensions": ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + "source": "iana", + "extensions": ["azs"] + }, + "application/vnd.amadeus+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.amazon.ebook": { + "source": "apache", + "extensions": ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + "source": "iana" + }, + "application/vnd.americandynamics.acc": { + "source": "iana", + "extensions": ["acc"] + }, + "application/vnd.amiga.ami": { + "source": "iana", + "extensions": ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.android.ota": { + "source": "iana" + }, + "application/vnd.android.package-archive": { + "source": "apache", + "compressible": false, + "extensions": ["apk"] + }, + "application/vnd.anki": { + "source": "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + "source": "iana", + "extensions": ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + "source": "apache", + "extensions": ["fti"] + }, + "application/vnd.antix.game-component": { + "source": "iana", + "extensions": ["atx"] + }, + "application/vnd.apache.arrow.file": { + "source": "iana" + }, + "application/vnd.apache.arrow.stream": { + "source": "iana" + }, + "application/vnd.apache.thrift.binary": { + "source": "iana" + }, + "application/vnd.apache.thrift.compact": { + "source": "iana" + }, + "application/vnd.apache.thrift.json": { + "source": "iana" + }, + "application/vnd.api+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.aplextor.warrp+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apothekende.reservation+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apple.installer+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpkg"] + }, + "application/vnd.apple.keynote": { + "source": "iana", + "extensions": ["key"] + }, + "application/vnd.apple.mpegurl": { + "source": "iana", + "extensions": ["m3u8"] + }, + "application/vnd.apple.numbers": { + "source": "iana", + "extensions": ["numbers"] + }, + "application/vnd.apple.pages": { + "source": "iana", + "extensions": ["pages"] + }, + "application/vnd.apple.pkpass": { + "compressible": false, + "extensions": ["pkpass"] + }, + "application/vnd.arastra.swi": { + "source": "iana" + }, + "application/vnd.aristanetworks.swi": { + "source": "iana", + "extensions": ["swi"] + }, + "application/vnd.artisan+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.artsquare": { + "source": "iana" + }, + "application/vnd.astraea-software.iota": { + "source": "iana", + "extensions": ["iota"] + }, + "application/vnd.audiograph": { + "source": "iana", + "extensions": ["aep"] + }, + "application/vnd.autopackage": { + "source": "iana" + }, + "application/vnd.avalon+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.avistar+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.balsamiq.bmml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + "source": "iana" + }, + "application/vnd.banana-accounting": { + "source": "iana" + }, + "application/vnd.bbf.usp.error": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bekitzur-stech+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bint.med-content": { + "source": "iana" + }, + "application/vnd.biopax.rdf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.blink-idb-value-wrapper": { + "source": "iana" + }, + "application/vnd.blueice.multipass": { + "source": "iana", + "extensions": ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + "source": "iana" + }, + "application/vnd.bluetooth.le.oob": { + "source": "iana" + }, + "application/vnd.bmi": { + "source": "iana", + "extensions": ["bmi"] + }, + "application/vnd.bpf": { + "source": "iana" + }, + "application/vnd.bpf3": { + "source": "iana" + }, + "application/vnd.businessobjects": { + "source": "iana", + "extensions": ["rep"] + }, + "application/vnd.byu.uapi+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cab-jscript": { + "source": "iana" + }, + "application/vnd.canon-cpdl": { + "source": "iana" + }, + "application/vnd.canon-lips": { + "source": "iana" + }, + "application/vnd.capasystems-pg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cendio.thinlinc.clientconf": { + "source": "iana" + }, + "application/vnd.century-systems.tcp_stream": { + "source": "iana" + }, + "application/vnd.chemdraw+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdxml"] + }, + "application/vnd.chess-pgn": { + "source": "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + "source": "iana", + "extensions": ["mmd"] + }, + "application/vnd.ciedi": { + "source": "iana" + }, + "application/vnd.cinderella": { + "source": "iana", + "extensions": ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + "source": "iana" + }, + "application/vnd.citationstyles.style+xml": { + "source": "iana", + "compressible": true, + "extensions": ["csl"] + }, + "application/vnd.claymore": { + "source": "iana", + "extensions": ["cla"] + }, + "application/vnd.cloanto.rp9": { + "source": "iana", + "extensions": ["rp9"] + }, + "application/vnd.clonk.c4group": { + "source": "iana", + "extensions": ["c4g","c4d","c4f","c4p","c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + "source": "iana", + "extensions": ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + "source": "iana", + "extensions": ["c11amz"] + }, + "application/vnd.coffeescript": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + "source": "iana" + }, + "application/vnd.collection+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.doc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.next+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.comicbook+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.comicbook-rar": { + "source": "iana" + }, + "application/vnd.commerce-battelle": { + "source": "iana" + }, + "application/vnd.commonspace": { + "source": "iana", + "extensions": ["csp"] + }, + "application/vnd.contact.cmsg": { + "source": "iana", + "extensions": ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cosmocaller": { + "source": "iana", + "extensions": ["cmc"] + }, + "application/vnd.crick.clicker": { + "source": "iana", + "extensions": ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + "source": "iana", + "extensions": ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + "source": "iana", + "extensions": ["clkp"] + }, + "application/vnd.crick.clicker.template": { + "source": "iana", + "extensions": ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + "source": "iana", + "extensions": ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.crypto-shade-file": { + "source": "iana" + }, + "application/vnd.cryptomator.encrypted": { + "source": "iana" + }, + "application/vnd.cryptomator.vault": { + "source": "iana" + }, + "application/vnd.ctc-posml": { + "source": "iana", + "extensions": ["pml"] + }, + "application/vnd.ctct.ws+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cups-pdf": { + "source": "iana" + }, + "application/vnd.cups-postscript": { + "source": "iana" + }, + "application/vnd.cups-ppd": { + "source": "iana", + "extensions": ["ppd"] + }, + "application/vnd.cups-raster": { + "source": "iana" + }, + "application/vnd.cups-raw": { + "source": "iana" + }, + "application/vnd.curl": { + "source": "iana" + }, + "application/vnd.curl.car": { + "source": "apache", + "extensions": ["car"] + }, + "application/vnd.curl.pcurl": { + "source": "apache", + "extensions": ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cybank": { + "source": "iana" + }, + "application/vnd.cyclonedx+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cyclonedx+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.d3m-dataset": { + "source": "iana" + }, + "application/vnd.d3m-problem": { + "source": "iana" + }, + "application/vnd.dart": { + "source": "iana", + "compressible": true, + "extensions": ["dart"] + }, + "application/vnd.data-vision.rdz": { + "source": "iana", + "extensions": ["rdz"] + }, + "application/vnd.datapackage+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dataresource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dbf": { + "source": "iana", + "extensions": ["dbf"] + }, + "application/vnd.debian.binary-package": { + "source": "iana" + }, + "application/vnd.dece.data": { + "source": "iana", + "extensions": ["uvf","uvvf","uvd","uvvd"] + }, + "application/vnd.dece.ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uvt","uvvt"] + }, + "application/vnd.dece.unspecified": { + "source": "iana", + "extensions": ["uvx","uvvx"] + }, + "application/vnd.dece.zip": { + "source": "iana", + "extensions": ["uvz","uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + "source": "iana", + "extensions": ["fe_launch"] + }, + "application/vnd.desmume.movie": { + "source": "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + "source": "iana" + }, + "application/vnd.dm.delegation+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dna": { + "source": "iana", + "extensions": ["dna"] + }, + "application/vnd.document+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dolby.mlp": { + "source": "apache", + "extensions": ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + "source": "iana" + }, + "application/vnd.dolby.mobile.2": { + "source": "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + "source": "iana" + }, + "application/vnd.dpgraph": { + "source": "iana", + "extensions": ["dpg"] + }, + "application/vnd.dreamfactory": { + "source": "iana", + "extensions": ["dfac"] + }, + "application/vnd.drive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ds-keypoint": { + "source": "apache", + "extensions": ["kpxx"] + }, + "application/vnd.dtg.local": { + "source": "iana" + }, + "application/vnd.dtg.local.flash": { + "source": "iana" + }, + "application/vnd.dtg.local.html": { + "source": "iana" + }, + "application/vnd.dvb.ait": { + "source": "iana", + "extensions": ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.dvbj": { + "source": "iana" + }, + "application/vnd.dvb.esgcontainer": { + "source": "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + "source": "iana" + }, + "application/vnd.dvb.ipdcroaming": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + "source": "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-container+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-generic+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-init+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.pfr": { + "source": "iana" + }, + "application/vnd.dvb.service": { + "source": "iana", + "extensions": ["svc"] + }, + "application/vnd.dxr": { + "source": "iana" + }, + "application/vnd.dynageo": { + "source": "iana", + "extensions": ["geo"] + }, + "application/vnd.dzr": { + "source": "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + "source": "iana" + }, + "application/vnd.ecdis-update": { + "source": "iana" + }, + "application/vnd.ecip.rlp": { + "source": "iana" + }, + "application/vnd.eclipse.ditto+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ecowin.chart": { + "source": "iana", + "extensions": ["mag"] + }, + "application/vnd.ecowin.filerequest": { + "source": "iana" + }, + "application/vnd.ecowin.fileupdate": { + "source": "iana" + }, + "application/vnd.ecowin.series": { + "source": "iana" + }, + "application/vnd.ecowin.seriesrequest": { + "source": "iana" + }, + "application/vnd.ecowin.seriesupdate": { + "source": "iana" + }, + "application/vnd.efi.img": { + "source": "iana" + }, + "application/vnd.efi.iso": { + "source": "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.enliven": { + "source": "iana", + "extensions": ["nml"] + }, + "application/vnd.enphase.envoy": { + "source": "iana" + }, + "application/vnd.eprints.data+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.epson.esf": { + "source": "iana", + "extensions": ["esf"] + }, + "application/vnd.epson.msf": { + "source": "iana", + "extensions": ["msf"] + }, + "application/vnd.epson.quickanime": { + "source": "iana", + "extensions": ["qam"] + }, + "application/vnd.epson.salt": { + "source": "iana", + "extensions": ["slt"] + }, + "application/vnd.epson.ssf": { + "source": "iana", + "extensions": ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + "source": "iana" + }, + "application/vnd.espass-espass+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.eszigno3+xml": { + "source": "iana", + "compressible": true, + "extensions": ["es3","et3"] + }, + "application/vnd.etsi.aoc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.asic-e+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.asic-s+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.cug+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvcommand+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvservice+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsync+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mcid+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mheg5": { + "source": "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.pstn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.sci+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.simservs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.timestamp-token": { + "source": "iana" + }, + "application/vnd.etsi.tsl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.tsl.der": { + "source": "iana" + }, + "application/vnd.eu.kasparian.car+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.eudora.data": { + "source": "iana" + }, + "application/vnd.evolv.ecig.profile": { + "source": "iana" + }, + "application/vnd.evolv.ecig.settings": { + "source": "iana" + }, + "application/vnd.evolv.ecig.theme": { + "source": "iana" + }, + "application/vnd.exstream-empower+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.exstream-package": { + "source": "iana" + }, + "application/vnd.ezpix-album": { + "source": "iana", + "extensions": ["ez2"] + }, + "application/vnd.ezpix-package": { + "source": "iana", + "extensions": ["ez3"] + }, + "application/vnd.f-secure.mobile": { + "source": "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.fastcopy-disk-image": { + "source": "iana" + }, + "application/vnd.fdf": { + "source": "iana", + "extensions": ["fdf"] + }, + "application/vnd.fdsn.mseed": { + "source": "iana", + "extensions": ["mseed"] + }, + "application/vnd.fdsn.seed": { + "source": "iana", + "extensions": ["seed","dataless"] + }, + "application/vnd.ffsns": { + "source": "iana" + }, + "application/vnd.ficlab.flb+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.filmit.zfc": { + "source": "iana" + }, + "application/vnd.fints": { + "source": "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + "source": "iana" + }, + "application/vnd.flographit": { + "source": "iana", + "extensions": ["gph"] + }, + "application/vnd.fluxtime.clip": { + "source": "iana", + "extensions": ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + "source": "iana" + }, + "application/vnd.framemaker": { + "source": "iana", + "extensions": ["fm","frame","maker","book"] + }, + "application/vnd.frogans.fnc": { + "source": "iana", + "extensions": ["fnc"] + }, + "application/vnd.frogans.ltf": { + "source": "iana", + "extensions": ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + "source": "iana", + "extensions": ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.fujitsu.oasys": { + "source": "iana", + "extensions": ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + "source": "iana", + "extensions": ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + "source": "iana", + "extensions": ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + "source": "iana", + "extensions": ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + "source": "iana", + "extensions": ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + "source": "iana" + }, + "application/vnd.fujixerox.art4": { + "source": "iana" + }, + "application/vnd.fujixerox.ddd": { + "source": "iana", + "extensions": ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + "source": "iana", + "extensions": ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + "source": "iana", + "extensions": ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujixerox.hbpl": { + "source": "iana" + }, + "application/vnd.fut-misnet": { + "source": "iana" + }, + "application/vnd.futoin+cbor": { + "source": "iana" + }, + "application/vnd.futoin+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.fuzzysheet": { + "source": "iana", + "extensions": ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + "source": "iana", + "extensions": ["txd"] + }, + "application/vnd.gentics.grd+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geo+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geocube+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.geogebra.file": { + "source": "iana", + "extensions": ["ggb"] + }, + "application/vnd.geogebra.slides": { + "source": "iana" + }, + "application/vnd.geogebra.tool": { + "source": "iana", + "extensions": ["ggt"] + }, + "application/vnd.geometry-explorer": { + "source": "iana", + "extensions": ["gex","gre"] + }, + "application/vnd.geonext": { + "source": "iana", + "extensions": ["gxt"] + }, + "application/vnd.geoplan": { + "source": "iana", + "extensions": ["g2w"] + }, + "application/vnd.geospace": { + "source": "iana", + "extensions": ["g3w"] + }, + "application/vnd.gerber": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + "source": "iana" + }, + "application/vnd.gmx": { + "source": "iana", + "extensions": ["gmx"] + }, + "application/vnd.google-apps.document": { + "compressible": false, + "extensions": ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + "compressible": false, + "extensions": ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + "compressible": false, + "extensions": ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["kml"] + }, + "application/vnd.google-earth.kmz": { + "source": "iana", + "compressible": false, + "extensions": ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.gov.sk.e-form+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.grafeq": { + "source": "iana", + "extensions": ["gqf","gqs"] + }, + "application/vnd.gridmp": { + "source": "iana" + }, + "application/vnd.groove-account": { + "source": "iana", + "extensions": ["gac"] + }, + "application/vnd.groove-help": { + "source": "iana", + "extensions": ["ghf"] + }, + "application/vnd.groove-identity-message": { + "source": "iana", + "extensions": ["gim"] + }, + "application/vnd.groove-injector": { + "source": "iana", + "extensions": ["grv"] + }, + "application/vnd.groove-tool-message": { + "source": "iana", + "extensions": ["gtm"] + }, + "application/vnd.groove-tool-template": { + "source": "iana", + "extensions": ["tpl"] + }, + "application/vnd.groove-vcard": { + "source": "iana", + "extensions": ["vcg"] + }, + "application/vnd.hal+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hal+xml": { + "source": "iana", + "compressible": true, + "extensions": ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zmm"] + }, + "application/vnd.hbci": { + "source": "iana", + "extensions": ["hbci"] + }, + "application/vnd.hc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hcl-bireports": { + "source": "iana" + }, + "application/vnd.hdt": { + "source": "iana" + }, + "application/vnd.heroku+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hhe.lesson-player": { + "source": "iana", + "extensions": ["les"] + }, + "application/vnd.hl7cda+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hl7v2+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hp-hpgl": { + "source": "iana", + "extensions": ["hpgl"] + }, + "application/vnd.hp-hpid": { + "source": "iana", + "extensions": ["hpid"] + }, + "application/vnd.hp-hps": { + "source": "iana", + "extensions": ["hps"] + }, + "application/vnd.hp-jlyt": { + "source": "iana", + "extensions": ["jlt"] + }, + "application/vnd.hp-pcl": { + "source": "iana", + "extensions": ["pcl"] + }, + "application/vnd.hp-pclxl": { + "source": "iana", + "extensions": ["pclxl"] + }, + "application/vnd.httphone": { + "source": "iana" + }, + "application/vnd.hydrostatix.sof-data": { + "source": "iana", + "extensions": ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyper-item+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyperdrive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hzn-3d-crossword": { + "source": "iana" + }, + "application/vnd.ibm.afplinedata": { + "source": "iana" + }, + "application/vnd.ibm.electronic-media": { + "source": "iana" + }, + "application/vnd.ibm.minipay": { + "source": "iana", + "extensions": ["mpy"] + }, + "application/vnd.ibm.modcap": { + "source": "iana", + "extensions": ["afp","listafp","list3820"] + }, + "application/vnd.ibm.rights-management": { + "source": "iana", + "extensions": ["irm"] + }, + "application/vnd.ibm.secure-container": { + "source": "iana", + "extensions": ["sc"] + }, + "application/vnd.iccprofile": { + "source": "iana", + "extensions": ["icc","icm"] + }, + "application/vnd.ieee.1905": { + "source": "iana" + }, + "application/vnd.igloader": { + "source": "iana", + "extensions": ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.imagemeter.image+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.immervision-ivp": { + "source": "iana", + "extensions": ["ivp"] + }, + "application/vnd.immervision-ivu": { + "source": "iana", + "extensions": ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p2": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p3": { + "source": "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.informedcontrol.rms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.informix-visionary": { + "source": "iana" + }, + "application/vnd.infotech.project": { + "source": "iana" + }, + "application/vnd.infotech.project+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.innopath.wamp.notification": { + "source": "iana" + }, + "application/vnd.insors.igm": { + "source": "iana", + "extensions": ["igm"] + }, + "application/vnd.intercon.formnet": { + "source": "iana", + "extensions": ["xpw","xpx"] + }, + "application/vnd.intergeo": { + "source": "iana", + "extensions": ["i2g"] + }, + "application/vnd.intertrust.digibox": { + "source": "iana" + }, + "application/vnd.intertrust.nncp": { + "source": "iana" + }, + "application/vnd.intu.qbo": { + "source": "iana", + "extensions": ["qbo"] + }, + "application/vnd.intu.qfx": { + "source": "iana", + "extensions": ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.packageitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.planningitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ipunplugged.rcprofile": { + "source": "iana", + "extensions": ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["irp"] + }, + "application/vnd.is-xpr": { + "source": "iana", + "extensions": ["xpr"] + }, + "application/vnd.isac.fcs": { + "source": "iana", + "extensions": ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.jam": { + "source": "iana", + "extensions": ["jam"] + }, + "application/vnd.japannet-directory-service": { + "source": "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-payment-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-registration": { + "source": "iana" + }, + "application/vnd.japannet-registration-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-verification": { + "source": "iana" + }, + "application/vnd.japannet-verification-wakeup": { + "source": "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + "source": "iana", + "extensions": ["rms"] + }, + "application/vnd.jisp": { + "source": "iana", + "extensions": ["jisp"] + }, + "application/vnd.joost.joda-archive": { + "source": "iana", + "extensions": ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + "source": "iana" + }, + "application/vnd.kahootz": { + "source": "iana", + "extensions": ["ktz","ktr"] + }, + "application/vnd.kde.karbon": { + "source": "iana", + "extensions": ["karbon"] + }, + "application/vnd.kde.kchart": { + "source": "iana", + "extensions": ["chrt"] + }, + "application/vnd.kde.kformula": { + "source": "iana", + "extensions": ["kfo"] + }, + "application/vnd.kde.kivio": { + "source": "iana", + "extensions": ["flw"] + }, + "application/vnd.kde.kontour": { + "source": "iana", + "extensions": ["kon"] + }, + "application/vnd.kde.kpresenter": { + "source": "iana", + "extensions": ["kpr","kpt"] + }, + "application/vnd.kde.kspread": { + "source": "iana", + "extensions": ["ksp"] + }, + "application/vnd.kde.kword": { + "source": "iana", + "extensions": ["kwd","kwt"] + }, + "application/vnd.kenameaapp": { + "source": "iana", + "extensions": ["htke"] + }, + "application/vnd.kidspiration": { + "source": "iana", + "extensions": ["kia"] + }, + "application/vnd.kinar": { + "source": "iana", + "extensions": ["kne","knp"] + }, + "application/vnd.koan": { + "source": "iana", + "extensions": ["skp","skd","skt","skm"] + }, + "application/vnd.kodak-descriptor": { + "source": "iana", + "extensions": ["sse"] + }, + "application/vnd.las": { + "source": "iana" + }, + "application/vnd.las.las+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.las.las+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lasxml"] + }, + "application/vnd.laszip": { + "source": "iana" + }, + "application/vnd.leap+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.liberty-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + "source": "iana", + "extensions": ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.loom": { + "source": "iana" + }, + "application/vnd.lotus-1-2-3": { + "source": "iana", + "extensions": ["123"] + }, + "application/vnd.lotus-approach": { + "source": "iana", + "extensions": ["apr"] + }, + "application/vnd.lotus-freelance": { + "source": "iana", + "extensions": ["pre"] + }, + "application/vnd.lotus-notes": { + "source": "iana", + "extensions": ["nsf"] + }, + "application/vnd.lotus-organizer": { + "source": "iana", + "extensions": ["org"] + }, + "application/vnd.lotus-screencam": { + "source": "iana", + "extensions": ["scm"] + }, + "application/vnd.lotus-wordpro": { + "source": "iana", + "extensions": ["lwp"] + }, + "application/vnd.macports.portpkg": { + "source": "iana", + "extensions": ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + "source": "iana", + "extensions": ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.conftoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.license+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.mdcf": { + "source": "iana" + }, + "application/vnd.mason+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.maxar.archive.3tz+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.maxmind.maxmind-db": { + "source": "iana" + }, + "application/vnd.mcd": { + "source": "iana", + "extensions": ["mcd"] + }, + "application/vnd.medcalcdata": { + "source": "iana", + "extensions": ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + "source": "iana", + "extensions": ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + "source": "iana" + }, + "application/vnd.mfer": { + "source": "iana", + "extensions": ["mwf"] + }, + "application/vnd.mfmp": { + "source": "iana", + "extensions": ["mfm"] + }, + "application/vnd.micro+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.micrografx.flo": { + "source": "iana", + "extensions": ["flo"] + }, + "application/vnd.micrografx.igx": { + "source": "iana", + "extensions": ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + "source": "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + "source": "iana" + }, + "application/vnd.miele+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.mif": { + "source": "iana", + "extensions": ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + "source": "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + "source": "iana" + }, + "application/vnd.mobius.daf": { + "source": "iana", + "extensions": ["daf"] + }, + "application/vnd.mobius.dis": { + "source": "iana", + "extensions": ["dis"] + }, + "application/vnd.mobius.mbk": { + "source": "iana", + "extensions": ["mbk"] + }, + "application/vnd.mobius.mqy": { + "source": "iana", + "extensions": ["mqy"] + }, + "application/vnd.mobius.msl": { + "source": "iana", + "extensions": ["msl"] + }, + "application/vnd.mobius.plc": { + "source": "iana", + "extensions": ["plc"] + }, + "application/vnd.mobius.txf": { + "source": "iana", + "extensions": ["txf"] + }, + "application/vnd.mophun.application": { + "source": "iana", + "extensions": ["mpn"] + }, + "application/vnd.mophun.certificate": { + "source": "iana", + "extensions": ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + "source": "iana" + }, + "application/vnd.motorola.iprm": { + "source": "iana" + }, + "application/vnd.mozilla.xul+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xul"] + }, + "application/vnd.ms-3mfdocument": { + "source": "iana" + }, + "application/vnd.ms-artgalry": { + "source": "iana", + "extensions": ["cil"] + }, + "application/vnd.ms-asf": { + "source": "iana" + }, + "application/vnd.ms-cab-compressed": { + "source": "iana", + "extensions": ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + "source": "apache" + }, + "application/vnd.ms-excel": { + "source": "iana", + "compressible": false, + "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + "source": "iana", + "extensions": ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + "source": "iana", + "extensions": ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + "source": "iana", + "extensions": ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + "source": "iana", + "extensions": ["xltm"] + }, + "application/vnd.ms-fontobject": { + "source": "iana", + "compressible": true, + "extensions": ["eot"] + }, + "application/vnd.ms-htmlhelp": { + "source": "iana", + "extensions": ["chm"] + }, + "application/vnd.ms-ims": { + "source": "iana", + "extensions": ["ims"] + }, + "application/vnd.ms-lrm": { + "source": "iana", + "extensions": ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-officetheme": { + "source": "iana", + "extensions": ["thmx"] + }, + "application/vnd.ms-opentype": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-outlook": { + "compressible": false, + "extensions": ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + "source": "apache" + }, + "application/vnd.ms-pki.seccat": { + "source": "apache", + "extensions": ["cat"] + }, + "application/vnd.ms-pki.stl": { + "source": "apache", + "extensions": ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-powerpoint": { + "source": "iana", + "compressible": false, + "extensions": ["ppt","pps","pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + "source": "iana", + "extensions": ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + "source": "iana", + "extensions": ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + "source": "iana", + "extensions": ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + "source": "iana", + "extensions": ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + "source": "iana", + "extensions": ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-printing.printticket+xml": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-printschematicket+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-project": { + "source": "iana", + "extensions": ["mpp","mpt"] + }, + "application/vnd.ms-tnef": { + "source": "iana" + }, + "application/vnd.ms-windows.devicepairing": { + "source": "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + "source": "iana" + }, + "application/vnd.ms-windows.printerpairing": { + "source": "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + "source": "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + "source": "iana", + "extensions": ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + "source": "iana", + "extensions": ["dotm"] + }, + "application/vnd.ms-works": { + "source": "iana", + "extensions": ["wps","wks","wcm","wdb"] + }, + "application/vnd.ms-wpl": { + "source": "iana", + "extensions": ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + "source": "iana", + "compressible": false, + "extensions": ["xps"] + }, + "application/vnd.msa-disk-image": { + "source": "iana" + }, + "application/vnd.mseq": { + "source": "iana", + "extensions": ["mseq"] + }, + "application/vnd.msign": { + "source": "iana" + }, + "application/vnd.multiad.creator": { + "source": "iana" + }, + "application/vnd.multiad.creator.cif": { + "source": "iana" + }, + "application/vnd.music-niff": { + "source": "iana" + }, + "application/vnd.musician": { + "source": "iana", + "extensions": ["mus"] + }, + "application/vnd.muvee.style": { + "source": "iana", + "extensions": ["msty"] + }, + "application/vnd.mynfc": { + "source": "iana", + "extensions": ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ncd.control": { + "source": "iana" + }, + "application/vnd.ncd.reference": { + "source": "iana" + }, + "application/vnd.nearst.inv+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.nebumind.line": { + "source": "iana" + }, + "application/vnd.nervana": { + "source": "iana" + }, + "application/vnd.netfpx": { + "source": "iana" + }, + "application/vnd.neurolanguage.nlu": { + "source": "iana", + "extensions": ["nlu"] + }, + "application/vnd.nimn": { + "source": "iana" + }, + "application/vnd.nintendo.nitro.rom": { + "source": "iana" + }, + "application/vnd.nintendo.snes.rom": { + "source": "iana" + }, + "application/vnd.nitf": { + "source": "iana", + "extensions": ["ntf","nitf"] + }, + "application/vnd.noblenet-directory": { + "source": "iana", + "extensions": ["nnd"] + }, + "application/vnd.noblenet-sealer": { + "source": "iana", + "extensions": ["nns"] + }, + "application/vnd.noblenet-web": { + "source": "iana", + "extensions": ["nnw"] + }, + "application/vnd.nokia.catalogs": { + "source": "iana" + }, + "application/vnd.nokia.conml+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.conml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.iptv.config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.isds-radio-presets": { + "source": "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.landmark+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.landmarkcollection+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.n-gage.ac+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + "source": "iana", + "extensions": ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + "source": "iana", + "extensions": ["n-gage"] + }, + "application/vnd.nokia.ncd": { + "source": "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.pcd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.radio-preset": { + "source": "iana", + "extensions": ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + "source": "iana", + "extensions": ["rpss"] + }, + "application/vnd.novadigm.edm": { + "source": "iana", + "extensions": ["edm"] + }, + "application/vnd.novadigm.edx": { + "source": "iana", + "extensions": ["edx"] + }, + "application/vnd.novadigm.ext": { + "source": "iana", + "extensions": ["ext"] + }, + "application/vnd.ntt-local.content-share": { + "source": "iana" + }, + "application/vnd.ntt-local.file-transfer": { + "source": "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + "source": "iana" + }, + "application/vnd.oasis.opendocument.chart": { + "source": "iana", + "extensions": ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + "source": "iana", + "extensions": ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + "source": "iana", + "extensions": ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + "source": "iana", + "extensions": ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + "source": "iana", + "extensions": ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + "source": "iana", + "compressible": false, + "extensions": ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + "source": "iana", + "extensions": ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + "source": "iana", + "extensions": ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + "source": "iana", + "extensions": ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + "source": "iana", + "extensions": ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + "source": "iana", + "compressible": false, + "extensions": ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + "source": "iana", + "extensions": ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + "source": "iana", + "compressible": false, + "extensions": ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + "source": "iana", + "extensions": ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + "source": "iana", + "extensions": ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + "source": "iana", + "extensions": ["oth"] + }, + "application/vnd.obn": { + "source": "iana" + }, + "application/vnd.ocf+cbor": { + "source": "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oftn.l10n+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.cspg-hexbinary": { + "source": "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.dae.xhtml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.pae.gem": { + "source": "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.spdlist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.ueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.userprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.olpc-sugar": { + "source": "iana", + "extensions": ["xo"] + }, + "application/vnd.oma-scws-config": { + "source": "iana" + }, + "application/vnd.oma-scws-http-request": { + "source": "iana" + }, + "application/vnd.oma-scws-http-response": { + "source": "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.imd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.ltkm": { + "source": "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgboot": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sgdu": { + "source": "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + "source": "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sprov+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.stkm": { + "source": "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-feature-handler+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-pcc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-subs-invite+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-user-prefs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.dcd": { + "source": "iana" + }, + "application/vnd.oma.dcdc": { + "source": "iana" + }, + "application/vnd.oma.dd2+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.group-usage-list+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+cbor": { + "source": "iana" + }, + "application/vnd.oma.lwm2m+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+tlv": { + "source": "iana" + }, + "application/vnd.oma.pal+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.final-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.groups+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.push": { + "source": "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.xcap-directory+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.omads-email+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-file+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-folder+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omaloc-supl-init": { + "source": "iana" + }, + "application/vnd.onepager": { + "source": "iana" + }, + "application/vnd.onepagertamp": { + "source": "iana" + }, + "application/vnd.onepagertamx": { + "source": "iana" + }, + "application/vnd.onepagertat": { + "source": "iana" + }, + "application/vnd.onepagertatp": { + "source": "iana" + }, + "application/vnd.onepagertatx": { + "source": "iana" + }, + "application/vnd.openblox.game+xml": { + "source": "iana", + "compressible": true, + "extensions": ["obgx"] + }, + "application/vnd.openblox.game-binary": { + "source": "iana" + }, + "application/vnd.openeye.oeb": { + "source": "iana" + }, + "application/vnd.openofficeorg.extension": { + "source": "apache", + "extensions": ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osm"] + }, + "application/vnd.opentimestamps.ots": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + "source": "iana", + "extensions": ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + "source": "iana", + "extensions": ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + "source": "iana", + "extensions": ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + "source": "iana", + "compressible": false, + "extensions": ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + "source": "iana", + "extensions": ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + "source": "iana", + "compressible": false, + "extensions": ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + "source": "iana", + "extensions": ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oracle.resource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.orange.indata": { + "source": "iana" + }, + "application/vnd.osa.netdeploy": { + "source": "iana" + }, + "application/vnd.osgeo.mapguide.package": { + "source": "iana", + "extensions": ["mgp"] + }, + "application/vnd.osgi.bundle": { + "source": "iana" + }, + "application/vnd.osgi.dp": { + "source": "iana", + "extensions": ["dp"] + }, + "application/vnd.osgi.subsystem": { + "source": "iana", + "extensions": ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oxli.countgraph": { + "source": "iana" + }, + "application/vnd.pagerduty+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.palm": { + "source": "iana", + "extensions": ["pdb","pqa","oprc"] + }, + "application/vnd.panoply": { + "source": "iana" + }, + "application/vnd.paos.xml": { + "source": "iana" + }, + "application/vnd.patentdive": { + "source": "iana" + }, + "application/vnd.patientecommsdoc": { + "source": "iana" + }, + "application/vnd.pawaafile": { + "source": "iana", + "extensions": ["paw"] + }, + "application/vnd.pcos": { + "source": "iana" + }, + "application/vnd.pg.format": { + "source": "iana", + "extensions": ["str"] + }, + "application/vnd.pg.osasli": { + "source": "iana", + "extensions": ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + "source": "iana" + }, + "application/vnd.picsel": { + "source": "iana", + "extensions": ["efif"] + }, + "application/vnd.pmi.widget": { + "source": "iana", + "extensions": ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.pocketlearn": { + "source": "iana", + "extensions": ["plf"] + }, + "application/vnd.powerbuilder6": { + "source": "iana", + "extensions": ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + "source": "iana" + }, + "application/vnd.powerbuilder7": { + "source": "iana" + }, + "application/vnd.powerbuilder7-s": { + "source": "iana" + }, + "application/vnd.powerbuilder75": { + "source": "iana" + }, + "application/vnd.powerbuilder75-s": { + "source": "iana" + }, + "application/vnd.preminet": { + "source": "iana" + }, + "application/vnd.previewsystems.box": { + "source": "iana", + "extensions": ["box"] + }, + "application/vnd.proteus.magazine": { + "source": "iana", + "extensions": ["mgz"] + }, + "application/vnd.psfs": { + "source": "iana" + }, + "application/vnd.publishare-delta-tree": { + "source": "iana", + "extensions": ["qps"] + }, + "application/vnd.pvi.ptid1": { + "source": "iana", + "extensions": ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + "source": "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.qualcomm.brew-app-res": { + "source": "iana" + }, + "application/vnd.quarantainenet": { + "source": "iana" + }, + "application/vnd.quark.quarkxpress": { + "source": "iana", + "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] + }, + "application/vnd.quobject-quoxdocument": { + "source": "iana" + }, + "application/vnd.radisys.moml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.rainstor.data": { + "source": "iana" + }, + "application/vnd.rapid": { + "source": "iana" + }, + "application/vnd.rar": { + "source": "iana", + "extensions": ["rar"] + }, + "application/vnd.realvnc.bed": { + "source": "iana", + "extensions": ["bed"] + }, + "application/vnd.recordare.musicxml": { + "source": "iana", + "extensions": ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + "source": "iana" + }, + "application/vnd.resilient.logic": { + "source": "iana" + }, + "application/vnd.restful+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.rig.cryptonote": { + "source": "iana", + "extensions": ["cryptonote"] + }, + "application/vnd.rim.cod": { + "source": "apache", + "extensions": ["cod"] + }, + "application/vnd.rn-realmedia": { + "source": "apache", + "extensions": ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + "source": "apache", + "extensions": ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + "source": "iana", + "compressible": true, + "extensions": ["link66"] + }, + "application/vnd.rs-274x": { + "source": "iana" + }, + "application/vnd.ruckus.download": { + "source": "iana" + }, + "application/vnd.s3sms": { + "source": "iana" + }, + "application/vnd.sailingtracker.track": { + "source": "iana", + "extensions": ["st"] + }, + "application/vnd.sar": { + "source": "iana" + }, + "application/vnd.sbm.cid": { + "source": "iana" + }, + "application/vnd.sbm.mid2": { + "source": "iana" + }, + "application/vnd.scribus": { + "source": "iana" + }, + "application/vnd.sealed.3df": { + "source": "iana" + }, + "application/vnd.sealed.csf": { + "source": "iana" + }, + "application/vnd.sealed.doc": { + "source": "iana" + }, + "application/vnd.sealed.eml": { + "source": "iana" + }, + "application/vnd.sealed.mht": { + "source": "iana" + }, + "application/vnd.sealed.net": { + "source": "iana" + }, + "application/vnd.sealed.ppt": { + "source": "iana" + }, + "application/vnd.sealed.tiff": { + "source": "iana" + }, + "application/vnd.sealed.xls": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + "source": "iana" + }, + "application/vnd.seemail": { + "source": "iana", + "extensions": ["see"] + }, + "application/vnd.seis+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.sema": { + "source": "iana", + "extensions": ["sema"] + }, + "application/vnd.semd": { + "source": "iana", + "extensions": ["semd"] + }, + "application/vnd.semf": { + "source": "iana", + "extensions": ["semf"] + }, + "application/vnd.shade-save-file": { + "source": "iana" + }, + "application/vnd.shana.informed.formdata": { + "source": "iana", + "extensions": ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + "source": "iana", + "extensions": ["itp"] + }, + "application/vnd.shana.informed.interchange": { + "source": "iana", + "extensions": ["iif"] + }, + "application/vnd.shana.informed.package": { + "source": "iana", + "extensions": ["ipk"] + }, + "application/vnd.shootproof+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shopkick+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shp": { + "source": "iana" + }, + "application/vnd.shx": { + "source": "iana" + }, + "application/vnd.sigrok.session": { + "source": "iana" + }, + "application/vnd.simtech-mindmapper": { + "source": "iana", + "extensions": ["twd","twds"] + }, + "application/vnd.siren+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.smaf": { + "source": "iana", + "extensions": ["mmf"] + }, + "application/vnd.smart.notebook": { + "source": "iana" + }, + "application/vnd.smart.teacher": { + "source": "iana", + "extensions": ["teacher"] + }, + "application/vnd.snesdev-page-table": { + "source": "iana" + }, + "application/vnd.software602.filler.form+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + "source": "iana" + }, + "application/vnd.solent.sdkm+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sdkm","sdkd"] + }, + "application/vnd.spotfire.dxp": { + "source": "iana", + "extensions": ["dxp"] + }, + "application/vnd.spotfire.sfs": { + "source": "iana", + "extensions": ["sfs"] + }, + "application/vnd.sqlite3": { + "source": "iana" + }, + "application/vnd.sss-cod": { + "source": "iana" + }, + "application/vnd.sss-dtf": { + "source": "iana" + }, + "application/vnd.sss-ntf": { + "source": "iana" + }, + "application/vnd.stardivision.calc": { + "source": "apache", + "extensions": ["sdc"] + }, + "application/vnd.stardivision.draw": { + "source": "apache", + "extensions": ["sda"] + }, + "application/vnd.stardivision.impress": { + "source": "apache", + "extensions": ["sdd"] + }, + "application/vnd.stardivision.math": { + "source": "apache", + "extensions": ["smf"] + }, + "application/vnd.stardivision.writer": { + "source": "apache", + "extensions": ["sdw","vor"] + }, + "application/vnd.stardivision.writer-global": { + "source": "apache", + "extensions": ["sgl"] + }, + "application/vnd.stepmania.package": { + "source": "iana", + "extensions": ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + "source": "iana", + "extensions": ["sm"] + }, + "application/vnd.street-stream": { + "source": "iana" + }, + "application/vnd.sun.wadl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wadl"] + }, + "application/vnd.sun.xml.calc": { + "source": "apache", + "extensions": ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + "source": "apache", + "extensions": ["stc"] + }, + "application/vnd.sun.xml.draw": { + "source": "apache", + "extensions": ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + "source": "apache", + "extensions": ["std"] + }, + "application/vnd.sun.xml.impress": { + "source": "apache", + "extensions": ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + "source": "apache", + "extensions": ["sti"] + }, + "application/vnd.sun.xml.math": { + "source": "apache", + "extensions": ["sxm"] + }, + "application/vnd.sun.xml.writer": { + "source": "apache", + "extensions": ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + "source": "apache", + "extensions": ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + "source": "apache", + "extensions": ["stw"] + }, + "application/vnd.sus-calendar": { + "source": "iana", + "extensions": ["sus","susp"] + }, + "application/vnd.svd": { + "source": "iana", + "extensions": ["svd"] + }, + "application/vnd.swiftview-ics": { + "source": "iana" + }, + "application/vnd.sycle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.syft+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.symbian.install": { + "source": "apache", + "extensions": ["sis","sisx"] + }, + "application/vnd.syncml+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.syncml.ds.notification": { + "source": "iana" + }, + "application/vnd.tableschema+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tao.intent-module-archive": { + "source": "iana", + "extensions": ["tao"] + }, + "application/vnd.tcpdump.pcap": { + "source": "iana", + "extensions": ["pcap","cap","dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tmd.mediaflex.api+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.tml": { + "source": "iana" + }, + "application/vnd.tmobile-livetv": { + "source": "iana", + "extensions": ["tmo"] + }, + "application/vnd.tri.onesource": { + "source": "iana" + }, + "application/vnd.trid.tpt": { + "source": "iana", + "extensions": ["tpt"] + }, + "application/vnd.triscape.mxs": { + "source": "iana", + "extensions": ["mxs"] + }, + "application/vnd.trueapp": { + "source": "iana", + "extensions": ["tra"] + }, + "application/vnd.truedoc": { + "source": "iana" + }, + "application/vnd.ubisoft.webplayer": { + "source": "iana" + }, + "application/vnd.ufdl": { + "source": "iana", + "extensions": ["ufd","ufdl"] + }, + "application/vnd.uiq.theme": { + "source": "iana", + "extensions": ["utz"] + }, + "application/vnd.umajin": { + "source": "iana", + "extensions": ["umj"] + }, + "application/vnd.unity": { + "source": "iana", + "extensions": ["unityweb"] + }, + "application/vnd.uoml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uoml"] + }, + "application/vnd.uplanet.alert": { + "source": "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.channel": { + "source": "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.list": { + "source": "iana" + }, + "application/vnd.uplanet.list-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.signal": { + "source": "iana" + }, + "application/vnd.uri-map": { + "source": "iana" + }, + "application/vnd.valve.source.material": { + "source": "iana" + }, + "application/vnd.vcx": { + "source": "iana", + "extensions": ["vcx"] + }, + "application/vnd.vd-study": { + "source": "iana" + }, + "application/vnd.vectorworks": { + "source": "iana" + }, + "application/vnd.vel+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.verimatrix.vcas": { + "source": "iana" + }, + "application/vnd.veritone.aion+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.veryant.thin": { + "source": "iana" + }, + "application/vnd.ves.encrypted": { + "source": "iana" + }, + "application/vnd.vidsoft.vidconference": { + "source": "iana" + }, + "application/vnd.visio": { + "source": "iana", + "extensions": ["vsd","vst","vss","vsw"] + }, + "application/vnd.visionary": { + "source": "iana", + "extensions": ["vis"] + }, + "application/vnd.vividence.scriptfile": { + "source": "iana" + }, + "application/vnd.vsf": { + "source": "iana", + "extensions": ["vsf"] + }, + "application/vnd.wap.sic": { + "source": "iana" + }, + "application/vnd.wap.slc": { + "source": "iana" + }, + "application/vnd.wap.wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["wbxml"] + }, + "application/vnd.wap.wmlc": { + "source": "iana", + "extensions": ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + "source": "iana", + "extensions": ["wmlsc"] + }, + "application/vnd.webturbo": { + "source": "iana", + "extensions": ["wtb"] + }, + "application/vnd.wfa.dpp": { + "source": "iana" + }, + "application/vnd.wfa.p2p": { + "source": "iana" + }, + "application/vnd.wfa.wsc": { + "source": "iana" + }, + "application/vnd.windows.devicepairing": { + "source": "iana" + }, + "application/vnd.wmc": { + "source": "iana" + }, + "application/vnd.wmf.bootstrap": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica.package": { + "source": "iana" + }, + "application/vnd.wolfram.player": { + "source": "iana", + "extensions": ["nbp"] + }, + "application/vnd.wordperfect": { + "source": "iana", + "extensions": ["wpd"] + }, + "application/vnd.wqd": { + "source": "iana", + "extensions": ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + "source": "iana" + }, + "application/vnd.wt.stf": { + "source": "iana", + "extensions": ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + "source": "iana" + }, + "application/vnd.wv.csp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.wv.ssp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xacml+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.xara": { + "source": "iana", + "extensions": ["xar"] + }, + "application/vnd.xfdl": { + "source": "iana", + "extensions": ["xfdl"] + }, + "application/vnd.xfdl.webform": { + "source": "iana" + }, + "application/vnd.xmi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xmpie.cpkg": { + "source": "iana" + }, + "application/vnd.xmpie.dpkg": { + "source": "iana" + }, + "application/vnd.xmpie.plan": { + "source": "iana" + }, + "application/vnd.xmpie.ppkg": { + "source": "iana" + }, + "application/vnd.xmpie.xlim": { + "source": "iana" + }, + "application/vnd.yamaha.hv-dic": { + "source": "iana", + "extensions": ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + "source": "iana", + "extensions": ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + "source": "iana", + "extensions": ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + "source": "iana", + "extensions": ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + "source": "iana" + }, + "application/vnd.yamaha.smaf-audio": { + "source": "iana", + "extensions": ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + "source": "iana", + "extensions": ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + "source": "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + "source": "iana" + }, + "application/vnd.yaoweme": { + "source": "iana" + }, + "application/vnd.yellowriver-custom-menu": { + "source": "iana", + "extensions": ["cmp"] + }, + "application/vnd.youtube.yt": { + "source": "iana" + }, + "application/vnd.zul": { + "source": "iana", + "extensions": ["zir","zirz"] + }, + "application/vnd.zzazz.deck+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zaz"] + }, + "application/voicexml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["vxml"] + }, + "application/voucher-cms+json": { + "source": "iana", + "compressible": true + }, + "application/vq-rtcpxr": { + "source": "iana" + }, + "application/wasm": { + "source": "iana", + "compressible": true, + "extensions": ["wasm"] + }, + "application/watcherinfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wif"] + }, + "application/webpush-options+json": { + "source": "iana", + "compressible": true + }, + "application/whoispp-query": { + "source": "iana" + }, + "application/whoispp-response": { + "source": "iana" + }, + "application/widget": { + "source": "iana", + "extensions": ["wgt"] + }, + "application/winhlp": { + "source": "apache", + "extensions": ["hlp"] + }, + "application/wita": { + "source": "iana" + }, + "application/wordperfect5.1": { + "source": "iana" + }, + "application/wsdl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wsdl"] + }, + "application/wspolicy+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wspolicy"] + }, + "application/x-7z-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["7z"] + }, + "application/x-abiword": { + "source": "apache", + "extensions": ["abw"] + }, + "application/x-ace-compressed": { + "source": "apache", + "extensions": ["ace"] + }, + "application/x-amf": { + "source": "apache" + }, + "application/x-apple-diskimage": { + "source": "apache", + "extensions": ["dmg"] + }, + "application/x-arj": { + "compressible": false, + "extensions": ["arj"] + }, + "application/x-authorware-bin": { + "source": "apache", + "extensions": ["aab","x32","u32","vox"] + }, + "application/x-authorware-map": { + "source": "apache", + "extensions": ["aam"] + }, + "application/x-authorware-seg": { + "source": "apache", + "extensions": ["aas"] + }, + "application/x-bcpio": { + "source": "apache", + "extensions": ["bcpio"] + }, + "application/x-bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/x-bittorrent": { + "source": "apache", + "extensions": ["torrent"] + }, + "application/x-blorb": { + "source": "apache", + "extensions": ["blb","blorb"] + }, + "application/x-bzip": { + "source": "apache", + "compressible": false, + "extensions": ["bz"] + }, + "application/x-bzip2": { + "source": "apache", + "compressible": false, + "extensions": ["bz2","boz"] + }, + "application/x-cbr": { + "source": "apache", + "extensions": ["cbr","cba","cbt","cbz","cb7"] + }, + "application/x-cdlink": { + "source": "apache", + "extensions": ["vcd"] + }, + "application/x-cfs-compressed": { + "source": "apache", + "extensions": ["cfs"] + }, + "application/x-chat": { + "source": "apache", + "extensions": ["chat"] + }, + "application/x-chess-pgn": { + "source": "apache", + "extensions": ["pgn"] + }, + "application/x-chrome-extension": { + "extensions": ["crx"] + }, + "application/x-cocoa": { + "source": "nginx", + "extensions": ["cco"] + }, + "application/x-compress": { + "source": "apache" + }, + "application/x-conference": { + "source": "apache", + "extensions": ["nsc"] + }, + "application/x-cpio": { + "source": "apache", + "extensions": ["cpio"] + }, + "application/x-csh": { + "source": "apache", + "extensions": ["csh"] + }, + "application/x-deb": { + "compressible": false + }, + "application/x-debian-package": { + "source": "apache", + "extensions": ["deb","udeb"] + }, + "application/x-dgc-compressed": { + "source": "apache", + "extensions": ["dgc"] + }, + "application/x-director": { + "source": "apache", + "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] + }, + "application/x-doom": { + "source": "apache", + "extensions": ["wad"] + }, + "application/x-dtbncx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ncx"] + }, + "application/x-dtbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dtb"] + }, + "application/x-dtbresource+xml": { + "source": "apache", + "compressible": true, + "extensions": ["res"] + }, + "application/x-dvi": { + "source": "apache", + "compressible": false, + "extensions": ["dvi"] + }, + "application/x-envoy": { + "source": "apache", + "extensions": ["evy"] + }, + "application/x-eva": { + "source": "apache", + "extensions": ["eva"] + }, + "application/x-font-bdf": { + "source": "apache", + "extensions": ["bdf"] + }, + "application/x-font-dos": { + "source": "apache" + }, + "application/x-font-framemaker": { + "source": "apache" + }, + "application/x-font-ghostscript": { + "source": "apache", + "extensions": ["gsf"] + }, + "application/x-font-libgrx": { + "source": "apache" + }, + "application/x-font-linux-psf": { + "source": "apache", + "extensions": ["psf"] + }, + "application/x-font-pcf": { + "source": "apache", + "extensions": ["pcf"] + }, + "application/x-font-snf": { + "source": "apache", + "extensions": ["snf"] + }, + "application/x-font-speedo": { + "source": "apache" + }, + "application/x-font-sunos-news": { + "source": "apache" + }, + "application/x-font-type1": { + "source": "apache", + "extensions": ["pfa","pfb","pfm","afm"] + }, + "application/x-font-vfont": { + "source": "apache" + }, + "application/x-freearc": { + "source": "apache", + "extensions": ["arc"] + }, + "application/x-futuresplash": { + "source": "apache", + "extensions": ["spl"] + }, + "application/x-gca-compressed": { + "source": "apache", + "extensions": ["gca"] + }, + "application/x-glulx": { + "source": "apache", + "extensions": ["ulx"] + }, + "application/x-gnumeric": { + "source": "apache", + "extensions": ["gnumeric"] + }, + "application/x-gramps-xml": { + "source": "apache", + "extensions": ["gramps"] + }, + "application/x-gtar": { + "source": "apache", + "extensions": ["gtar"] + }, + "application/x-gzip": { + "source": "apache" + }, + "application/x-hdf": { + "source": "apache", + "extensions": ["hdf"] + }, + "application/x-httpd-php": { + "compressible": true, + "extensions": ["php"] + }, + "application/x-install-instructions": { + "source": "apache", + "extensions": ["install"] + }, + "application/x-iso9660-image": { + "source": "apache", + "extensions": ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + "extensions": ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + "extensions": ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + "extensions": ["pages"] + }, + "application/x-java-archive-diff": { + "source": "nginx", + "extensions": ["jardiff"] + }, + "application/x-java-jnlp-file": { + "source": "apache", + "compressible": false, + "extensions": ["jnlp"] + }, + "application/x-javascript": { + "compressible": true + }, + "application/x-keepass2": { + "extensions": ["kdbx"] + }, + "application/x-latex": { + "source": "apache", + "compressible": false, + "extensions": ["latex"] + }, + "application/x-lua-bytecode": { + "extensions": ["luac"] + }, + "application/x-lzh-compressed": { + "source": "apache", + "extensions": ["lzh","lha"] + }, + "application/x-makeself": { + "source": "nginx", + "extensions": ["run"] + }, + "application/x-mie": { + "source": "apache", + "extensions": ["mie"] + }, + "application/x-mobipocket-ebook": { + "source": "apache", + "extensions": ["prc","mobi"] + }, + "application/x-mpegurl": { + "compressible": false + }, + "application/x-ms-application": { + "source": "apache", + "extensions": ["application"] + }, + "application/x-ms-shortcut": { + "source": "apache", + "extensions": ["lnk"] + }, + "application/x-ms-wmd": { + "source": "apache", + "extensions": ["wmd"] + }, + "application/x-ms-wmz": { + "source": "apache", + "extensions": ["wmz"] + }, + "application/x-ms-xbap": { + "source": "apache", + "extensions": ["xbap"] + }, + "application/x-msaccess": { + "source": "apache", + "extensions": ["mdb"] + }, + "application/x-msbinder": { + "source": "apache", + "extensions": ["obd"] + }, + "application/x-mscardfile": { + "source": "apache", + "extensions": ["crd"] + }, + "application/x-msclip": { + "source": "apache", + "extensions": ["clp"] + }, + "application/x-msdos-program": { + "extensions": ["exe"] + }, + "application/x-msdownload": { + "source": "apache", + "extensions": ["exe","dll","com","bat","msi"] + }, + "application/x-msmediaview": { + "source": "apache", + "extensions": ["mvb","m13","m14"] + }, + "application/x-msmetafile": { + "source": "apache", + "extensions": ["wmf","wmz","emf","emz"] + }, + "application/x-msmoney": { + "source": "apache", + "extensions": ["mny"] + }, + "application/x-mspublisher": { + "source": "apache", + "extensions": ["pub"] + }, + "application/x-msschedule": { + "source": "apache", + "extensions": ["scd"] + }, + "application/x-msterminal": { + "source": "apache", + "extensions": ["trm"] + }, + "application/x-mswrite": { + "source": "apache", + "extensions": ["wri"] + }, + "application/x-netcdf": { + "source": "apache", + "extensions": ["nc","cdf"] + }, + "application/x-ns-proxy-autoconfig": { + "compressible": true, + "extensions": ["pac"] + }, + "application/x-nzb": { + "source": "apache", + "extensions": ["nzb"] + }, + "application/x-perl": { + "source": "nginx", + "extensions": ["pl","pm"] + }, + "application/x-pilot": { + "source": "nginx", + "extensions": ["prc","pdb"] + }, + "application/x-pkcs12": { + "source": "apache", + "compressible": false, + "extensions": ["p12","pfx"] + }, + "application/x-pkcs7-certificates": { + "source": "apache", + "extensions": ["p7b","spc"] + }, + "application/x-pkcs7-certreqresp": { + "source": "apache", + "extensions": ["p7r"] + }, + "application/x-pki-message": { + "source": "iana" + }, + "application/x-rar-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["rar"] + }, + "application/x-redhat-package-manager": { + "source": "nginx", + "extensions": ["rpm"] + }, + "application/x-research-info-systems": { + "source": "apache", + "extensions": ["ris"] + }, + "application/x-sea": { + "source": "nginx", + "extensions": ["sea"] + }, + "application/x-sh": { + "source": "apache", + "compressible": true, + "extensions": ["sh"] + }, + "application/x-shar": { + "source": "apache", + "extensions": ["shar"] + }, + "application/x-shockwave-flash": { + "source": "apache", + "compressible": false, + "extensions": ["swf"] + }, + "application/x-silverlight-app": { + "source": "apache", + "extensions": ["xap"] + }, + "application/x-sql": { + "source": "apache", + "extensions": ["sql"] + }, + "application/x-stuffit": { + "source": "apache", + "compressible": false, + "extensions": ["sit"] + }, + "application/x-stuffitx": { + "source": "apache", + "extensions": ["sitx"] + }, + "application/x-subrip": { + "source": "apache", + "extensions": ["srt"] + }, + "application/x-sv4cpio": { + "source": "apache", + "extensions": ["sv4cpio"] + }, + "application/x-sv4crc": { + "source": "apache", + "extensions": ["sv4crc"] + }, + "application/x-t3vm-image": { + "source": "apache", + "extensions": ["t3"] + }, + "application/x-tads": { + "source": "apache", + "extensions": ["gam"] + }, + "application/x-tar": { + "source": "apache", + "compressible": true, + "extensions": ["tar"] + }, + "application/x-tcl": { + "source": "apache", + "extensions": ["tcl","tk"] + }, + "application/x-tex": { + "source": "apache", + "extensions": ["tex"] + }, + "application/x-tex-tfm": { + "source": "apache", + "extensions": ["tfm"] + }, + "application/x-texinfo": { + "source": "apache", + "extensions": ["texinfo","texi"] + }, + "application/x-tgif": { + "source": "apache", + "extensions": ["obj"] + }, + "application/x-ustar": { + "source": "apache", + "extensions": ["ustar"] + }, + "application/x-virtualbox-hdd": { + "compressible": true, + "extensions": ["hdd"] + }, + "application/x-virtualbox-ova": { + "compressible": true, + "extensions": ["ova"] + }, + "application/x-virtualbox-ovf": { + "compressible": true, + "extensions": ["ovf"] + }, + "application/x-virtualbox-vbox": { + "compressible": true, + "extensions": ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + "compressible": false, + "extensions": ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + "compressible": true, + "extensions": ["vdi"] + }, + "application/x-virtualbox-vhd": { + "compressible": true, + "extensions": ["vhd"] + }, + "application/x-virtualbox-vmdk": { + "compressible": true, + "extensions": ["vmdk"] + }, + "application/x-wais-source": { + "source": "apache", + "extensions": ["src"] + }, + "application/x-web-app-manifest+json": { + "compressible": true, + "extensions": ["webapp"] + }, + "application/x-www-form-urlencoded": { + "source": "iana", + "compressible": true + }, + "application/x-x509-ca-cert": { + "source": "iana", + "extensions": ["der","crt","pem"] + }, + "application/x-x509-ca-ra-cert": { + "source": "iana" + }, + "application/x-x509-next-ca-cert": { + "source": "iana" + }, + "application/x-xfig": { + "source": "apache", + "extensions": ["fig"] + }, + "application/x-xliff+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xlf"] + }, + "application/x-xpinstall": { + "source": "apache", + "compressible": false, + "extensions": ["xpi"] + }, + "application/x-xz": { + "source": "apache", + "extensions": ["xz"] + }, + "application/x-zmachine": { + "source": "apache", + "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] + }, + "application/x400-bp": { + "source": "iana" + }, + "application/xacml+xml": { + "source": "iana", + "compressible": true + }, + "application/xaml+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xaml"] + }, + "application/xcap-att+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xav"] + }, + "application/xcap-caps+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xca"] + }, + "application/xcap-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdf"] + }, + "application/xcap-el+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xel"] + }, + "application/xcap-error+xml": { + "source": "iana", + "compressible": true + }, + "application/xcap-ns+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xns"] + }, + "application/xcon-conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/xcon-conference-info-diff+xml": { + "source": "iana", + "compressible": true + }, + "application/xenc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xenc"] + }, + "application/xhtml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xhtml","xht"] + }, + "application/xhtml-voice+xml": { + "source": "apache", + "compressible": true + }, + "application/xliff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xlf"] + }, + "application/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml","xsl","xsd","rng"] + }, + "application/xml-dtd": { + "source": "iana", + "compressible": true, + "extensions": ["dtd"] + }, + "application/xml-external-parsed-entity": { + "source": "iana" + }, + "application/xml-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/xmpp+xml": { + "source": "iana", + "compressible": true + }, + "application/xop+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xop"] + }, + "application/xproc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xpl"] + }, + "application/xslt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xsl","xslt"] + }, + "application/xspf+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xspf"] + }, + "application/xv+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mxml","xhvml","xvml","xvm"] + }, + "application/yang": { + "source": "iana", + "extensions": ["yang"] + }, + "application/yang-data+json": { + "source": "iana", + "compressible": true + }, + "application/yang-data+xml": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+json": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/yin+xml": { + "source": "iana", + "compressible": true, + "extensions": ["yin"] + }, + "application/zip": { + "source": "iana", + "compressible": false, + "extensions": ["zip"] + }, + "application/zlib": { + "source": "iana" + }, + "application/zstd": { + "source": "iana" + }, + "audio/1d-interleaved-parityfec": { + "source": "iana" + }, + "audio/32kadpcm": { + "source": "iana" + }, + "audio/3gpp": { + "source": "iana", + "compressible": false, + "extensions": ["3gpp"] + }, + "audio/3gpp2": { + "source": "iana" + }, + "audio/aac": { + "source": "iana" + }, + "audio/ac3": { + "source": "iana" + }, + "audio/adpcm": { + "source": "apache", + "extensions": ["adp"] + }, + "audio/amr": { + "source": "iana", + "extensions": ["amr"] + }, + "audio/amr-wb": { + "source": "iana" + }, + "audio/amr-wb+": { + "source": "iana" + }, + "audio/aptx": { + "source": "iana" + }, + "audio/asc": { + "source": "iana" + }, + "audio/atrac-advanced-lossless": { + "source": "iana" + }, + "audio/atrac-x": { + "source": "iana" + }, + "audio/atrac3": { + "source": "iana" + }, + "audio/basic": { + "source": "iana", + "compressible": false, + "extensions": ["au","snd"] + }, + "audio/bv16": { + "source": "iana" + }, + "audio/bv32": { + "source": "iana" + }, + "audio/clearmode": { + "source": "iana" + }, + "audio/cn": { + "source": "iana" + }, + "audio/dat12": { + "source": "iana" + }, + "audio/dls": { + "source": "iana" + }, + "audio/dsr-es201108": { + "source": "iana" + }, + "audio/dsr-es202050": { + "source": "iana" + }, + "audio/dsr-es202211": { + "source": "iana" + }, + "audio/dsr-es202212": { + "source": "iana" + }, + "audio/dv": { + "source": "iana" + }, + "audio/dvi4": { + "source": "iana" + }, + "audio/eac3": { + "source": "iana" + }, + "audio/encaprtp": { + "source": "iana" + }, + "audio/evrc": { + "source": "iana" + }, + "audio/evrc-qcp": { + "source": "iana" + }, + "audio/evrc0": { + "source": "iana" + }, + "audio/evrc1": { + "source": "iana" + }, + "audio/evrcb": { + "source": "iana" + }, + "audio/evrcb0": { + "source": "iana" + }, + "audio/evrcb1": { + "source": "iana" + }, + "audio/evrcnw": { + "source": "iana" + }, + "audio/evrcnw0": { + "source": "iana" + }, + "audio/evrcnw1": { + "source": "iana" + }, + "audio/evrcwb": { + "source": "iana" + }, + "audio/evrcwb0": { + "source": "iana" + }, + "audio/evrcwb1": { + "source": "iana" + }, + "audio/evs": { + "source": "iana" + }, + "audio/flexfec": { + "source": "iana" + }, + "audio/fwdred": { + "source": "iana" + }, + "audio/g711-0": { + "source": "iana" + }, + "audio/g719": { + "source": "iana" + }, + "audio/g722": { + "source": "iana" + }, + "audio/g7221": { + "source": "iana" + }, + "audio/g723": { + "source": "iana" + }, + "audio/g726-16": { + "source": "iana" + }, + "audio/g726-24": { + "source": "iana" + }, + "audio/g726-32": { + "source": "iana" + }, + "audio/g726-40": { + "source": "iana" + }, + "audio/g728": { + "source": "iana" + }, + "audio/g729": { + "source": "iana" + }, + "audio/g7291": { + "source": "iana" + }, + "audio/g729d": { + "source": "iana" + }, + "audio/g729e": { + "source": "iana" + }, + "audio/gsm": { + "source": "iana" + }, + "audio/gsm-efr": { + "source": "iana" + }, + "audio/gsm-hr-08": { + "source": "iana" + }, + "audio/ilbc": { + "source": "iana" + }, + "audio/ip-mr_v2.5": { + "source": "iana" + }, + "audio/isac": { + "source": "apache" + }, + "audio/l16": { + "source": "iana" + }, + "audio/l20": { + "source": "iana" + }, + "audio/l24": { + "source": "iana", + "compressible": false + }, + "audio/l8": { + "source": "iana" + }, + "audio/lpc": { + "source": "iana" + }, + "audio/melp": { + "source": "iana" + }, + "audio/melp1200": { + "source": "iana" + }, + "audio/melp2400": { + "source": "iana" + }, + "audio/melp600": { + "source": "iana" + }, + "audio/mhas": { + "source": "iana" + }, + "audio/midi": { + "source": "apache", + "extensions": ["mid","midi","kar","rmi"] + }, + "audio/mobile-xmf": { + "source": "iana", + "extensions": ["mxmf"] + }, + "audio/mp3": { + "compressible": false, + "extensions": ["mp3"] + }, + "audio/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["m4a","mp4a"] + }, + "audio/mp4a-latm": { + "source": "iana" + }, + "audio/mpa": { + "source": "iana" + }, + "audio/mpa-robust": { + "source": "iana" + }, + "audio/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] + }, + "audio/mpeg4-generic": { + "source": "iana" + }, + "audio/musepack": { + "source": "apache" + }, + "audio/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["oga","ogg","spx","opus"] + }, + "audio/opus": { + "source": "iana" + }, + "audio/parityfec": { + "source": "iana" + }, + "audio/pcma": { + "source": "iana" + }, + "audio/pcma-wb": { + "source": "iana" + }, + "audio/pcmu": { + "source": "iana" + }, + "audio/pcmu-wb": { + "source": "iana" + }, + "audio/prs.sid": { + "source": "iana" + }, + "audio/qcelp": { + "source": "iana" + }, + "audio/raptorfec": { + "source": "iana" + }, + "audio/red": { + "source": "iana" + }, + "audio/rtp-enc-aescm128": { + "source": "iana" + }, + "audio/rtp-midi": { + "source": "iana" + }, + "audio/rtploopback": { + "source": "iana" + }, + "audio/rtx": { + "source": "iana" + }, + "audio/s3m": { + "source": "apache", + "extensions": ["s3m"] + }, + "audio/scip": { + "source": "iana" + }, + "audio/silk": { + "source": "apache", + "extensions": ["sil"] + }, + "audio/smv": { + "source": "iana" + }, + "audio/smv-qcp": { + "source": "iana" + }, + "audio/smv0": { + "source": "iana" + }, + "audio/sofa": { + "source": "iana" + }, + "audio/sp-midi": { + "source": "iana" + }, + "audio/speex": { + "source": "iana" + }, + "audio/t140c": { + "source": "iana" + }, + "audio/t38": { + "source": "iana" + }, + "audio/telephone-event": { + "source": "iana" + }, + "audio/tetra_acelp": { + "source": "iana" + }, + "audio/tetra_acelp_bb": { + "source": "iana" + }, + "audio/tone": { + "source": "iana" + }, + "audio/tsvcis": { + "source": "iana" + }, + "audio/uemclip": { + "source": "iana" + }, + "audio/ulpfec": { + "source": "iana" + }, + "audio/usac": { + "source": "iana" + }, + "audio/vdvi": { + "source": "iana" + }, + "audio/vmr-wb": { + "source": "iana" + }, + "audio/vnd.3gpp.iufp": { + "source": "iana" + }, + "audio/vnd.4sb": { + "source": "iana" + }, + "audio/vnd.audiokoz": { + "source": "iana" + }, + "audio/vnd.celp": { + "source": "iana" + }, + "audio/vnd.cisco.nse": { + "source": "iana" + }, + "audio/vnd.cmles.radio-events": { + "source": "iana" + }, + "audio/vnd.cns.anp1": { + "source": "iana" + }, + "audio/vnd.cns.inf1": { + "source": "iana" + }, + "audio/vnd.dece.audio": { + "source": "iana", + "extensions": ["uva","uvva"] + }, + "audio/vnd.digital-winds": { + "source": "iana", + "extensions": ["eol"] + }, + "audio/vnd.dlna.adts": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.1": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.2": { + "source": "iana" + }, + "audio/vnd.dolby.mlp": { + "source": "iana" + }, + "audio/vnd.dolby.mps": { + "source": "iana" + }, + "audio/vnd.dolby.pl2": { + "source": "iana" + }, + "audio/vnd.dolby.pl2x": { + "source": "iana" + }, + "audio/vnd.dolby.pl2z": { + "source": "iana" + }, + "audio/vnd.dolby.pulse.1": { + "source": "iana" + }, + "audio/vnd.dra": { + "source": "iana", + "extensions": ["dra"] + }, + "audio/vnd.dts": { + "source": "iana", + "extensions": ["dts"] + }, + "audio/vnd.dts.hd": { + "source": "iana", + "extensions": ["dtshd"] + }, + "audio/vnd.dts.uhd": { + "source": "iana" + }, + "audio/vnd.dvb.file": { + "source": "iana" + }, + "audio/vnd.everad.plj": { + "source": "iana" + }, + "audio/vnd.hns.audio": { + "source": "iana" + }, + "audio/vnd.lucent.voice": { + "source": "iana", + "extensions": ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + "source": "iana", + "extensions": ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + "source": "iana" + }, + "audio/vnd.nortel.vbk": { + "source": "iana" + }, + "audio/vnd.nuera.ecelp4800": { + "source": "iana", + "extensions": ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + "source": "iana", + "extensions": ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + "source": "iana", + "extensions": ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + "source": "iana" + }, + "audio/vnd.presonus.multitrack": { + "source": "iana" + }, + "audio/vnd.qcelp": { + "source": "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + "source": "iana" + }, + "audio/vnd.rip": { + "source": "iana", + "extensions": ["rip"] + }, + "audio/vnd.rn-realaudio": { + "compressible": false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + "source": "iana" + }, + "audio/vnd.vmx.cvsd": { + "source": "iana" + }, + "audio/vnd.wave": { + "compressible": false + }, + "audio/vorbis": { + "source": "iana", + "compressible": false + }, + "audio/vorbis-config": { + "source": "iana" + }, + "audio/wav": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/wave": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/webm": { + "source": "apache", + "compressible": false, + "extensions": ["weba"] + }, + "audio/x-aac": { + "source": "apache", + "compressible": false, + "extensions": ["aac"] + }, + "audio/x-aiff": { + "source": "apache", + "extensions": ["aif","aiff","aifc"] + }, + "audio/x-caf": { + "source": "apache", + "compressible": false, + "extensions": ["caf"] + }, + "audio/x-flac": { + "source": "apache", + "extensions": ["flac"] + }, + "audio/x-m4a": { + "source": "nginx", + "extensions": ["m4a"] + }, + "audio/x-matroska": { + "source": "apache", + "extensions": ["mka"] + }, + "audio/x-mpegurl": { + "source": "apache", + "extensions": ["m3u"] + }, + "audio/x-ms-wax": { + "source": "apache", + "extensions": ["wax"] + }, + "audio/x-ms-wma": { + "source": "apache", + "extensions": ["wma"] + }, + "audio/x-pn-realaudio": { + "source": "apache", + "extensions": ["ram","ra"] + }, + "audio/x-pn-realaudio-plugin": { + "source": "apache", + "extensions": ["rmp"] + }, + "audio/x-realaudio": { + "source": "nginx", + "extensions": ["ra"] + }, + "audio/x-tta": { + "source": "apache" + }, + "audio/x-wav": { + "source": "apache", + "extensions": ["wav"] + }, + "audio/xm": { + "source": "apache", + "extensions": ["xm"] + }, + "chemical/x-cdx": { + "source": "apache", + "extensions": ["cdx"] + }, + "chemical/x-cif": { + "source": "apache", + "extensions": ["cif"] + }, + "chemical/x-cmdf": { + "source": "apache", + "extensions": ["cmdf"] + }, + "chemical/x-cml": { + "source": "apache", + "extensions": ["cml"] + }, + "chemical/x-csml": { + "source": "apache", + "extensions": ["csml"] + }, + "chemical/x-pdb": { + "source": "apache" + }, + "chemical/x-xyz": { + "source": "apache", + "extensions": ["xyz"] + }, + "font/collection": { + "source": "iana", + "extensions": ["ttc"] + }, + "font/otf": { + "source": "iana", + "compressible": true, + "extensions": ["otf"] + }, + "font/sfnt": { + "source": "iana" + }, + "font/ttf": { + "source": "iana", + "compressible": true, + "extensions": ["ttf"] + }, + "font/woff": { + "source": "iana", + "extensions": ["woff"] + }, + "font/woff2": { + "source": "iana", + "extensions": ["woff2"] + }, + "image/aces": { + "source": "iana", + "extensions": ["exr"] + }, + "image/apng": { + "compressible": false, + "extensions": ["apng"] + }, + "image/avci": { + "source": "iana", + "extensions": ["avci"] + }, + "image/avcs": { + "source": "iana", + "extensions": ["avcs"] + }, + "image/avif": { + "source": "iana", + "compressible": false, + "extensions": ["avif"] + }, + "image/bmp": { + "source": "iana", + "compressible": true, + "extensions": ["bmp"] + }, + "image/cgm": { + "source": "iana", + "extensions": ["cgm"] + }, + "image/dicom-rle": { + "source": "iana", + "extensions": ["drle"] + }, + "image/emf": { + "source": "iana", + "extensions": ["emf"] + }, + "image/fits": { + "source": "iana", + "extensions": ["fits"] + }, + "image/g3fax": { + "source": "iana", + "extensions": ["g3"] + }, + "image/gif": { + "source": "iana", + "compressible": false, + "extensions": ["gif"] + }, + "image/heic": { + "source": "iana", + "extensions": ["heic"] + }, + "image/heic-sequence": { + "source": "iana", + "extensions": ["heics"] + }, + "image/heif": { + "source": "iana", + "extensions": ["heif"] + }, + "image/heif-sequence": { + "source": "iana", + "extensions": ["heifs"] + }, + "image/hej2k": { + "source": "iana", + "extensions": ["hej2"] + }, + "image/hsj2": { + "source": "iana", + "extensions": ["hsj2"] + }, + "image/ief": { + "source": "iana", + "extensions": ["ief"] + }, + "image/jls": { + "source": "iana", + "extensions": ["jls"] + }, + "image/jp2": { + "source": "iana", + "compressible": false, + "extensions": ["jp2","jpg2"] + }, + "image/jpeg": { + "source": "iana", + "compressible": false, + "extensions": ["jpeg","jpg","jpe"] + }, + "image/jph": { + "source": "iana", + "extensions": ["jph"] + }, + "image/jphc": { + "source": "iana", + "extensions": ["jhc"] + }, + "image/jpm": { + "source": "iana", + "compressible": false, + "extensions": ["jpm"] + }, + "image/jpx": { + "source": "iana", + "compressible": false, + "extensions": ["jpx","jpf"] + }, + "image/jxr": { + "source": "iana", + "extensions": ["jxr"] + }, + "image/jxra": { + "source": "iana", + "extensions": ["jxra"] + }, + "image/jxrs": { + "source": "iana", + "extensions": ["jxrs"] + }, + "image/jxs": { + "source": "iana", + "extensions": ["jxs"] + }, + "image/jxsc": { + "source": "iana", + "extensions": ["jxsc"] + }, + "image/jxsi": { + "source": "iana", + "extensions": ["jxsi"] + }, + "image/jxss": { + "source": "iana", + "extensions": ["jxss"] + }, + "image/ktx": { + "source": "iana", + "extensions": ["ktx"] + }, + "image/ktx2": { + "source": "iana", + "extensions": ["ktx2"] + }, + "image/naplps": { + "source": "iana" + }, + "image/pjpeg": { + "compressible": false + }, + "image/png": { + "source": "iana", + "compressible": false, + "extensions": ["png"] + }, + "image/prs.btif": { + "source": "iana", + "extensions": ["btif"] + }, + "image/prs.pti": { + "source": "iana", + "extensions": ["pti"] + }, + "image/pwg-raster": { + "source": "iana" + }, + "image/sgi": { + "source": "apache", + "extensions": ["sgi"] + }, + "image/svg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["svg","svgz"] + }, + "image/t38": { + "source": "iana", + "extensions": ["t38"] + }, + "image/tiff": { + "source": "iana", + "compressible": false, + "extensions": ["tif","tiff"] + }, + "image/tiff-fx": { + "source": "iana", + "extensions": ["tfx"] + }, + "image/vnd.adobe.photoshop": { + "source": "iana", + "compressible": true, + "extensions": ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + "source": "iana", + "extensions": ["azv"] + }, + "image/vnd.cns.inf2": { + "source": "iana" + }, + "image/vnd.dece.graphic": { + "source": "iana", + "extensions": ["uvi","uvvi","uvg","uvvg"] + }, + "image/vnd.djvu": { + "source": "iana", + "extensions": ["djvu","djv"] + }, + "image/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "image/vnd.dwg": { + "source": "iana", + "extensions": ["dwg"] + }, + "image/vnd.dxf": { + "source": "iana", + "extensions": ["dxf"] + }, + "image/vnd.fastbidsheet": { + "source": "iana", + "extensions": ["fbs"] + }, + "image/vnd.fpx": { + "source": "iana", + "extensions": ["fpx"] + }, + "image/vnd.fst": { + "source": "iana", + "extensions": ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + "source": "iana", + "extensions": ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + "source": "iana", + "extensions": ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + "source": "iana" + }, + "image/vnd.microsoft.icon": { + "source": "iana", + "compressible": true, + "extensions": ["ico"] + }, + "image/vnd.mix": { + "source": "iana" + }, + "image/vnd.mozilla.apng": { + "source": "iana" + }, + "image/vnd.ms-dds": { + "compressible": true, + "extensions": ["dds"] + }, + "image/vnd.ms-modi": { + "source": "iana", + "extensions": ["mdi"] + }, + "image/vnd.ms-photo": { + "source": "apache", + "extensions": ["wdp"] + }, + "image/vnd.net-fpx": { + "source": "iana", + "extensions": ["npx"] + }, + "image/vnd.pco.b16": { + "source": "iana", + "extensions": ["b16"] + }, + "image/vnd.radiance": { + "source": "iana" + }, + "image/vnd.sealed.png": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + "source": "iana" + }, + "image/vnd.svf": { + "source": "iana" + }, + "image/vnd.tencent.tap": { + "source": "iana", + "extensions": ["tap"] + }, + "image/vnd.valve.source.texture": { + "source": "iana", + "extensions": ["vtf"] + }, + "image/vnd.wap.wbmp": { + "source": "iana", + "extensions": ["wbmp"] + }, + "image/vnd.xiff": { + "source": "iana", + "extensions": ["xif"] + }, + "image/vnd.zbrush.pcx": { + "source": "iana", + "extensions": ["pcx"] + }, + "image/webp": { + "source": "apache", + "extensions": ["webp"] + }, + "image/wmf": { + "source": "iana", + "extensions": ["wmf"] + }, + "image/x-3ds": { + "source": "apache", + "extensions": ["3ds"] + }, + "image/x-cmu-raster": { + "source": "apache", + "extensions": ["ras"] + }, + "image/x-cmx": { + "source": "apache", + "extensions": ["cmx"] + }, + "image/x-freehand": { + "source": "apache", + "extensions": ["fh","fhc","fh4","fh5","fh7"] + }, + "image/x-icon": { + "source": "apache", + "compressible": true, + "extensions": ["ico"] + }, + "image/x-jng": { + "source": "nginx", + "extensions": ["jng"] + }, + "image/x-mrsid-image": { + "source": "apache", + "extensions": ["sid"] + }, + "image/x-ms-bmp": { + "source": "nginx", + "compressible": true, + "extensions": ["bmp"] + }, + "image/x-pcx": { + "source": "apache", + "extensions": ["pcx"] + }, + "image/x-pict": { + "source": "apache", + "extensions": ["pic","pct"] + }, + "image/x-portable-anymap": { + "source": "apache", + "extensions": ["pnm"] + }, + "image/x-portable-bitmap": { + "source": "apache", + "extensions": ["pbm"] + }, + "image/x-portable-graymap": { + "source": "apache", + "extensions": ["pgm"] + }, + "image/x-portable-pixmap": { + "source": "apache", + "extensions": ["ppm"] + }, + "image/x-rgb": { + "source": "apache", + "extensions": ["rgb"] + }, + "image/x-tga": { + "source": "apache", + "extensions": ["tga"] + }, + "image/x-xbitmap": { + "source": "apache", + "extensions": ["xbm"] + }, + "image/x-xcf": { + "compressible": false + }, + "image/x-xpixmap": { + "source": "apache", + "extensions": ["xpm"] + }, + "image/x-xwindowdump": { + "source": "apache", + "extensions": ["xwd"] + }, + "message/cpim": { + "source": "iana" + }, + "message/delivery-status": { + "source": "iana" + }, + "message/disposition-notification": { + "source": "iana", + "extensions": [ + "disposition-notification" + ] + }, + "message/external-body": { + "source": "iana" + }, + "message/feedback-report": { + "source": "iana" + }, + "message/global": { + "source": "iana", + "extensions": ["u8msg"] + }, + "message/global-delivery-status": { + "source": "iana", + "extensions": ["u8dsn"] + }, + "message/global-disposition-notification": { + "source": "iana", + "extensions": ["u8mdn"] + }, + "message/global-headers": { + "source": "iana", + "extensions": ["u8hdr"] + }, + "message/http": { + "source": "iana", + "compressible": false + }, + "message/imdn+xml": { + "source": "iana", + "compressible": true + }, + "message/news": { + "source": "iana" + }, + "message/partial": { + "source": "iana", + "compressible": false + }, + "message/rfc822": { + "source": "iana", + "compressible": true, + "extensions": ["eml","mime"] + }, + "message/s-http": { + "source": "iana" + }, + "message/sip": { + "source": "iana" + }, + "message/sipfrag": { + "source": "iana" + }, + "message/tracking-status": { + "source": "iana" + }, + "message/vnd.si.simp": { + "source": "iana" + }, + "message/vnd.wfa.wsc": { + "source": "iana", + "extensions": ["wsc"] + }, + "model/3mf": { + "source": "iana", + "extensions": ["3mf"] + }, + "model/e57": { + "source": "iana" + }, + "model/gltf+json": { + "source": "iana", + "compressible": true, + "extensions": ["gltf"] + }, + "model/gltf-binary": { + "source": "iana", + "compressible": true, + "extensions": ["glb"] + }, + "model/iges": { + "source": "iana", + "compressible": false, + "extensions": ["igs","iges"] + }, + "model/mesh": { + "source": "iana", + "compressible": false, + "extensions": ["msh","mesh","silo"] + }, + "model/mtl": { + "source": "iana", + "extensions": ["mtl"] + }, + "model/obj": { + "source": "iana", + "extensions": ["obj"] + }, + "model/step": { + "source": "iana" + }, + "model/step+xml": { + "source": "iana", + "compressible": true, + "extensions": ["stpx"] + }, + "model/step+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpz"] + }, + "model/step-xml+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpxz"] + }, + "model/stl": { + "source": "iana", + "extensions": ["stl"] + }, + "model/vnd.collada+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dae"] + }, + "model/vnd.dwf": { + "source": "iana", + "extensions": ["dwf"] + }, + "model/vnd.flatland.3dml": { + "source": "iana" + }, + "model/vnd.gdl": { + "source": "iana", + "extensions": ["gdl"] + }, + "model/vnd.gs-gdl": { + "source": "apache" + }, + "model/vnd.gs.gdl": { + "source": "iana" + }, + "model/vnd.gtw": { + "source": "iana", + "extensions": ["gtw"] + }, + "model/vnd.moml+xml": { + "source": "iana", + "compressible": true + }, + "model/vnd.mts": { + "source": "iana", + "extensions": ["mts"] + }, + "model/vnd.opengex": { + "source": "iana", + "extensions": ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + "source": "iana", + "extensions": ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + "source": "iana", + "extensions": ["x_t"] + }, + "model/vnd.pytha.pyox": { + "source": "iana" + }, + "model/vnd.rosette.annotated-data-model": { + "source": "iana" + }, + "model/vnd.sap.vds": { + "source": "iana", + "extensions": ["vds"] + }, + "model/vnd.usdz+zip": { + "source": "iana", + "compressible": false, + "extensions": ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + "source": "iana", + "extensions": ["bsp"] + }, + "model/vnd.vtu": { + "source": "iana", + "extensions": ["vtu"] + }, + "model/vrml": { + "source": "iana", + "compressible": false, + "extensions": ["wrl","vrml"] + }, + "model/x3d+binary": { + "source": "apache", + "compressible": false, + "extensions": ["x3db","x3dbz"] + }, + "model/x3d+fastinfoset": { + "source": "iana", + "extensions": ["x3db"] + }, + "model/x3d+vrml": { + "source": "apache", + "compressible": false, + "extensions": ["x3dv","x3dvz"] + }, + "model/x3d+xml": { + "source": "iana", + "compressible": true, + "extensions": ["x3d","x3dz"] + }, + "model/x3d-vrml": { + "source": "iana", + "extensions": ["x3dv"] + }, + "multipart/alternative": { + "source": "iana", + "compressible": false + }, + "multipart/appledouble": { + "source": "iana" + }, + "multipart/byteranges": { + "source": "iana" + }, + "multipart/digest": { + "source": "iana" + }, + "multipart/encrypted": { + "source": "iana", + "compressible": false + }, + "multipart/form-data": { + "source": "iana", + "compressible": false + }, + "multipart/header-set": { + "source": "iana" + }, + "multipart/mixed": { + "source": "iana" + }, + "multipart/multilingual": { + "source": "iana" + }, + "multipart/parallel": { + "source": "iana" + }, + "multipart/related": { + "source": "iana", + "compressible": false + }, + "multipart/report": { + "source": "iana" + }, + "multipart/signed": { + "source": "iana", + "compressible": false + }, + "multipart/vnd.bint.med-plus": { + "source": "iana" + }, + "multipart/voice-message": { + "source": "iana" + }, + "multipart/x-mixed-replace": { + "source": "iana" + }, + "text/1d-interleaved-parityfec": { + "source": "iana" + }, + "text/cache-manifest": { + "source": "iana", + "compressible": true, + "extensions": ["appcache","manifest"] + }, + "text/calendar": { + "source": "iana", + "extensions": ["ics","ifb"] + }, + "text/calender": { + "compressible": true + }, + "text/cmd": { + "compressible": true + }, + "text/coffeescript": { + "extensions": ["coffee","litcoffee"] + }, + "text/cql": { + "source": "iana" + }, + "text/cql-expression": { + "source": "iana" + }, + "text/cql-identifier": { + "source": "iana" + }, + "text/css": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["css"] + }, + "text/csv": { + "source": "iana", + "compressible": true, + "extensions": ["csv"] + }, + "text/csv-schema": { + "source": "iana" + }, + "text/directory": { + "source": "iana" + }, + "text/dns": { + "source": "iana" + }, + "text/ecmascript": { + "source": "iana" + }, + "text/encaprtp": { + "source": "iana" + }, + "text/enriched": { + "source": "iana" + }, + "text/fhirpath": { + "source": "iana" + }, + "text/flexfec": { + "source": "iana" + }, + "text/fwdred": { + "source": "iana" + }, + "text/gff3": { + "source": "iana" + }, + "text/grammar-ref-list": { + "source": "iana" + }, + "text/html": { + "source": "iana", + "compressible": true, + "extensions": ["html","htm","shtml"] + }, + "text/jade": { + "extensions": ["jade"] + }, + "text/javascript": { + "source": "iana", + "compressible": true + }, + "text/jcr-cnd": { + "source": "iana" + }, + "text/jsx": { + "compressible": true, + "extensions": ["jsx"] + }, + "text/less": { + "compressible": true, + "extensions": ["less"] + }, + "text/markdown": { + "source": "iana", + "compressible": true, + "extensions": ["markdown","md"] + }, + "text/mathml": { + "source": "nginx", + "extensions": ["mml"] + }, + "text/mdx": { + "compressible": true, + "extensions": ["mdx"] + }, + "text/mizar": { + "source": "iana" + }, + "text/n3": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["n3"] + }, + "text/parameters": { + "source": "iana", + "charset": "UTF-8" + }, + "text/parityfec": { + "source": "iana" + }, + "text/plain": { + "source": "iana", + "compressible": true, + "extensions": ["txt","text","conf","def","list","log","in","ini"] + }, + "text/provenance-notation": { + "source": "iana", + "charset": "UTF-8" + }, + "text/prs.fallenstein.rst": { + "source": "iana" + }, + "text/prs.lines.tag": { + "source": "iana", + "extensions": ["dsc"] + }, + "text/prs.prop.logic": { + "source": "iana" + }, + "text/raptorfec": { + "source": "iana" + }, + "text/red": { + "source": "iana" + }, + "text/rfc822-headers": { + "source": "iana" + }, + "text/richtext": { + "source": "iana", + "compressible": true, + "extensions": ["rtx"] + }, + "text/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "text/rtp-enc-aescm128": { + "source": "iana" + }, + "text/rtploopback": { + "source": "iana" + }, + "text/rtx": { + "source": "iana" + }, + "text/sgml": { + "source": "iana", + "extensions": ["sgml","sgm"] + }, + "text/shaclc": { + "source": "iana" + }, + "text/shex": { + "source": "iana", + "extensions": ["shex"] + }, + "text/slim": { + "extensions": ["slim","slm"] + }, + "text/spdx": { + "source": "iana", + "extensions": ["spdx"] + }, + "text/strings": { + "source": "iana" + }, + "text/stylus": { + "extensions": ["stylus","styl"] + }, + "text/t140": { + "source": "iana" + }, + "text/tab-separated-values": { + "source": "iana", + "compressible": true, + "extensions": ["tsv"] + }, + "text/troff": { + "source": "iana", + "extensions": ["t","tr","roff","man","me","ms"] + }, + "text/turtle": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["ttl"] + }, + "text/ulpfec": { + "source": "iana" + }, + "text/uri-list": { + "source": "iana", + "compressible": true, + "extensions": ["uri","uris","urls"] + }, + "text/vcard": { + "source": "iana", + "compressible": true, + "extensions": ["vcard"] + }, + "text/vnd.a": { + "source": "iana" + }, + "text/vnd.abc": { + "source": "iana" + }, + "text/vnd.ascii-art": { + "source": "iana" + }, + "text/vnd.curl": { + "source": "iana", + "extensions": ["curl"] + }, + "text/vnd.curl.dcurl": { + "source": "apache", + "extensions": ["dcurl"] + }, + "text/vnd.curl.mcurl": { + "source": "apache", + "extensions": ["mcurl"] + }, + "text/vnd.curl.scurl": { + "source": "apache", + "extensions": ["scurl"] + }, + "text/vnd.debian.copyright": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.dmclientscript": { + "source": "iana" + }, + "text/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + "source": "iana", + "extensions": ["ged"] + }, + "text/vnd.ficlab.flt": { + "source": "iana" + }, + "text/vnd.fly": { + "source": "iana", + "extensions": ["fly"] + }, + "text/vnd.fmi.flexstor": { + "source": "iana", + "extensions": ["flx"] + }, + "text/vnd.gml": { + "source": "iana" + }, + "text/vnd.graphviz": { + "source": "iana", + "extensions": ["gv"] + }, + "text/vnd.hans": { + "source": "iana" + }, + "text/vnd.hgl": { + "source": "iana" + }, + "text/vnd.in3d.3dml": { + "source": "iana", + "extensions": ["3dml"] + }, + "text/vnd.in3d.spot": { + "source": "iana", + "extensions": ["spot"] + }, + "text/vnd.iptc.newsml": { + "source": "iana" + }, + "text/vnd.iptc.nitf": { + "source": "iana" + }, + "text/vnd.latex-z": { + "source": "iana" + }, + "text/vnd.motorola.reflex": { + "source": "iana" + }, + "text/vnd.ms-mediapackage": { + "source": "iana" + }, + "text/vnd.net2phone.commcenter.command": { + "source": "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + "source": "iana" + }, + "text/vnd.senx.warpscript": { + "source": "iana" + }, + "text/vnd.si.uricatalogue": { + "source": "iana" + }, + "text/vnd.sosi": { + "source": "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["jad"] + }, + "text/vnd.trolltech.linguist": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.wap.si": { + "source": "iana" + }, + "text/vnd.wap.sl": { + "source": "iana" + }, + "text/vnd.wap.wml": { + "source": "iana", + "extensions": ["wml"] + }, + "text/vnd.wap.wmlscript": { + "source": "iana", + "extensions": ["wmls"] + }, + "text/vtt": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["vtt"] + }, + "text/x-asm": { + "source": "apache", + "extensions": ["s","asm"] + }, + "text/x-c": { + "source": "apache", + "extensions": ["c","cc","cxx","cpp","h","hh","dic"] + }, + "text/x-component": { + "source": "nginx", + "extensions": ["htc"] + }, + "text/x-fortran": { + "source": "apache", + "extensions": ["f","for","f77","f90"] + }, + "text/x-gwt-rpc": { + "compressible": true + }, + "text/x-handlebars-template": { + "extensions": ["hbs"] + }, + "text/x-java-source": { + "source": "apache", + "extensions": ["java"] + }, + "text/x-jquery-tmpl": { + "compressible": true + }, + "text/x-lua": { + "extensions": ["lua"] + }, + "text/x-markdown": { + "compressible": true, + "extensions": ["mkd"] + }, + "text/x-nfo": { + "source": "apache", + "extensions": ["nfo"] + }, + "text/x-opml": { + "source": "apache", + "extensions": ["opml"] + }, + "text/x-org": { + "compressible": true, + "extensions": ["org"] + }, + "text/x-pascal": { + "source": "apache", + "extensions": ["p","pas"] + }, + "text/x-processing": { + "compressible": true, + "extensions": ["pde"] + }, + "text/x-sass": { + "extensions": ["sass"] + }, + "text/x-scss": { + "extensions": ["scss"] + }, + "text/x-setext": { + "source": "apache", + "extensions": ["etx"] + }, + "text/x-sfv": { + "source": "apache", + "extensions": ["sfv"] + }, + "text/x-suse-ymp": { + "compressible": true, + "extensions": ["ymp"] + }, + "text/x-uuencode": { + "source": "apache", + "extensions": ["uu"] + }, + "text/x-vcalendar": { + "source": "apache", + "extensions": ["vcs"] + }, + "text/x-vcard": { + "source": "apache", + "extensions": ["vcf"] + }, + "text/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml"] + }, + "text/xml-external-parsed-entity": { + "source": "iana" + }, + "text/yaml": { + "compressible": true, + "extensions": ["yaml","yml"] + }, + "video/1d-interleaved-parityfec": { + "source": "iana" + }, + "video/3gpp": { + "source": "iana", + "extensions": ["3gp","3gpp"] + }, + "video/3gpp-tt": { + "source": "iana" + }, + "video/3gpp2": { + "source": "iana", + "extensions": ["3g2"] + }, + "video/av1": { + "source": "iana" + }, + "video/bmpeg": { + "source": "iana" + }, + "video/bt656": { + "source": "iana" + }, + "video/celb": { + "source": "iana" + }, + "video/dv": { + "source": "iana" + }, + "video/encaprtp": { + "source": "iana" + }, + "video/ffv1": { + "source": "iana" + }, + "video/flexfec": { + "source": "iana" + }, + "video/h261": { + "source": "iana", + "extensions": ["h261"] + }, + "video/h263": { + "source": "iana", + "extensions": ["h263"] + }, + "video/h263-1998": { + "source": "iana" + }, + "video/h263-2000": { + "source": "iana" + }, + "video/h264": { + "source": "iana", + "extensions": ["h264"] + }, + "video/h264-rcdo": { + "source": "iana" + }, + "video/h264-svc": { + "source": "iana" + }, + "video/h265": { + "source": "iana" + }, + "video/iso.segment": { + "source": "iana", + "extensions": ["m4s"] + }, + "video/jpeg": { + "source": "iana", + "extensions": ["jpgv"] + }, + "video/jpeg2000": { + "source": "iana" + }, + "video/jpm": { + "source": "apache", + "extensions": ["jpm","jpgm"] + }, + "video/jxsv": { + "source": "iana" + }, + "video/mj2": { + "source": "iana", + "extensions": ["mj2","mjp2"] + }, + "video/mp1s": { + "source": "iana" + }, + "video/mp2p": { + "source": "iana" + }, + "video/mp2t": { + "source": "iana", + "extensions": ["ts"] + }, + "video/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["mp4","mp4v","mpg4"] + }, + "video/mp4v-es": { + "source": "iana" + }, + "video/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpeg","mpg","mpe","m1v","m2v"] + }, + "video/mpeg4-generic": { + "source": "iana" + }, + "video/mpv": { + "source": "iana" + }, + "video/nv": { + "source": "iana" + }, + "video/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogv"] + }, + "video/parityfec": { + "source": "iana" + }, + "video/pointer": { + "source": "iana" + }, + "video/quicktime": { + "source": "iana", + "compressible": false, + "extensions": ["qt","mov"] + }, + "video/raptorfec": { + "source": "iana" + }, + "video/raw": { + "source": "iana" + }, + "video/rtp-enc-aescm128": { + "source": "iana" + }, + "video/rtploopback": { + "source": "iana" + }, + "video/rtx": { + "source": "iana" + }, + "video/scip": { + "source": "iana" + }, + "video/smpte291": { + "source": "iana" + }, + "video/smpte292m": { + "source": "iana" + }, + "video/ulpfec": { + "source": "iana" + }, + "video/vc1": { + "source": "iana" + }, + "video/vc2": { + "source": "iana" + }, + "video/vnd.cctv": { + "source": "iana" + }, + "video/vnd.dece.hd": { + "source": "iana", + "extensions": ["uvh","uvvh"] + }, + "video/vnd.dece.mobile": { + "source": "iana", + "extensions": ["uvm","uvvm"] + }, + "video/vnd.dece.mp4": { + "source": "iana" + }, + "video/vnd.dece.pd": { + "source": "iana", + "extensions": ["uvp","uvvp"] + }, + "video/vnd.dece.sd": { + "source": "iana", + "extensions": ["uvs","uvvs"] + }, + "video/vnd.dece.video": { + "source": "iana", + "extensions": ["uvv","uvvv"] + }, + "video/vnd.directv.mpeg": { + "source": "iana" + }, + "video/vnd.directv.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dlna.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dvb.file": { + "source": "iana", + "extensions": ["dvb"] + }, + "video/vnd.fvt": { + "source": "iana", + "extensions": ["fvt"] + }, + "video/vnd.hns.video": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsavc": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + "source": "iana" + }, + "video/vnd.motorola.video": { + "source": "iana" + }, + "video/vnd.motorola.videop": { + "source": "iana" + }, + "video/vnd.mpegurl": { + "source": "iana", + "extensions": ["mxu","m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + "source": "iana", + "extensions": ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + "source": "iana" + }, + "video/vnd.nokia.mp4vr": { + "source": "iana" + }, + "video/vnd.nokia.videovoip": { + "source": "iana" + }, + "video/vnd.objectvideo": { + "source": "iana" + }, + "video/vnd.radgamettools.bink": { + "source": "iana" + }, + "video/vnd.radgamettools.smacker": { + "source": "iana" + }, + "video/vnd.sealed.mpeg1": { + "source": "iana" + }, + "video/vnd.sealed.mpeg4": { + "source": "iana" + }, + "video/vnd.sealed.swf": { + "source": "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + "source": "iana" + }, + "video/vnd.uvvu.mp4": { + "source": "iana", + "extensions": ["uvu","uvvu"] + }, + "video/vnd.vivo": { + "source": "iana", + "extensions": ["viv"] + }, + "video/vnd.youtube.yt": { + "source": "iana" + }, + "video/vp8": { + "source": "iana" + }, + "video/vp9": { + "source": "iana" + }, + "video/webm": { + "source": "apache", + "compressible": false, + "extensions": ["webm"] + }, + "video/x-f4v": { + "source": "apache", + "extensions": ["f4v"] + }, + "video/x-fli": { + "source": "apache", + "extensions": ["fli"] + }, + "video/x-flv": { + "source": "apache", + "compressible": false, + "extensions": ["flv"] + }, + "video/x-m4v": { + "source": "apache", + "extensions": ["m4v"] + }, + "video/x-matroska": { + "source": "apache", + "compressible": false, + "extensions": ["mkv","mk3d","mks"] + }, + "video/x-mng": { + "source": "apache", + "extensions": ["mng"] + }, + "video/x-ms-asf": { + "source": "apache", + "extensions": ["asf","asx"] + }, + "video/x-ms-vob": { + "source": "apache", + "extensions": ["vob"] + }, + "video/x-ms-wm": { + "source": "apache", + "extensions": ["wm"] + }, + "video/x-ms-wmv": { + "source": "apache", + "compressible": false, + "extensions": ["wmv"] + }, + "video/x-ms-wmx": { + "source": "apache", + "extensions": ["wmx"] + }, + "video/x-ms-wvx": { + "source": "apache", + "extensions": ["wvx"] + }, + "video/x-msvideo": { + "source": "apache", + "extensions": ["avi"] + }, + "video/x-sgi-movie": { + "source": "apache", + "extensions": ["movie"] + }, + "video/x-smv": { + "source": "apache", + "extensions": ["smv"] + }, + "x-conference/x-cooltalk": { + "source": "apache", + "extensions": ["ice"] + }, + "x-shader/x-fragment": { + "compressible": true + }, + "x-shader/x-vertex": { + "compressible": true + } +} diff --git a/node_modules/mime-db/index.js b/node_modules/mime-db/index.js new file mode 100644 index 0000000..ec2be30 --- /dev/null +++ b/node_modules/mime-db/index.js @@ -0,0 +1,12 @@ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + */ + +module.exports = require('./db.json') diff --git a/node_modules/mime-db/package.json b/node_modules/mime-db/package.json new file mode 100644 index 0000000..32c14b8 --- /dev/null +++ b/node_modules/mime-db/package.json @@ -0,0 +1,60 @@ +{ + "name": "mime-db", + "description": "Media Type Database", + "version": "1.52.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)", + "Robert Kieffer (http://github.com/broofa)" + ], + "license": "MIT", + "keywords": [ + "mime", + "db", + "type", + "types", + "database", + "charset", + "charsets" + ], + "repository": "jshttp/mime-db", + "devDependencies": { + "bluebird": "3.7.2", + "co": "4.6.0", + "cogent": "1.0.1", + "csv-parse": "4.16.3", + "eslint": "7.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.1.1", + "eslint-plugin-standard": "4.1.0", + "gnode": "0.1.2", + "media-typer": "1.1.0", + "mocha": "9.2.1", + "nyc": "15.1.0", + "raw-body": "2.5.0", + "stream-to-array": "2.3.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "db.json", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "build": "node scripts/build", + "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "update": "npm run fetch && npm run build", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/mime-types/HISTORY.md b/node_modules/mime-types/HISTORY.md new file mode 100644 index 0000000..c5043b7 --- /dev/null +++ b/node_modules/mime-types/HISTORY.md @@ -0,0 +1,397 @@ +2.1.35 / 2022-03-12 +=================== + + * deps: mime-db@1.52.0 + - Add extensions from IANA for more `image/*` types + - Add extension `.asc` to `application/pgp-keys` + - Add extensions to various XML types + - Add new upstream MIME types + +2.1.34 / 2021-11-08 +=================== + + * deps: mime-db@1.51.0 + - Add new upstream MIME types + +2.1.33 / 2021-10-01 +=================== + + * deps: mime-db@1.50.0 + - Add deprecated iWorks mime types and extensions + - Add new upstream MIME types + +2.1.32 / 2021-07-27 +=================== + + * deps: mime-db@1.49.0 + - Add extension `.trig` to `application/trig` + - Add new upstream MIME types + +2.1.31 / 2021-06-01 +=================== + + * deps: mime-db@1.48.0 + - Add extension `.mvt` to `application/vnd.mapbox-vector-tile` + - Add new upstream MIME types + +2.1.30 / 2021-04-02 +=================== + + * deps: mime-db@1.47.0 + - Add extension `.amr` to `audio/amr` + - Remove ambigious extensions from IANA for `application/*+xml` types + - Update primary extension to `.es` for `application/ecmascript` + +2.1.29 / 2021-02-17 +=================== + + * deps: mime-db@1.46.0 + - Add extension `.amr` to `audio/amr` + - Add extension `.m4s` to `video/iso.segment` + - Add extension `.opus` to `audio/ogg` + - Add new upstream MIME types + +2.1.28 / 2021-01-01 +=================== + + * deps: mime-db@1.45.0 + - Add `application/ubjson` with extension `.ubj` + - Add `image/avif` with extension `.avif` + - Add `image/ktx2` with extension `.ktx2` + - Add extension `.dbf` to `application/vnd.dbf` + - Add extension `.rar` to `application/vnd.rar` + - Add extension `.td` to `application/urc-targetdesc+xml` + - Add new upstream MIME types + - Fix extension of `application/vnd.apple.keynote` to be `.key` + +2.1.27 / 2020-04-23 +=================== + + * deps: mime-db@1.44.0 + - Add charsets from IANA + - Add extension `.cjs` to `application/node` + - Add new upstream MIME types + +2.1.26 / 2020-01-05 +=================== + + * deps: mime-db@1.43.0 + - Add `application/x-keepass2` with extension `.kdbx` + - Add extension `.mxmf` to `audio/mobile-xmf` + - Add extensions from IANA for `application/*+xml` types + - Add new upstream MIME types + +2.1.25 / 2019-11-12 +=================== + + * deps: mime-db@1.42.0 + - Add new upstream MIME types + - Add `application/toml` with extension `.toml` + - Add `image/vnd.ms-dds` with extension `.dds` + +2.1.24 / 2019-04-20 +=================== + + * deps: mime-db@1.40.0 + - Add extensions from IANA for `model/*` types + - Add `text/mdx` with extension `.mdx` + +2.1.23 / 2019-04-17 +=================== + + * deps: mime-db@~1.39.0 + - Add extensions `.siv` and `.sieve` to `application/sieve` + - Add new upstream MIME types + +2.1.22 / 2019-02-14 +=================== + + * deps: mime-db@~1.38.0 + - Add extension `.nq` to `application/n-quads` + - Add extension `.nt` to `application/n-triples` + - Add new upstream MIME types + +2.1.21 / 2018-10-19 +=================== + + * deps: mime-db@~1.37.0 + - Add extensions to HEIC image types + - Add new upstream MIME types + +2.1.20 / 2018-08-26 +=================== + + * deps: mime-db@~1.36.0 + - Add Apple file extensions from IANA + - Add extensions from IANA for `image/*` types + - Add new upstream MIME types + +2.1.19 / 2018-07-17 +=================== + + * deps: mime-db@~1.35.0 + - Add extension `.csl` to `application/vnd.citationstyles.style+xml` + - Add extension `.es` to `application/ecmascript` + - Add extension `.owl` to `application/rdf+xml` + - Add new upstream MIME types + - Add UTF-8 as default charset for `text/turtle` + +2.1.18 / 2018-02-16 +=================== + + * deps: mime-db@~1.33.0 + - Add `application/raml+yaml` with extension `.raml` + - Add `application/wasm` with extension `.wasm` + - Add `text/shex` with extension `.shex` + - Add extensions for JPEG-2000 images + - Add extensions from IANA for `message/*` types + - Add new upstream MIME types + - Update font MIME types + - Update `text/hjson` to registered `application/hjson` + +2.1.17 / 2017-09-01 +=================== + + * deps: mime-db@~1.30.0 + - Add `application/vnd.ms-outlook` + - Add `application/x-arj` + - Add extension `.mjs` to `application/javascript` + - Add glTF types and extensions + - Add new upstream MIME types + - Add `text/x-org` + - Add VirtualBox MIME types + - Fix `source` records for `video/*` types that are IANA + - Update `font/opentype` to registered `font/otf` + +2.1.16 / 2017-07-24 +=================== + + * deps: mime-db@~1.29.0 + - Add `application/fido.trusted-apps+json` + - Add extension `.wadl` to `application/vnd.sun.wadl+xml` + - Add extension `.gz` to `application/gzip` + - Add new upstream MIME types + - Update extensions `.md` and `.markdown` to be `text/markdown` + +2.1.15 / 2017-03-23 +=================== + + * deps: mime-db@~1.27.0 + - Add new mime types + - Add `image/apng` + +2.1.14 / 2017-01-14 +=================== + + * deps: mime-db@~1.26.0 + - Add new mime types + +2.1.13 / 2016-11-18 +=================== + + * deps: mime-db@~1.25.0 + - Add new mime types + +2.1.12 / 2016-09-18 +=================== + + * deps: mime-db@~1.24.0 + - Add new mime types + - Add `audio/mp3` + +2.1.11 / 2016-05-01 +=================== + + * deps: mime-db@~1.23.0 + - Add new mime types + +2.1.10 / 2016-02-15 +=================== + + * deps: mime-db@~1.22.0 + - Add new mime types + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + +2.1.9 / 2016-01-06 +================== + + * deps: mime-db@~1.21.0 + - Add new mime types + +2.1.8 / 2015-11-30 +================== + + * deps: mime-db@~1.20.0 + - Add new mime types + +2.1.7 / 2015-09-20 +================== + + * deps: mime-db@~1.19.0 + - Add new mime types + +2.1.6 / 2015-09-03 +================== + + * deps: mime-db@~1.18.0 + - Add new mime types + +2.1.5 / 2015-08-20 +================== + + * deps: mime-db@~1.17.0 + - Add new mime types + +2.1.4 / 2015-07-30 +================== + + * deps: mime-db@~1.16.0 + - Add new mime types + +2.1.3 / 2015-07-13 +================== + + * deps: mime-db@~1.15.0 + - Add new mime types + +2.1.2 / 2015-06-25 +================== + + * deps: mime-db@~1.14.0 + - Add new mime types + +2.1.1 / 2015-06-08 +================== + + * perf: fix deopt during mapping + +2.1.0 / 2015-06-07 +================== + + * Fix incorrectly treating extension-less file name as extension + - i.e. `'path/to/json'` will no longer return `application/json` + * Fix `.charset(type)` to accept parameters + * Fix `.charset(type)` to match case-insensitive + * Improve generation of extension to MIME mapping + * Refactor internals for readability and no argument reassignment + * Prefer `application/*` MIME types from the same source + * Prefer any type over `application/octet-stream` + * deps: mime-db@~1.13.0 + - Add nginx as a source + - Add new mime types + +2.0.14 / 2015-06-06 +=================== + + * deps: mime-db@~1.12.0 + - Add new mime types + +2.0.13 / 2015-05-31 +=================== + + * deps: mime-db@~1.11.0 + - Add new mime types + +2.0.12 / 2015-05-19 +=================== + + * deps: mime-db@~1.10.0 + - Add new mime types + +2.0.11 / 2015-05-05 +=================== + + * deps: mime-db@~1.9.1 + - Add new mime types + +2.0.10 / 2015-03-13 +=================== + + * deps: mime-db@~1.8.0 + - Add new mime types + +2.0.9 / 2015-02-09 +================== + + * deps: mime-db@~1.7.0 + - Add new mime types + - Community extensions ownership transferred from `node-mime` + +2.0.8 / 2015-01-29 +================== + + * deps: mime-db@~1.6.0 + - Add new mime types + +2.0.7 / 2014-12-30 +================== + + * deps: mime-db@~1.5.0 + - Add new mime types + - Fix various invalid MIME type entries + +2.0.6 / 2014-12-30 +================== + + * deps: mime-db@~1.4.0 + - Add new mime types + - Fix various invalid MIME type entries + - Remove example template MIME types + +2.0.5 / 2014-12-29 +================== + + * deps: mime-db@~1.3.1 + - Fix missing extensions + +2.0.4 / 2014-12-10 +================== + + * deps: mime-db@~1.3.0 + - Add new mime types + +2.0.3 / 2014-11-09 +================== + + * deps: mime-db@~1.2.0 + - Add new mime types + +2.0.2 / 2014-09-28 +================== + + * deps: mime-db@~1.1.0 + - Add new mime types + - Update charsets + +2.0.1 / 2014-09-07 +================== + + * Support Node.js 0.6 + +2.0.0 / 2014-09-02 +================== + + * Use `mime-db` + * Remove `.define()` + +1.0.2 / 2014-08-04 +================== + + * Set charset=utf-8 for `text/javascript` + +1.0.1 / 2014-06-24 +================== + + * Add `text/jsx` type + +1.0.0 / 2014-05-12 +================== + + * Return `false` for unknown types + * Set charset=utf-8 for `application/json` + +0.1.0 / 2014-05-02 +================== + + * Initial release diff --git a/node_modules/mime-types/LICENSE b/node_modules/mime-types/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/node_modules/mime-types/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/mime-types/README.md b/node_modules/mime-types/README.md new file mode 100644 index 0000000..48d2fb4 --- /dev/null +++ b/node_modules/mime-types/README.md @@ -0,0 +1,113 @@ +# mime-types + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +The ultimate javascript content-type utility. + +Similar to [the `mime@1.x` module](https://www.npmjs.com/package/mime), except: + +- __No fallbacks.__ Instead of naively returning the first available type, + `mime-types` simply returns `false`, so do + `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. +- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. +- No `.define()` functionality +- Bug fixes for `.lookup(path)` + +Otherwise, the API is compatible with `mime` 1.x. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install mime-types +``` + +## Adding Types + +All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db), +so open a PR there if you'd like to add mime types. + +## API + +```js +var mime = require('mime-types') +``` + +All functions return `false` if input is invalid or not found. + +### mime.lookup(path) + +Lookup the content-type associated with a file. + +```js +mime.lookup('json') // 'application/json' +mime.lookup('.md') // 'text/markdown' +mime.lookup('file.html') // 'text/html' +mime.lookup('folder/file.js') // 'application/javascript' +mime.lookup('folder/.htaccess') // false + +mime.lookup('cats') // false +``` + +### mime.contentType(type) + +Create a full content-type header given a content-type or extension. +When given an extension, `mime.lookup` is used to get the matching +content-type, otherwise the given content-type is used. Then if the +content-type does not already have a `charset` parameter, `mime.charset` +is used to get the default charset and add to the returned content-type. + +```js +mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' +mime.contentType('file.json') // 'application/json; charset=utf-8' +mime.contentType('text/html') // 'text/html; charset=utf-8' +mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1' + +// from a full path +mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' +``` + +### mime.extension(type) + +Get the default extension for a content-type. + +```js +mime.extension('application/octet-stream') // 'bin' +``` + +### mime.charset(type) + +Lookup the implied default charset of a content-type. + +```js +mime.charset('text/markdown') // 'UTF-8' +``` + +### var type = mime.types[extension] + +A map of content-types by extension. + +### [extensions...] = mime.extensions[type] + +A map of extensions by content-type. + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci +[ci-url]: https://github.com/jshttp/mime-types/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master +[coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master +[node-version-image]: https://badgen.net/npm/node/mime-types +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/mime-types +[npm-url]: https://npmjs.org/package/mime-types +[npm-version-image]: https://badgen.net/npm/v/mime-types diff --git a/node_modules/mime-types/index.js b/node_modules/mime-types/index.js new file mode 100644 index 0000000..b9f34d5 --- /dev/null +++ b/node_modules/mime-types/index.js @@ -0,0 +1,188 @@ +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var db = require('mime-db') +var extname = require('path').extname + +/** + * Module variables. + * @private + */ + +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i + +/** + * Module exports. + * @public + */ + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) + +/** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false +} + +/** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} + +/** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} + +/** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} + +/** + * Populate the extensions and types maps. + * @private + */ + +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} diff --git a/node_modules/mime-types/package.json b/node_modules/mime-types/package.json new file mode 100644 index 0000000..bbef696 --- /dev/null +++ b/node_modules/mime-types/package.json @@ -0,0 +1,44 @@ +{ + "name": "mime-types", + "description": "The ultimate javascript content-type utility.", + "version": "2.1.35", + "contributors": [ + "Douglas Christopher Wilson ", + "Jeremiah Senkpiel (https://searchbeam.jit.su)", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "keywords": [ + "mime", + "types" + ], + "repository": "jshttp/mime-types", + "dependencies": { + "mime-db": "1.52.0" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec test/test.js", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/mime/.npmignore b/node_modules/mime/.npmignore new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/mime/CHANGELOG.md b/node_modules/mime/CHANGELOG.md new file mode 100644 index 0000000..f127535 --- /dev/null +++ b/node_modules/mime/CHANGELOG.md @@ -0,0 +1,164 @@ +# Changelog + +## v1.6.0 (24/11/2017) +*No changelog for this release.* + +--- + +## v2.0.4 (24/11/2017) +- [**closed**] Switch to mime-score module for resolving extension contention issues. [#182](https://github.com/broofa/node-mime/issues/182) +- [**closed**] Update mime-db to 1.31.0 in v1.x branch [#181](https://github.com/broofa/node-mime/issues/181) + +--- + +## v1.5.0 (22/11/2017) +- [**closed**] need ES5 version ready in npm package [#179](https://github.com/broofa/node-mime/issues/179) +- [**closed**] mime-db no trace of iWork - pages / numbers / etc. [#178](https://github.com/broofa/node-mime/issues/178) +- [**closed**] How it works in brownser ? [#176](https://github.com/broofa/node-mime/issues/176) +- [**closed**] Missing `./Mime` [#175](https://github.com/broofa/node-mime/issues/175) +- [**closed**] Vulnerable Regular Expression [#167](https://github.com/broofa/node-mime/issues/167) + +--- + +## v2.0.3 (25/09/2017) +*No changelog for this release.* + +--- + +## v1.4.1 (25/09/2017) +- [**closed**] Issue when bundling with webpack [#172](https://github.com/broofa/node-mime/issues/172) + +--- + +## v2.0.2 (15/09/2017) +- [**V2**] fs.readFileSync is not a function [#165](https://github.com/broofa/node-mime/issues/165) +- [**closed**] The extension for video/quicktime should map to .mov, not .qt [#164](https://github.com/broofa/node-mime/issues/164) +- [**V2**] [v2 Feedback request] Mime class API [#163](https://github.com/broofa/node-mime/issues/163) +- [**V2**] [v2 Feedback request] Resolving conflicts over extensions [#162](https://github.com/broofa/node-mime/issues/162) +- [**V2**] Allow callers to load module with official, full, or no defined types. [#161](https://github.com/broofa/node-mime/issues/161) +- [**V2**] Use "facets" to resolve extension conflicts [#160](https://github.com/broofa/node-mime/issues/160) +- [**V2**] Remove fs and path dependencies [#152](https://github.com/broofa/node-mime/issues/152) +- [**V2**] Default content-type should not be application/octet-stream [#139](https://github.com/broofa/node-mime/issues/139) +- [**V2**] reset mime-types [#124](https://github.com/broofa/node-mime/issues/124) +- [**V2**] Extensionless paths should return null or false [#113](https://github.com/broofa/node-mime/issues/113) + +--- + +## v2.0.1 (14/09/2017) +- [**closed**] Changelog for v2.0 does not mention breaking changes [#171](https://github.com/broofa/node-mime/issues/171) +- [**closed**] MIME breaking with 'class' declaration as it is without 'use strict mode' [#170](https://github.com/broofa/node-mime/issues/170) + +--- + +## v2.0.0 (12/09/2017) +- [**closed**] woff and woff2 [#168](https://github.com/broofa/node-mime/issues/168) + +--- + +## v1.4.0 (28/08/2017) +- [**closed**] support for ac3 voc files [#159](https://github.com/broofa/node-mime/issues/159) +- [**closed**] Help understanding change from application/xml to text/xml [#158](https://github.com/broofa/node-mime/issues/158) +- [**closed**] no longer able to override mimetype [#157](https://github.com/broofa/node-mime/issues/157) +- [**closed**] application/vnd.adobe.photoshop [#147](https://github.com/broofa/node-mime/issues/147) +- [**closed**] Directories should appear as something other than application/octet-stream [#135](https://github.com/broofa/node-mime/issues/135) +- [**closed**] requested features [#131](https://github.com/broofa/node-mime/issues/131) +- [**closed**] Make types.json loading optional? [#129](https://github.com/broofa/node-mime/issues/129) +- [**closed**] Cannot find module './types.json' [#120](https://github.com/broofa/node-mime/issues/120) +- [**V2**] .wav files show up as "audio/x-wav" instead of "audio/x-wave" [#118](https://github.com/broofa/node-mime/issues/118) +- [**closed**] Don't be a pain in the ass for node community [#108](https://github.com/broofa/node-mime/issues/108) +- [**closed**] don't make default_type global [#78](https://github.com/broofa/node-mime/issues/78) +- [**closed**] mime.extension() fails if the content-type is parameterized [#74](https://github.com/broofa/node-mime/issues/74) + +--- + +## v1.3.6 (11/05/2017) +- [**closed**] .md should be text/markdown as of March 2016 [#154](https://github.com/broofa/node-mime/issues/154) +- [**closed**] Error while installing mime [#153](https://github.com/broofa/node-mime/issues/153) +- [**closed**] application/manifest+json [#149](https://github.com/broofa/node-mime/issues/149) +- [**closed**] Dynamic adaptive streaming over HTTP (DASH) file extension typo [#141](https://github.com/broofa/node-mime/issues/141) +- [**closed**] charsets image/png undefined [#140](https://github.com/broofa/node-mime/issues/140) +- [**closed**] Mime-db dependency out of date [#130](https://github.com/broofa/node-mime/issues/130) +- [**closed**] how to support plist? [#126](https://github.com/broofa/node-mime/issues/126) +- [**closed**] how does .types file format look like? [#123](https://github.com/broofa/node-mime/issues/123) +- [**closed**] Feature: support for expanding MIME patterns [#121](https://github.com/broofa/node-mime/issues/121) +- [**closed**] DEBUG_MIME doesn't work [#117](https://github.com/broofa/node-mime/issues/117) + +--- + +## v1.3.4 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.3 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.1 (05/02/2015) +- [**closed**] Consider adding support for Handlebars .hbs file ending [#111](https://github.com/broofa/node-mime/issues/111) +- [**closed**] Consider adding support for hjson. [#110](https://github.com/broofa/node-mime/issues/110) +- [**closed**] Add mime type for Opus audio files [#94](https://github.com/broofa/node-mime/issues/94) +- [**closed**] Consider making the `Requesting New Types` information more visible [#77](https://github.com/broofa/node-mime/issues/77) + +--- + +## v1.3.0 (05/02/2015) +- [**closed**] Add common name? [#114](https://github.com/broofa/node-mime/issues/114) +- [**closed**] application/x-yaml [#104](https://github.com/broofa/node-mime/issues/104) +- [**closed**] Add mime type for WOFF file format 2.0 [#102](https://github.com/broofa/node-mime/issues/102) +- [**closed**] application/x-msi for .msi [#99](https://github.com/broofa/node-mime/issues/99) +- [**closed**] Add mimetype for gettext translation files [#98](https://github.com/broofa/node-mime/issues/98) +- [**closed**] collaborators [#88](https://github.com/broofa/node-mime/issues/88) +- [**closed**] getting errot in installation of mime module...any1 can help? [#87](https://github.com/broofa/node-mime/issues/87) +- [**closed**] should application/json's charset be utf8? [#86](https://github.com/broofa/node-mime/issues/86) +- [**closed**] Add "license" and "licenses" to package.json [#81](https://github.com/broofa/node-mime/issues/81) +- [**closed**] lookup with extension-less file on Windows returns wrong type [#68](https://github.com/broofa/node-mime/issues/68) + +--- + +## v1.2.11 (15/08/2013) +- [**closed**] Update mime.types [#65](https://github.com/broofa/node-mime/issues/65) +- [**closed**] Publish a new version [#63](https://github.com/broofa/node-mime/issues/63) +- [**closed**] README should state upfront that "application/octet-stream" is default for unknown extension [#55](https://github.com/broofa/node-mime/issues/55) +- [**closed**] Suggested improvement to the charset API [#52](https://github.com/broofa/node-mime/issues/52) + +--- + +## v1.2.10 (25/07/2013) +- [**closed**] Mime type for woff files should be application/font-woff and not application/x-font-woff [#62](https://github.com/broofa/node-mime/issues/62) +- [**closed**] node.types in conflict with mime.types [#51](https://github.com/broofa/node-mime/issues/51) + +--- + +## v1.2.9 (17/01/2013) +- [**closed**] Please update "mime" NPM [#49](https://github.com/broofa/node-mime/issues/49) +- [**closed**] Please add semicolon [#46](https://github.com/broofa/node-mime/issues/46) +- [**closed**] parse full mime types [#43](https://github.com/broofa/node-mime/issues/43) + +--- + +## v1.2.8 (10/01/2013) +- [**closed**] /js directory mime is application/javascript. Is it correct? [#47](https://github.com/broofa/node-mime/issues/47) +- [**closed**] Add mime types for lua code. [#45](https://github.com/broofa/node-mime/issues/45) + +--- + +## v1.2.7 (19/10/2012) +- [**closed**] cannot install 1.2.7 via npm [#41](https://github.com/broofa/node-mime/issues/41) +- [**closed**] Transfer ownership to @broofa [#36](https://github.com/broofa/node-mime/issues/36) +- [**closed**] it's wrong to set charset to UTF-8 for text [#30](https://github.com/broofa/node-mime/issues/30) +- [**closed**] Allow multiple instances of MIME types container [#27](https://github.com/broofa/node-mime/issues/27) + +--- + +## v1.2.5 (16/02/2012) +- [**closed**] When looking up a types, check hasOwnProperty [#23](https://github.com/broofa/node-mime/issues/23) +- [**closed**] Bump version to 1.2.2 [#18](https://github.com/broofa/node-mime/issues/18) +- [**closed**] No license [#16](https://github.com/broofa/node-mime/issues/16) +- [**closed**] Some types missing that are used by html5/css3 [#13](https://github.com/broofa/node-mime/issues/13) +- [**closed**] npm install fails for 1.2.1 [#12](https://github.com/broofa/node-mime/issues/12) +- [**closed**] image/pjpeg + image/x-png [#10](https://github.com/broofa/node-mime/issues/10) +- [**closed**] symlink [#8](https://github.com/broofa/node-mime/issues/8) +- [**closed**] gzip [#2](https://github.com/broofa/node-mime/issues/2) +- [**closed**] ALL CAPS filenames return incorrect mime type [#1](https://github.com/broofa/node-mime/issues/1) diff --git a/node_modules/mime/LICENSE b/node_modules/mime/LICENSE new file mode 100644 index 0000000..d3f46f7 --- /dev/null +++ b/node_modules/mime/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2010 Benjamin Thomas, Robert Kieffer + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/mime/README.md b/node_modules/mime/README.md new file mode 100644 index 0000000..506fbe5 --- /dev/null +++ b/node_modules/mime/README.md @@ -0,0 +1,90 @@ +# mime + +Comprehensive MIME type mapping API based on mime-db module. + +## Install + +Install with [npm](http://github.com/isaacs/npm): + + npm install mime + +## Contributing / Testing + + npm run test + +## Command Line + + mime [path_string] + +E.g. + + > mime scripts/jquery.js + application/javascript + +## API - Queries + +### mime.lookup(path) +Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g. + +```js +var mime = require('mime'); + +mime.lookup('/path/to/file.txt'); // => 'text/plain' +mime.lookup('file.txt'); // => 'text/plain' +mime.lookup('.TXT'); // => 'text/plain' +mime.lookup('htm'); // => 'text/html' +``` + +### mime.default_type +Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) + +### mime.extension(type) +Get the default extension for `type` + +```js +mime.extension('text/html'); // => 'html' +mime.extension('application/octet-stream'); // => 'bin' +``` + +### mime.charsets.lookup() + +Map mime-type to charset + +```js +mime.charsets.lookup('text/plain'); // => 'UTF-8' +``` + +(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.) + +## API - Defining Custom Types + +Custom type mappings can be added on a per-project basis via the following APIs. + +### mime.define() + +Add custom mime/extension mappings + +```js +mime.define({ + 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], + 'application/x-my-type': ['x-mt', 'x-mtt'], + // etc ... +}); + +mime.lookup('x-sft'); // => 'text/x-some-format' +``` + +The first entry in the extensions array is returned by `mime.extension()`. E.g. + +```js +mime.extension('text/x-some-format'); // => 'x-sf' +``` + +### mime.load(filepath) + +Load mappings from an Apache ".types" format file + +```js +mime.load('./my_project.types'); +``` +The .types file format is simple - See the `types` dir for examples. diff --git a/node_modules/mime/cli.js b/node_modules/mime/cli.js new file mode 100644 index 0000000..20b1ffe --- /dev/null +++ b/node_modules/mime/cli.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var mime = require('./mime.js'); +var file = process.argv[2]; +var type = mime.lookup(file); + +process.stdout.write(type + '\n'); + diff --git a/node_modules/mime/mime.js b/node_modules/mime/mime.js new file mode 100644 index 0000000..d7efbde --- /dev/null +++ b/node_modules/mime/mime.js @@ -0,0 +1,108 @@ +var path = require('path'); +var fs = require('fs'); + +function Mime() { + // Map of extension -> mime type + this.types = Object.create(null); + + // Map of mime type -> extension + this.extensions = Object.create(null); +} + +/** + * Define mimetype -> extension mappings. Each key is a mime-type that maps + * to an array of extensions associated with the type. The first extension is + * used as the default extension for the type. + * + * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); + * + * @param map (Object) type definitions + */ +Mime.prototype.define = function (map) { + for (var type in map) { + var exts = map[type]; + for (var i = 0; i < exts.length; i++) { + if (process.env.DEBUG_MIME && this.types[exts[i]]) { + console.warn((this._loading || "define()").replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' + + this.types[exts[i]] + ' to ' + type); + } + + this.types[exts[i]] = type; + } + + // Default extension is the first one we encounter + if (!this.extensions[type]) { + this.extensions[type] = exts[0]; + } + } +}; + +/** + * Load an Apache2-style ".types" file + * + * This may be called multiple times (it's expected). Where files declare + * overlapping types/extensions, the last file wins. + * + * @param file (String) path of file to load. + */ +Mime.prototype.load = function(file) { + this._loading = file; + // Read file and split into lines + var map = {}, + content = fs.readFileSync(file, 'ascii'), + lines = content.split(/[\r\n]+/); + + lines.forEach(function(line) { + // Clean up whitespace/comments, and split into fields + var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); + map[fields.shift()] = fields; + }); + + this.define(map); + + this._loading = null; +}; + +/** + * Lookup a mime type based on extension + */ +Mime.prototype.lookup = function(path, fallback) { + var ext = path.replace(/^.*[\.\/\\]/, '').toLowerCase(); + + return this.types[ext] || fallback || this.default_type; +}; + +/** + * Return file extension associated with a mime type + */ +Mime.prototype.extension = function(mimeType) { + var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); + return this.extensions[type]; +}; + +// Default instance +var mime = new Mime(); + +// Define built-in types +mime.define(require('./types.json')); + +// Default type +mime.default_type = mime.lookup('bin'); + +// +// Additional API specific to the default instance +// + +mime.Mime = Mime; + +/** + * Lookup a charset based on mime type. + */ +mime.charsets = { + lookup: function(mimeType, fallback) { + // Assume text types are utf8 + return (/^text\/|^application\/(javascript|json)/).test(mimeType) ? 'UTF-8' : fallback; + } +}; + +module.exports = mime; diff --git a/node_modules/mime/package.json b/node_modules/mime/package.json new file mode 100644 index 0000000..6bd24bc --- /dev/null +++ b/node_modules/mime/package.json @@ -0,0 +1,44 @@ +{ + "author": { + "name": "Robert Kieffer", + "url": "http://github.com/broofa", + "email": "robert@broofa.com" + }, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + }, + "contributors": [ + { + "name": "Benjamin Thomas", + "url": "http://github.com/bentomas", + "email": "benjamin@benjaminthomas.org" + } + ], + "description": "A comprehensive library for mime-type mapping", + "license": "MIT", + "dependencies": {}, + "devDependencies": { + "github-release-notes": "0.13.1", + "mime-db": "1.31.0", + "mime-score": "1.1.0" + }, + "scripts": { + "prepare": "node src/build.js", + "changelog": "gren changelog --tags=all --generate --override", + "test": "node src/test.js" + }, + "keywords": [ + "util", + "mime" + ], + "main": "mime.js", + "name": "mime", + "repository": { + "url": "https://github.com/broofa/node-mime", + "type": "git" + }, + "version": "1.6.0" +} diff --git a/node_modules/mime/src/build.js b/node_modules/mime/src/build.js new file mode 100644 index 0000000..4928e48 --- /dev/null +++ b/node_modules/mime/src/build.js @@ -0,0 +1,53 @@ +#!/usr/bin/env node + +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const mimeScore = require('mime-score'); + +let db = require('mime-db'); +let chalk = require('chalk'); + +const STANDARD_FACET_SCORE = 900; + +const byExtension = {}; + +// Clear out any conflict extensions in mime-db +for (let type in db) { + let entry = db[type]; + entry.type = type; + + if (!entry.extensions) continue; + + entry.extensions.forEach(ext => { + if (ext in byExtension) { + const e0 = entry; + const e1 = byExtension[ext]; + e0.pri = mimeScore(e0.type, e0.source); + e1.pri = mimeScore(e1.type, e1.source); + + let drop = e0.pri < e1.pri ? e0 : e1; + let keep = e0.pri >= e1.pri ? e0 : e1; + drop.extensions = drop.extensions.filter(e => e !== ext); + + console.log(`${ext}: Keeping ${chalk.green(keep.type)} (${keep.pri}), dropping ${chalk.red(drop.type)} (${drop.pri})`); + } + byExtension[ext] = entry; + }); +} + +function writeTypesFile(types, path) { + fs.writeFileSync(path, JSON.stringify(types)); +} + +// Segregate into standard and non-standard types based on facet per +// https://tools.ietf.org/html/rfc6838#section-3.1 +const types = {}; + +Object.keys(db).sort().forEach(k => { + const entry = db[k]; + types[entry.type] = entry.extensions; +}); + +writeTypesFile(types, path.join(__dirname, '..', 'types.json')); diff --git a/node_modules/mime/src/test.js b/node_modules/mime/src/test.js new file mode 100644 index 0000000..42958a2 --- /dev/null +++ b/node_modules/mime/src/test.js @@ -0,0 +1,60 @@ +/** + * Usage: node test.js + */ + +var mime = require('../mime'); +var assert = require('assert'); +var path = require('path'); + +// +// Test mime lookups +// + +assert.equal('text/plain', mime.lookup('text.txt')); // normal file +assert.equal('text/plain', mime.lookup('TEXT.TXT')); // uppercase +assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file +assert.equal('text/plain', mime.lookup('.text.txt')); // hidden file +assert.equal('text/plain', mime.lookup('.txt')); // nameless +assert.equal('text/plain', mime.lookup('txt')); // extension-only +assert.equal('text/plain', mime.lookup('/txt')); // extension-less () +assert.equal('text/plain', mime.lookup('\\txt')); // Windows, extension-less +assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized +assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default + +// +// Test extensions +// + +assert.equal('txt', mime.extension(mime.types.text)); +assert.equal('html', mime.extension(mime.types.htm)); +assert.equal('bin', mime.extension('application/octet-stream')); +assert.equal('bin', mime.extension('application/octet-stream ')); +assert.equal('html', mime.extension(' text/html; charset=UTF-8')); +assert.equal('html', mime.extension('text/html; charset=UTF-8 ')); +assert.equal('html', mime.extension('text/html; charset=UTF-8')); +assert.equal('html', mime.extension('text/html ; charset=UTF-8')); +assert.equal('html', mime.extension('text/html;charset=UTF-8')); +assert.equal('html', mime.extension('text/Html;charset=UTF-8')); +assert.equal(undefined, mime.extension('unrecognized')); + +// +// Test node.types lookups +// + +assert.equal('font/woff', mime.lookup('file.woff')); +assert.equal('application/octet-stream', mime.lookup('file.buffer')); +// TODO: Uncomment once #157 is resolved +// assert.equal('audio/mp4', mime.lookup('file.m4a')); +assert.equal('font/otf', mime.lookup('file.otf')); + +// +// Test charsets +// + +assert.equal('UTF-8', mime.charsets.lookup('text/plain')); +assert.equal('UTF-8', mime.charsets.lookup(mime.types.js)); +assert.equal('UTF-8', mime.charsets.lookup(mime.types.json)); +assert.equal(undefined, mime.charsets.lookup(mime.types.bin)); +assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); + +console.log('\nAll tests passed'); diff --git a/node_modules/mime/types.json b/node_modules/mime/types.json new file mode 100644 index 0000000..bec78ab --- /dev/null +++ b/node_modules/mime/types.json @@ -0,0 +1 @@ +{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]} \ No newline at end of file diff --git a/node_modules/minimatch/LICENSE b/node_modules/minimatch/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/minimatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md new file mode 100644 index 0000000..33ede1d --- /dev/null +++ b/node_modules/minimatch/README.md @@ -0,0 +1,230 @@ +# minimatch + +A minimal matching utility. + +[![Build Status](https://travis-ci.org/isaacs/minimatch.svg?branch=master)](http://travis-ci.org/isaacs/minimatch) + + +This is the matching library used internally by npm. + +It works by converting glob expressions into JavaScript `RegExp` +objects. + +## Usage + +```javascript +var minimatch = require("minimatch") + +minimatch("bar.foo", "*.foo") // true! +minimatch("bar.foo", "*.bar") // false! +minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy! +``` + +## Features + +Supports these glob features: + +* Brace Expansion +* Extended glob matching +* "Globstar" `**` matching + +See: + +* `man sh` +* `man bash` +* `man 3 fnmatch` +* `man 5 gitignore` + +## Minimatch Class + +Create a minimatch object by instantiating the `minimatch.Minimatch` class. + +```javascript +var Minimatch = require("minimatch").Minimatch +var mm = new Minimatch(pattern, options) +``` + +### Properties + +* `pattern` The original pattern the minimatch object represents. +* `options` The options supplied to the constructor. +* `set` A 2-dimensional array of regexp or string expressions. + Each row in the + array corresponds to a brace-expanded pattern. Each item in the row + corresponds to a single path-part. For example, the pattern + `{a,b/c}/d` would expand to a set of patterns like: + + [ [ a, d ] + , [ b, c, d ] ] + + If a portion of the pattern doesn't have any "magic" in it + (that is, it's something like `"foo"` rather than `fo*o?`), then it + will be left as a string rather than converted to a regular + expression. + +* `regexp` Created by the `makeRe` method. A single regular expression + expressing the entire pattern. This is useful in cases where you wish + to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled. +* `negate` True if the pattern is negated. +* `comment` True if the pattern is a comment. +* `empty` True if the pattern is `""`. + +### Methods + +* `makeRe` Generate the `regexp` member if necessary, and return it. + Will return `false` if the pattern is invalid. +* `match(fname)` Return true if the filename matches the pattern, or + false otherwise. +* `matchOne(fileArray, patternArray, partial)` Take a `/`-split + filename, and match it against a single row in the `regExpSet`. This + method is mainly for internal use, but is exposed so that it can be + used by a glob-walker that needs to avoid excessive filesystem calls. + +All other methods are internal, and will be called as necessary. + +### minimatch(path, pattern, options) + +Main export. Tests a path against the pattern using the options. + +```javascript +var isJS = minimatch(file, "*.js", { matchBase: true }) +``` + +### minimatch.filter(pattern, options) + +Returns a function that tests its +supplied argument, suitable for use with `Array.filter`. Example: + +```javascript +var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true})) +``` + +### minimatch.match(list, pattern, options) + +Match against the list of +files, in the style of fnmatch or glob. If nothing is matched, and +options.nonull is set, then return a list containing the pattern itself. + +```javascript +var javascripts = minimatch.match(fileList, "*.js", {matchBase: true})) +``` + +### minimatch.makeRe(pattern, options) + +Make a regular expression object from the pattern. + +## Options + +All options are `false` by default. + +### debug + +Dump a ton of stuff to stderr. + +### nobrace + +Do not expand `{a,b}` and `{1..3}` brace sets. + +### noglobstar + +Disable `**` matching against multiple folder names. + +### dot + +Allow patterns to match filenames starting with a period, even if +the pattern does not explicitly have a period in that spot. + +Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot` +is set. + +### noext + +Disable "extglob" style patterns like `+(a|b)`. + +### nocase + +Perform a case-insensitive match. + +### nonull + +When a match is not found by `minimatch.match`, return a list containing +the pattern itself if this option is set. When not set, an empty list +is returned if there are no matches. + +### matchBase + +If set, then patterns without slashes will be matched +against the basename of the path if it contains slashes. For example, +`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. + +### nocomment + +Suppress the behavior of treating `#` at the start of a pattern as a +comment. + +### nonegate + +Suppress the behavior of treating a leading `!` character as negation. + +### flipNegate + +Returns from negate expressions the same as if they were not negated. +(Ie, true on a hit, false on a miss.) + +### partial + +Compare a partial path to a pattern. As long as the parts of the path that +are present are not contradicted by the pattern, it will be treated as a +match. This is useful in applications where you're walking through a +folder structure, and don't yet have the full path, but want to ensure that +you do not walk down paths that can never be a match. + +For example, + +```js +minimatch('/a/b', '/a/*/c/d', { partial: true }) // true, might be /a/b/c/d +minimatch('/a/b', '/**/d', { partial: true }) // true, might be /a/b/.../d +minimatch('/x/y/z', '/a/**/z', { partial: true }) // false, because x !== a +``` + +### allowWindowsEscape + +Windows path separator `\` is by default converted to `/`, which +prohibits the usage of `\` as a escape character. This flag skips that +behavior and allows using the escape character. + +## Comparisons to other fnmatch/glob implementations + +While strict compliance with the existing standards is a worthwhile +goal, some discrepancies exist between minimatch and other +implementations, and are intentional. + +If the pattern starts with a `!` character, then it is negated. Set the +`nonegate` flag to suppress this behavior, and treat leading `!` +characters normally. This is perhaps relevant if you wish to start the +pattern with a negative extglob pattern like `!(a|B)`. Multiple `!` +characters at the start of a pattern will negate the pattern multiple +times. + +If a pattern starts with `#`, then it is treated as a comment, and +will not match anything. Use `\#` to match a literal `#` at the +start of a line, or set the `nocomment` flag to suppress this behavior. + +The double-star character `**` is supported by default, unless the +`noglobstar` flag is set. This is supported in the manner of bsdglob +and bash 4.1, where `**` only has special significance if it is the only +thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but +`a/**b` will not. + +If an escaped pattern has no matches, and the `nonull` flag is set, +then minimatch.match returns the pattern as-provided, rather than +interpreting the character escapes. For example, +`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than +`"*a?"`. This is akin to setting the `nullglob` option in bash, except +that it does not resolve escaped pattern characters. + +If brace expansion is not disabled, then it is performed before any +other interpretation of the glob pattern. Thus, a pattern like +`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded +**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are +checked for validity. Since those two are valid, matching proceeds. diff --git a/node_modules/minimatch/minimatch.js b/node_modules/minimatch/minimatch.js new file mode 100644 index 0000000..fda45ad --- /dev/null +++ b/node_modules/minimatch/minimatch.js @@ -0,0 +1,947 @@ +module.exports = minimatch +minimatch.Minimatch = Minimatch + +var path = (function () { try { return require('path') } catch (e) {}}()) || { + sep: '/' +} +minimatch.sep = path.sep + +var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} +var expand = require('brace-expansion') + +var plTypes = { + '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, + '?': { open: '(?:', close: ')?' }, + '+': { open: '(?:', close: ')+' }, + '*': { open: '(?:', close: ')*' }, + '@': { open: '(?:', close: ')' } +} + +// any single thing other than / +// don't need to escape / when using new RegExp() +var qmark = '[^/]' + +// * => any number of characters +var star = qmark + '*?' + +// ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' + +// not a ^ or / followed by a dot, +// followed by anything, any number of times. +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' + +// characters that need to be escaped in RegExp. +var reSpecials = charSet('().*{}+?[]^$\\!') + +// "abc" -> { a:true, b:true, c:true } +function charSet (s) { + return s.split('').reduce(function (set, c) { + set[c] = true + return set + }, {}) +} + +// normalizes slashes. +var slashSplit = /\/+/ + +minimatch.filter = filter +function filter (pattern, options) { + options = options || {} + return function (p, i, list) { + return minimatch(p, pattern, options) + } +} + +function ext (a, b) { + b = b || {} + var t = {} + Object.keys(a).forEach(function (k) { + t[k] = a[k] + }) + Object.keys(b).forEach(function (k) { + t[k] = b[k] + }) + return t +} + +minimatch.defaults = function (def) { + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return minimatch + } + + var orig = minimatch + + var m = function minimatch (p, pattern, options) { + return orig(p, pattern, ext(def, options)) + } + + m.Minimatch = function Minimatch (pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)) + } + m.Minimatch.defaults = function defaults (options) { + return orig.defaults(ext(def, options)).Minimatch + } + + m.filter = function filter (pattern, options) { + return orig.filter(pattern, ext(def, options)) + } + + m.defaults = function defaults (options) { + return orig.defaults(ext(def, options)) + } + + m.makeRe = function makeRe (pattern, options) { + return orig.makeRe(pattern, ext(def, options)) + } + + m.braceExpand = function braceExpand (pattern, options) { + return orig.braceExpand(pattern, ext(def, options)) + } + + m.match = function (list, pattern, options) { + return orig.match(list, pattern, ext(def, options)) + } + + return m +} + +Minimatch.defaults = function (def) { + return minimatch.defaults(def).Minimatch +} + +function minimatch (p, pattern, options) { + assertValidPattern(pattern) + + if (!options) options = {} + + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + return false + } + + return new Minimatch(pattern, options).match(p) +} + +function Minimatch (pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options) + } + + assertValidPattern(pattern) + + if (!options) options = {} + + pattern = pattern.trim() + + // windows support: need to use /, not \ + if (!options.allowWindowsEscape && path.sep !== '/') { + pattern = pattern.split(path.sep).join('/') + } + + this.options = options + this.set = [] + this.pattern = pattern + this.regexp = null + this.negate = false + this.comment = false + this.empty = false + this.partial = !!options.partial + + // make the set of regexps etc. + this.make() +} + +Minimatch.prototype.debug = function () {} + +Minimatch.prototype.make = make +function make () { + var pattern = this.pattern + var options = this.options + + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true + return + } + if (!pattern) { + this.empty = true + return + } + + // step 1: figure out negation, etc. + this.parseNegate() + + // step 2: expand braces + var set = this.globSet = this.braceExpand() + + if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) } + + this.debug(this.pattern, set) + + // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + set = this.globParts = set.map(function (s) { + return s.split(slashSplit) + }) + + this.debug(this.pattern, set) + + // glob --> regexps + set = set.map(function (s, si, set) { + return s.map(this.parse, this) + }, this) + + this.debug(this.pattern, set) + + // filter out everything that didn't compile properly. + set = set.filter(function (s) { + return s.indexOf(false) === -1 + }) + + this.debug(this.pattern, set) + + this.set = set +} + +Minimatch.prototype.parseNegate = parseNegate +function parseNegate () { + var pattern = this.pattern + var negate = false + var options = this.options + var negateOffset = 0 + + if (options.nonegate) return + + for (var i = 0, l = pattern.length + ; i < l && pattern.charAt(i) === '!' + ; i++) { + negate = !negate + negateOffset++ + } + + if (negateOffset) this.pattern = pattern.substr(negateOffset) + this.negate = negate +} + +// Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c +minimatch.braceExpand = function (pattern, options) { + return braceExpand(pattern, options) +} + +Minimatch.prototype.braceExpand = braceExpand + +function braceExpand (pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options + } else { + options = {} + } + } + + pattern = typeof pattern === 'undefined' + ? this.pattern : pattern + + assertValidPattern(pattern) + + // Thanks to Yeting Li for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + // shortcut. no need to expand. + return [pattern] + } + + return expand(pattern) +} + +var MAX_PATTERN_LENGTH = 1024 * 64 +var assertValidPattern = function (pattern) { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern') + } + + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long') + } +} + +// parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. +Minimatch.prototype.parse = parse +var SUBPARSE = {} +function parse (pattern, isSub) { + assertValidPattern(pattern) + + var options = this.options + + // shortcuts + if (pattern === '**') { + if (!options.noglobstar) + return GLOBSTAR + else + pattern = '*' + } + if (pattern === '') return '' + + var re = '' + var hasMagic = !!options.nocase + var escaping = false + // ? => one single character + var patternListStack = [] + var negativeLists = [] + var stateChar + var inClass = false + var reClassStart = -1 + var classStart = -1 + // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' + : '(?!\\.)' + var self = this + + function clearStateChar () { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star + hasMagic = true + break + case '?': + re += qmark + hasMagic = true + break + default: + re += '\\' + stateChar + break + } + self.debug('clearStateChar %j %j', stateChar, re) + stateChar = false + } + } + + for (var i = 0, len = pattern.length, c + ; (i < len) && (c = pattern.charAt(i)) + ; i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c) + + // skip over any that are escaped. + if (escaping && reSpecials[c]) { + re += '\\' + c + escaping = false + continue + } + + switch (c) { + /* istanbul ignore next */ + case '/': { + // completely not allowed, even escaped. + // Should already be path-split by now. + return false + } + + case '\\': + clearStateChar() + escaping = true + continue + + // the various stateChar values + // for the "extglob" stuff. + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) + + // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp + if (inClass) { + this.debug(' in class') + if (c === '!' && i === classStart + 1) c = '^' + re += c + continue + } + + // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. + self.debug('call clearStateChar %j', stateChar) + clearStateChar() + stateChar = c + // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. + if (options.noext) clearStateChar() + continue + + case '(': + if (inClass) { + re += '(' + continue + } + + if (!stateChar) { + re += '\\(' + continue + } + + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }) + // negation is (?:(?!js)[^/]*) + re += stateChar === '!' ? '(?:(?!(?:' : '(?:' + this.debug('plType %j %j', stateChar, re) + stateChar = false + continue + + case ')': + if (inClass || !patternListStack.length) { + re += '\\)' + continue + } + + clearStateChar() + hasMagic = true + var pl = patternListStack.pop() + // negation is (?:(?!js)[^/]*) + // The others are (?:) + re += pl.close + if (pl.type === '!') { + negativeLists.push(pl) + } + pl.reEnd = re.length + continue + + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|' + escaping = false + continue + } + + clearStateChar() + re += '|' + continue + + // these are mostly the same in regexp and glob + case '[': + // swallow any state-tracking char before the [ + clearStateChar() + + if (inClass) { + re += '\\' + c + continue + } + + inClass = true + classStart = i + reClassStart = re.length + re += c + continue + + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c + escaping = false + continue + } + + // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i) + try { + RegExp('[' + cs + ']') + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' + hasMagic = hasMagic || sp[1] + inClass = false + continue + } + + // finish up the class. + hasMagic = true + inClass = false + re += c + continue + + default: + // swallow any state char that wasn't consumed + clearStateChar() + + if (escaping) { + // no need + escaping = false + } else if (reSpecials[c] + && !(c === '^' && inClass)) { + re += '\\' + } + + re += c + + } // switch + } // for + + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1) + sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + hasMagic = hasMagic || sp[1] + } + + // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length) + this.debug('setting tail', re, pl) + // maybe some even number of \, then maybe 1 \, followed by a | + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\' + } + + // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. + return $1 + $1 + $2 + '|' + }) + + this.debug('tail=%j\n %s', tail, tail, pl, re) + var t = pl.type === '*' ? star + : pl.type === '?' ? qmark + : '\\' + pl.type + + hasMagic = true + re = re.slice(0, pl.reStart) + t + '\\(' + tail + } + + // handle trailing things that only matter at the very end. + clearStateChar() + if (escaping) { + // trailing \\ + re += '\\\\' + } + + // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot + var addPatternStart = false + switch (re.charAt(0)) { + case '[': case '.': case '(': addPatternStart = true + } + + // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n] + + var nlBefore = re.slice(0, nl.reStart) + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + var nlAfter = re.slice(nl.reEnd) + + nlLast += nlAfter + + // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. + var openParensBefore = nlBefore.split('(').length - 1 + var cleanAfter = nlAfter + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') + } + nlAfter = cleanAfter + + var dollar = '' + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$' + } + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast + re = newRe + } + + // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. + if (re !== '' && hasMagic) { + re = '(?=.)' + re + } + + if (addPatternStart) { + re = patternStart + re + } + + // parsing just a piece of a larger pattern. + if (isSub === SUBPARSE) { + return [re, hasMagic] + } + + // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. + if (!hasMagic) { + return globUnescape(pattern) + } + + var flags = options.nocase ? 'i' : '' + try { + var regExp = new RegExp('^' + re + '$', flags) + } catch (er) /* istanbul ignore next - should be impossible */ { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.') + } + + regExp._glob = pattern + regExp._src = re + + return regExp +} + +minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe() +} + +Minimatch.prototype.makeRe = makeRe +function makeRe () { + if (this.regexp || this.regexp === false) return this.regexp + + // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. + var set = this.set + + if (!set.length) { + this.regexp = false + return this.regexp + } + var options = this.options + + var twoStar = options.noglobstar ? star + : options.dot ? twoStarDot + : twoStarNoDot + var flags = options.nocase ? 'i' : '' + + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return (p === GLOBSTAR) ? twoStar + : (typeof p === 'string') ? regExpEscape(p) + : p._src + }).join('\\\/') + }).join('|') + + // must match entire pattern + // ending in a * or ** will make it less strict. + re = '^(?:' + re + ')$' + + // can match anything, as long as it's not this. + if (this.negate) re = '^(?!' + re + ').*$' + + try { + this.regexp = new RegExp(re, flags) + } catch (ex) /* istanbul ignore next - should be impossible */ { + this.regexp = false + } + return this.regexp +} + +minimatch.match = function (list, pattern, options) { + options = options || {} + var mm = new Minimatch(pattern, options) + list = list.filter(function (f) { + return mm.match(f) + }) + if (mm.options.nonull && !list.length) { + list.push(pattern) + } + return list +} + +Minimatch.prototype.match = function match (f, partial) { + if (typeof partial === 'undefined') partial = this.partial + this.debug('match', f, this.pattern) + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false + if (this.empty) return f === '' + + if (f === '/' && partial) return true + + var options = this.options + + // windows: need to use /, not \ + if (path.sep !== '/') { + f = f.split(path.sep).join('/') + } + + // treat the test path as a set of pathparts. + f = f.split(slashSplit) + this.debug(this.pattern, 'split', f) + + // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. + + var set = this.set + this.debug(this.pattern, 'set', set) + + // Find the basename of the path by looking for the last non-empty segment + var filename + var i + for (i = f.length - 1; i >= 0; i--) { + filename = f[i] + if (filename) break + } + + for (i = 0; i < set.length; i++) { + var pattern = set[i] + var file = f + if (options.matchBase && pattern.length === 1) { + file = [filename] + } + var hit = this.matchOne(file, pattern, partial) + if (hit) { + if (options.flipNegate) return true + return !this.negate + } + } + + // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. + if (options.flipNegate) return false + return this.negate +} + +// set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. +Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options + + this.debug('matchOne', + { 'this': this, file: file, pattern: pattern }) + + this.debug('matchOne', file.length, pattern.length) + + for (var fi = 0, + pi = 0, + fl = file.length, + pl = pattern.length + ; (fi < fl) && (pi < pl) + ; fi++, pi++) { + this.debug('matchOne loop') + var p = pattern[pi] + var f = file[fi] + + this.debug(pattern, p, f) + + // should be impossible. + // some invalid regexp stuff in the set. + /* istanbul ignore if */ + if (p === false) return false + + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]) + + // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit + var fr = fi + var pr = pi + 1 + if (pr === pl) { + this.debug('** at the end') + // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || + (!options.dot && file[fi].charAt(0) === '.')) return false + } + return true + } + + // ok, let's see if we can swallow whatever we can. + while (fr < fl) { + var swallowee = file[fr] + + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) + + // XXX remove this slice. Just pass the start index. + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee) + // found a match. + return true + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || + (!options.dot && swallowee.charAt(0) === '.')) { + this.debug('dot detected!', file, fr, pattern, pr) + break + } + + // ** swallows a segment, and continue. + this.debug('globstar swallow a segment, and continue') + fr++ + } + } + + // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then + /* istanbul ignore if */ + if (partial) { + // ran out of file + this.debug('\n>>> no match, partial?', file, fr, pattern, pr) + if (fr === fl) return true + } + return false + } + + // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. + var hit + if (typeof p === 'string') { + hit = f === p + this.debug('string match', p, f, hit) + } else { + hit = f.match(p) + this.debug('pattern match', p, f, hit) + } + + if (!hit) return false + } + + // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + + // now either we fell off the end of the pattern, or we're done. + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial + } else /* istanbul ignore else */ if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + return (fi === fl - 1) && (file[fi] === '') + } + + // should be unreachable. + /* istanbul ignore next */ + throw new Error('wtf?') +} + +// replace stuff like \* with * +function globUnescape (s) { + return s.replace(/\\(.)/g, '$1') +} + +function regExpEscape (s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') +} diff --git a/node_modules/minimatch/package.json b/node_modules/minimatch/package.json new file mode 100644 index 0000000..566efdf --- /dev/null +++ b/node_modules/minimatch/package.json @@ -0,0 +1,33 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me)", + "name": "minimatch", + "description": "a glob matcher in javascript", + "version": "3.1.2", + "publishConfig": { + "tag": "v3-legacy" + }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "main": "minimatch.js", + "scripts": { + "test": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "engines": { + "node": "*" + }, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "devDependencies": { + "tap": "^15.1.6" + }, + "license": "ISC", + "files": [ + "minimatch.js" + ] +} diff --git a/node_modules/ms/index.js b/node_modules/ms/index.js new file mode 100644 index 0000000..6a522b1 --- /dev/null +++ b/node_modules/ms/index.js @@ -0,0 +1,152 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} diff --git a/node_modules/ms/license.md b/node_modules/ms/license.md new file mode 100644 index 0000000..69b6125 --- /dev/null +++ b/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/ms/package.json b/node_modules/ms/package.json new file mode 100644 index 0000000..6a31c81 --- /dev/null +++ b/node_modules/ms/package.json @@ -0,0 +1,37 @@ +{ + "name": "ms", + "version": "2.0.0", + "description": "Tiny milisecond conversion utility", + "repository": "zeit/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "3.19.0", + "expect.js": "0.3.1", + "husky": "0.13.3", + "lint-staged": "3.4.1", + "mocha": "3.4.1" + } +} diff --git a/node_modules/ms/readme.md b/node_modules/ms/readme.md new file mode 100644 index 0000000..84a9974 --- /dev/null +++ b/node_modules/ms/readme.md @@ -0,0 +1,51 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +``` + +### Convert from milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(ms('10 hours')) // "10h" +``` + +### Time format written-out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [node](https://nodejs.org) and in the browser. +- If a number is supplied to `ms`, a string with a unit is returned. +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`). +- If you pass a string with a number and a valid unit, the number of equivalent ms is returned. + +## Caught a bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/negotiator/HISTORY.md b/node_modules/negotiator/HISTORY.md new file mode 100644 index 0000000..a9a5449 --- /dev/null +++ b/node_modules/negotiator/HISTORY.md @@ -0,0 +1,108 @@ +0.6.3 / 2022-01-22 +================== + + * Revert "Lazy-load modules from main entry point" + +0.6.2 / 2019-04-29 +================== + + * Fix sorting charset, encoding, and language with extra parameters + +0.6.1 / 2016-05-02 +================== + + * perf: improve `Accept` parsing speed + * perf: improve `Accept-Charset` parsing speed + * perf: improve `Accept-Encoding` parsing speed + * perf: improve `Accept-Language` parsing speed + +0.6.0 / 2015-09-29 +================== + + * Fix including type extensions in parameters in `Accept` parsing + * Fix parsing `Accept` parameters with quoted equals + * Fix parsing `Accept` parameters with quoted semicolons + * Lazy-load modules from main entry point + * perf: delay type concatenation until needed + * perf: enable strict mode + * perf: hoist regular expressions + * perf: remove closures getting spec properties + * perf: remove a closure from media type parsing + * perf: remove property delete from media type parsing + +0.5.3 / 2015-05-10 +================== + + * Fix media type parameter matching to be case-insensitive + +0.5.2 / 2015-05-06 +================== + + * Fix comparing media types with quoted values + * Fix splitting media types with quoted commas + +0.5.1 / 2015-02-14 +================== + + * Fix preference sorting to be stable for long acceptable lists + +0.5.0 / 2014-12-18 +================== + + * Fix list return order when large accepted list + * Fix missing identity encoding when q=0 exists + * Remove dynamic building of Negotiator class + +0.4.9 / 2014-10-14 +================== + + * Fix error when media type has invalid parameter + +0.4.8 / 2014-09-28 +================== + + * Fix all negotiations to be case-insensitive + * Stable sort preferences of same quality according to client order + * Support Node.js 0.6 + +0.4.7 / 2014-06-24 +================== + + * Handle invalid provided languages + * Handle invalid provided media types + +0.4.6 / 2014-06-11 +================== + + * Order by specificity when quality is the same + +0.4.5 / 2014-05-29 +================== + + * Fix regression in empty header handling + +0.4.4 / 2014-05-29 +================== + + * Fix behaviors when headers are not present + +0.4.3 / 2014-04-16 +================== + + * Handle slashes on media params correctly + +0.4.2 / 2014-02-28 +================== + + * Fix media type sorting + * Handle media types params strictly + +0.4.1 / 2014-01-16 +================== + + * Use most specific matches + +0.4.0 / 2014-01-09 +================== + + * Remove preferred prefix from methods diff --git a/node_modules/negotiator/LICENSE b/node_modules/negotiator/LICENSE new file mode 100644 index 0000000..ea6b9e2 --- /dev/null +++ b/node_modules/negotiator/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Federico Romero +Copyright (c) 2012-2014 Isaac Z. Schlueter +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/negotiator/README.md b/node_modules/negotiator/README.md new file mode 100644 index 0000000..82915e5 --- /dev/null +++ b/node_modules/negotiator/README.md @@ -0,0 +1,203 @@ +# negotiator + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +An HTTP content negotiator for Node.js + +## Installation + +```sh +$ npm install negotiator +``` + +## API + +```js +var Negotiator = require('negotiator') +``` + +### Accept Negotiation + +```js +availableMediaTypes = ['text/html', 'text/plain', 'application/json'] + +// The negotiator constructor receives a request object +negotiator = new Negotiator(request) + +// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8' + +negotiator.mediaTypes() +// -> ['text/html', 'image/jpeg', 'application/*'] + +negotiator.mediaTypes(availableMediaTypes) +// -> ['text/html', 'application/json'] + +negotiator.mediaType(availableMediaTypes) +// -> 'text/html' +``` + +You can check a working example at `examples/accept.js`. + +#### Methods + +##### mediaType() + +Returns the most preferred media type from the client. + +##### mediaType(availableMediaType) + +Returns the most preferred media type from a list of available media types. + +##### mediaTypes() + +Returns an array of preferred media types ordered by the client preference. + +##### mediaTypes(availableMediaTypes) + +Returns an array of preferred media types ordered by priority from a list of +available media types. + +### Accept-Language Negotiation + +```js +negotiator = new Negotiator(request) + +availableLanguages = ['en', 'es', 'fr'] + +// Let's say Accept-Language header is 'en;q=0.8, es, pt' + +negotiator.languages() +// -> ['es', 'pt', 'en'] + +negotiator.languages(availableLanguages) +// -> ['es', 'en'] + +language = negotiator.language(availableLanguages) +// -> 'es' +``` + +You can check a working example at `examples/language.js`. + +#### Methods + +##### language() + +Returns the most preferred language from the client. + +##### language(availableLanguages) + +Returns the most preferred language from a list of available languages. + +##### languages() + +Returns an array of preferred languages ordered by the client preference. + +##### languages(availableLanguages) + +Returns an array of preferred languages ordered by priority from a list of +available languages. + +### Accept-Charset Negotiation + +```js +availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5'] + +negotiator = new Negotiator(request) + +// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2' + +negotiator.charsets() +// -> ['utf-8', 'iso-8859-1', 'utf-7'] + +negotiator.charsets(availableCharsets) +// -> ['utf-8', 'iso-8859-1'] + +negotiator.charset(availableCharsets) +// -> 'utf-8' +``` + +You can check a working example at `examples/charset.js`. + +#### Methods + +##### charset() + +Returns the most preferred charset from the client. + +##### charset(availableCharsets) + +Returns the most preferred charset from a list of available charsets. + +##### charsets() + +Returns an array of preferred charsets ordered by the client preference. + +##### charsets(availableCharsets) + +Returns an array of preferred charsets ordered by priority from a list of +available charsets. + +### Accept-Encoding Negotiation + +```js +availableEncodings = ['identity', 'gzip'] + +negotiator = new Negotiator(request) + +// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5' + +negotiator.encodings() +// -> ['gzip', 'identity', 'compress'] + +negotiator.encodings(availableEncodings) +// -> ['gzip', 'identity'] + +negotiator.encoding(availableEncodings) +// -> 'gzip' +``` + +You can check a working example at `examples/encoding.js`. + +#### Methods + +##### encoding() + +Returns the most preferred encoding from the client. + +##### encoding(availableEncodings) + +Returns the most preferred encoding from a list of available encodings. + +##### encodings() + +Returns an array of preferred encodings ordered by the client preference. + +##### encodings(availableEncodings) + +Returns an array of preferred encodings ordered by priority from a list of +available encodings. + +## See Also + +The [accepts](https://npmjs.org/package/accepts#readme) module builds on +this module and provides an alternative interface, mime type validation, +and more. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/negotiator.svg +[npm-url]: https://npmjs.org/package/negotiator +[node-version-image]: https://img.shields.io/node/v/negotiator.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/jshttp/negotiator/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/negotiator?branch=master +[downloads-image]: https://img.shields.io/npm/dm/negotiator.svg +[downloads-url]: https://npmjs.org/package/negotiator +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/negotiator/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/negotiator/actions/workflows/ci.yml diff --git a/node_modules/negotiator/index.js b/node_modules/negotiator/index.js new file mode 100644 index 0000000..4788264 --- /dev/null +++ b/node_modules/negotiator/index.js @@ -0,0 +1,82 @@ +/*! + * negotiator + * Copyright(c) 2012 Federico Romero + * Copyright(c) 2012-2014 Isaac Z. Schlueter + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +var preferredCharsets = require('./lib/charset') +var preferredEncodings = require('./lib/encoding') +var preferredLanguages = require('./lib/language') +var preferredMediaTypes = require('./lib/mediaType') + +/** + * Module exports. + * @public + */ + +module.exports = Negotiator; +module.exports.Negotiator = Negotiator; + +/** + * Create a Negotiator instance from a request. + * @param {object} request + * @public + */ + +function Negotiator(request) { + if (!(this instanceof Negotiator)) { + return new Negotiator(request); + } + + this.request = request; +} + +Negotiator.prototype.charset = function charset(available) { + var set = this.charsets(available); + return set && set[0]; +}; + +Negotiator.prototype.charsets = function charsets(available) { + return preferredCharsets(this.request.headers['accept-charset'], available); +}; + +Negotiator.prototype.encoding = function encoding(available) { + var set = this.encodings(available); + return set && set[0]; +}; + +Negotiator.prototype.encodings = function encodings(available) { + return preferredEncodings(this.request.headers['accept-encoding'], available); +}; + +Negotiator.prototype.language = function language(available) { + var set = this.languages(available); + return set && set[0]; +}; + +Negotiator.prototype.languages = function languages(available) { + return preferredLanguages(this.request.headers['accept-language'], available); +}; + +Negotiator.prototype.mediaType = function mediaType(available) { + var set = this.mediaTypes(available); + return set && set[0]; +}; + +Negotiator.prototype.mediaTypes = function mediaTypes(available) { + return preferredMediaTypes(this.request.headers.accept, available); +}; + +// Backwards compatibility +Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; +Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; +Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; +Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; +Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; +Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; +Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; +Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; diff --git a/node_modules/negotiator/lib/charset.js b/node_modules/negotiator/lib/charset.js new file mode 100644 index 0000000..cdd0148 --- /dev/null +++ b/node_modules/negotiator/lib/charset.js @@ -0,0 +1,169 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredCharsets; +module.exports.preferredCharsets = preferredCharsets; + +/** + * Module variables. + * @private + */ + +var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Charset header. + * @private + */ + +function parseAcceptCharset(accept) { + var accepts = accept.split(','); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var charset = parseCharset(accepts[i].trim(), i); + + if (charset) { + accepts[j++] = charset; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a charset from the Accept-Charset header. + * @private + */ + +function parseCharset(str, i) { + var match = simpleCharsetRegExp.exec(str); + if (!match) return null; + + var charset = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(';') + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split('='); + if (p[0] === 'q') { + q = parseFloat(p[1]); + break; + } + } + } + + return { + charset: charset, + q: q, + i: i + }; +} + +/** + * Get the priority of a charset. + * @private + */ + +function getCharsetPriority(charset, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(charset, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the charset. + * @private + */ + +function specify(charset, spec, index) { + var s = 0; + if(spec.charset.toLowerCase() === charset.toLowerCase()){ + s |= 1; + } else if (spec.charset !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +} + +/** + * Get the preferred charsets from an Accept-Charset header. + * @public + */ + +function preferredCharsets(accept, provided) { + // RFC 2616 sec 14.2: no header = * + var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || ''); + + if (!provided) { + // sorted list of all charsets + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullCharset); + } + + var priorities = provided.map(function getPriority(type, index) { + return getCharsetPriority(type, accepts, index); + }); + + // sorted list of accepted charsets + return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full charset string. + * @private + */ + +function getFullCharset(spec) { + return spec.charset; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git a/node_modules/negotiator/lib/encoding.js b/node_modules/negotiator/lib/encoding.js new file mode 100644 index 0000000..8432cd7 --- /dev/null +++ b/node_modules/negotiator/lib/encoding.js @@ -0,0 +1,184 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredEncodings; +module.exports.preferredEncodings = preferredEncodings; + +/** + * Module variables. + * @private + */ + +var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Encoding header. + * @private + */ + +function parseAcceptEncoding(accept) { + var accepts = accept.split(','); + var hasIdentity = false; + var minQuality = 1; + + for (var i = 0, j = 0; i < accepts.length; i++) { + var encoding = parseEncoding(accepts[i].trim(), i); + + if (encoding) { + accepts[j++] = encoding; + hasIdentity = hasIdentity || specify('identity', encoding); + minQuality = Math.min(minQuality, encoding.q || 1); + } + } + + if (!hasIdentity) { + /* + * If identity doesn't explicitly appear in the accept-encoding header, + * it's added to the list of acceptable encoding with the lowest q + */ + accepts[j++] = { + encoding: 'identity', + q: minQuality, + i: i + }; + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse an encoding from the Accept-Encoding header. + * @private + */ + +function parseEncoding(str, i) { + var match = simpleEncodingRegExp.exec(str); + if (!match) return null; + + var encoding = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(';'); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split('='); + if (p[0] === 'q') { + q = parseFloat(p[1]); + break; + } + } + } + + return { + encoding: encoding, + q: q, + i: i + }; +} + +/** + * Get the priority of an encoding. + * @private + */ + +function getEncodingPriority(encoding, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(encoding, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the encoding. + * @private + */ + +function specify(encoding, spec, index) { + var s = 0; + if(spec.encoding.toLowerCase() === encoding.toLowerCase()){ + s |= 1; + } else if (spec.encoding !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +}; + +/** + * Get the preferred encodings from an Accept-Encoding header. + * @public + */ + +function preferredEncodings(accept, provided) { + var accepts = parseAcceptEncoding(accept || ''); + + if (!provided) { + // sorted list of all encodings + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullEncoding); + } + + var priorities = provided.map(function getPriority(type, index) { + return getEncodingPriority(type, accepts, index); + }); + + // sorted list of accepted encodings + return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full encoding string. + * @private + */ + +function getFullEncoding(spec) { + return spec.encoding; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git a/node_modules/negotiator/lib/language.js b/node_modules/negotiator/lib/language.js new file mode 100644 index 0000000..a231672 --- /dev/null +++ b/node_modules/negotiator/lib/language.js @@ -0,0 +1,179 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredLanguages; +module.exports.preferredLanguages = preferredLanguages; + +/** + * Module variables. + * @private + */ + +var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Language header. + * @private + */ + +function parseAcceptLanguage(accept) { + var accepts = accept.split(','); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var language = parseLanguage(accepts[i].trim(), i); + + if (language) { + accepts[j++] = language; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a language from the Accept-Language header. + * @private + */ + +function parseLanguage(str, i) { + var match = simpleLanguageRegExp.exec(str); + if (!match) return null; + + var prefix = match[1] + var suffix = match[2] + var full = prefix + + if (suffix) full += "-" + suffix; + + var q = 1; + if (match[3]) { + var params = match[3].split(';') + for (var j = 0; j < params.length; j++) { + var p = params[j].split('='); + if (p[0] === 'q') q = parseFloat(p[1]); + } + } + + return { + prefix: prefix, + suffix: suffix, + q: q, + i: i, + full: full + }; +} + +/** + * Get the priority of a language. + * @private + */ + +function getLanguagePriority(language, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(language, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the language. + * @private + */ + +function specify(language, spec, index) { + var p = parseLanguage(language) + if (!p) return null; + var s = 0; + if(spec.full.toLowerCase() === p.full.toLowerCase()){ + s |= 4; + } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { + s |= 2; + } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { + s |= 1; + } else if (spec.full !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +}; + +/** + * Get the preferred languages from an Accept-Language header. + * @public + */ + +function preferredLanguages(accept, provided) { + // RFC 2616 sec 14.4: no header = * + var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || ''); + + if (!provided) { + // sorted list of all languages + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullLanguage); + } + + var priorities = provided.map(function getPriority(type, index) { + return getLanguagePriority(type, accepts, index); + }); + + // sorted list of accepted languages + return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full language string. + * @private + */ + +function getFullLanguage(spec) { + return spec.full; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git a/node_modules/negotiator/lib/mediaType.js b/node_modules/negotiator/lib/mediaType.js new file mode 100644 index 0000000..67309dd --- /dev/null +++ b/node_modules/negotiator/lib/mediaType.js @@ -0,0 +1,294 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredMediaTypes; +module.exports.preferredMediaTypes = preferredMediaTypes; + +/** + * Module variables. + * @private + */ + +var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept header. + * @private + */ + +function parseAccept(accept) { + var accepts = splitMediaTypes(accept); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var mediaType = parseMediaType(accepts[i].trim(), i); + + if (mediaType) { + accepts[j++] = mediaType; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a media type from the Accept header. + * @private + */ + +function parseMediaType(str, i) { + var match = simpleMediaTypeRegExp.exec(str); + if (!match) return null; + + var params = Object.create(null); + var q = 1; + var subtype = match[2]; + var type = match[1]; + + if (match[3]) { + var kvps = splitParameters(match[3]).map(splitKeyValuePair); + + for (var j = 0; j < kvps.length; j++) { + var pair = kvps[j]; + var key = pair[0].toLowerCase(); + var val = pair[1]; + + // get the value, unwrapping quotes + var value = val && val[0] === '"' && val[val.length - 1] === '"' + ? val.substr(1, val.length - 2) + : val; + + if (key === 'q') { + q = parseFloat(value); + break; + } + + // store parameter + params[key] = value; + } + } + + return { + type: type, + subtype: subtype, + params: params, + q: q, + i: i + }; +} + +/** + * Get the priority of a media type. + * @private + */ + +function getMediaTypePriority(type, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(type, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the media type. + * @private + */ + +function specify(type, spec, index) { + var p = parseMediaType(type); + var s = 0; + + if (!p) { + return null; + } + + if(spec.type.toLowerCase() == p.type.toLowerCase()) { + s |= 4 + } else if(spec.type != '*') { + return null; + } + + if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { + s |= 2 + } else if(spec.subtype != '*') { + return null; + } + + var keys = Object.keys(spec.params); + if (keys.length > 0) { + if (keys.every(function (k) { + return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase(); + })) { + s |= 1 + } else { + return null + } + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s, + } +} + +/** + * Get the preferred media types from an Accept header. + * @public + */ + +function preferredMediaTypes(accept, provided) { + // RFC 2616 sec 14.2: no header = */* + var accepts = parseAccept(accept === undefined ? '*/*' : accept || ''); + + if (!provided) { + // sorted list of all types + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullType); + } + + var priorities = provided.map(function getPriority(type, index) { + return getMediaTypePriority(type, accepts, index); + }); + + // sorted list of accepted types + return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full type string. + * @private + */ + +function getFullType(spec) { + return spec.type + '/' + spec.subtype; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} + +/** + * Count the number of quotes in a string. + * @private + */ + +function quoteCount(string) { + var count = 0; + var index = 0; + + while ((index = string.indexOf('"', index)) !== -1) { + count++; + index++; + } + + return count; +} + +/** + * Split a key value pair. + * @private + */ + +function splitKeyValuePair(str) { + var index = str.indexOf('='); + var key; + var val; + + if (index === -1) { + key = str; + } else { + key = str.substr(0, index); + val = str.substr(index + 1); + } + + return [key, val]; +} + +/** + * Split an Accept header into media types. + * @private + */ + +function splitMediaTypes(accept) { + var accepts = accept.split(','); + + for (var i = 1, j = 0; i < accepts.length; i++) { + if (quoteCount(accepts[j]) % 2 == 0) { + accepts[++j] = accepts[i]; + } else { + accepts[j] += ',' + accepts[i]; + } + } + + // trim accepts + accepts.length = j + 1; + + return accepts; +} + +/** + * Split a string of parameters. + * @private + */ + +function splitParameters(str) { + var parameters = str.split(';'); + + for (var i = 1, j = 0; i < parameters.length; i++) { + if (quoteCount(parameters[j]) % 2 == 0) { + parameters[++j] = parameters[i]; + } else { + parameters[j] += ';' + parameters[i]; + } + } + + // trim parameters + parameters.length = j + 1; + + for (var i = 0; i < parameters.length; i++) { + parameters[i] = parameters[i].trim(); + } + + return parameters; +} diff --git a/node_modules/negotiator/package.json b/node_modules/negotiator/package.json new file mode 100644 index 0000000..297635f --- /dev/null +++ b/node_modules/negotiator/package.json @@ -0,0 +1,42 @@ +{ + "name": "negotiator", + "description": "HTTP content negotiation", + "version": "0.6.3", + "contributors": [ + "Douglas Christopher Wilson ", + "Federico Romero ", + "Isaac Z. Schlueter (http://blog.izs.me/)" + ], + "license": "MIT", + "keywords": [ + "http", + "content negotiation", + "accept", + "accept-language", + "accept-encoding", + "accept-charset" + ], + "repository": "jshttp/negotiator", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "files": [ + "lib/", + "HISTORY.md", + "LICENSE", + "index.js", + "README.md" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/nodemon/.prettierrc.json b/node_modules/nodemon/.prettierrc.json new file mode 100644 index 0000000..544138b --- /dev/null +++ b/node_modules/nodemon/.prettierrc.json @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/node_modules/nodemon/LICENSE b/node_modules/nodemon/LICENSE new file mode 100644 index 0000000..19c91a2 --- /dev/null +++ b/node_modules/nodemon/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2010 - present, Remy Sharp, https://remysharp.com + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/nodemon/README.md b/node_modules/nodemon/README.md new file mode 100644 index 0000000..fb64596 --- /dev/null +++ b/node_modules/nodemon/README.md @@ -0,0 +1,448 @@ +

+ Nodemon Logo +

+ +# nodemon + +nodemon is a tool that helps develop Node.js based applications by automatically restarting the node application when file changes in the directory are detected. + +nodemon does **not** require *any* additional changes to your code or method of development. nodemon is a replacement wrapper for `node`. To use `nodemon`, replace the word `node` on the command line when executing your script. + +[![NPM version](https://badge.fury.io/js/nodemon.svg)](https://npmjs.org/package/nodemon) +[![Backers on Open Collective](https://opencollective.com/nodemon/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/nodemon/sponsors/badge.svg)](#sponsors) + +# Installation + +Either through cloning with git or by using [npm](http://npmjs.org) (the recommended way): + +```bash +npm install -g nodemon # or using yarn: yarn global add nodemon +``` + +And nodemon will be installed globally to your system path. + +You can also install nodemon as a development dependency: + +```bash +npm install --save-dev nodemon # or using yarn: yarn add nodemon -D +``` + +With a local installation, nodemon will not be available in your system path or you can't use it directly from the command line. Instead, the local installation of nodemon can be run by calling it from within an npm script (such as `npm start`) or using `npx nodemon`. + +# Usage + +nodemon wraps your application, so you can pass all the arguments you would normally pass to your app: + +```bash +nodemon [your node app] +``` + +For CLI options, use the `-h` (or `--help`) argument: + +```bash +nodemon -h +``` + +Using nodemon is simple, if my application accepted a host and port as the arguments, I would start it as so: + +```bash +nodemon ./server.js localhost 8080 +``` + +Any output from this script is prefixed with `[nodemon]`, otherwise all output from your application, errors included, will be echoed out as expected. + +You can also pass the `inspect` flag to node through the command line as you would normally: + +```bash +nodemon --inspect ./server.js 80 +``` + +If you have a `package.json` file for your app, you can omit the main script entirely and nodemon will read the `package.json` for the `main` property and use that value as the app ([ref](https://github.com/remy/nodemon/issues/14)). + +nodemon will also search for the `scripts.start` property in `package.json` (as of nodemon 1.1.x). + +Also check out the [FAQ](https://github.com/remy/nodemon/blob/master/faq.md) or [issues](https://github.com/remy/nodemon/issues) for nodemon. + +## Automatic re-running + +nodemon was originally written to restart hanging processes such as web servers, but now supports apps that cleanly exit. If your script exits cleanly, nodemon will continue to monitor the directory (or directories) and restart the script if there are any changes. + +## Manual restarting + +Whilst nodemon is running, if you need to manually restart your application, instead of stopping and restart nodemon, you can type `rs` with a carriage return, and nodemon will restart your process. + +## Config files + +nodemon supports local and global configuration files. These are usually named `nodemon.json` and can be located in the current working directory or in your home directory. An alternative local configuration file can be specified with the `--config ` option. + +The specificity is as follows, so that a command line argument will always override the config file settings: + +- command line arguments +- local config +- global config + +A config file can take any of the command line arguments as JSON key values, for example: + +```json +{ + "verbose": true, + "ignore": ["*.test.js", "**/fixtures/**"], + "execMap": { + "rb": "ruby", + "pde": "processing --sketch={{pwd}} --run" + } +} +``` + +The above `nodemon.json` file might be my global config so that I have support for ruby files and processing files, and I can run `nodemon demo.pde` and nodemon will automatically know how to run the script even though out of the box support for processing scripts. + +A further example of options can be seen in [sample-nodemon.md](https://github.com/remy/nodemon/blob/master/doc/sample-nodemon.md) + +### package.json + +If you want to keep all your package configurations in one place, nodemon supports using `package.json` for configuration. +Specify the config in the same format as you would for a config file but under `nodemonConfig` in the `package.json` file, for example, take the following `package.json`: + +```json +{ + "name": "nodemon", + "homepage": "http://nodemon.io", + "...": "... other standard package.json values", + "nodemonConfig": { + "ignore": ["**/test/**", "**/docs/**"], + "delay": 2500 + } +} +``` + +Note that if you specify a `--config` file or provide a local `nodemon.json` any `package.json` config is ignored. + +*This section needs better documentation, but for now you can also see `nodemon --help config` ([also here](https://github.com/remy/nodemon/blob/master/doc/cli/config.txt))*. + +## Using nodemon as a module + +Please see [doc/requireable.md](doc/requireable.md) + +## Using nodemon as child process + +Please see [doc/events.md](doc/events.md#Using_nodemon_as_child_process) + +## Running non-node scripts + +nodemon can also be used to execute and monitor other programs. nodemon will read the file extension of the script being run and monitor that extension instead of `.js` if there's no `nodemon.json`: + +```bash +nodemon --exec "python -v" ./app.py +``` + +Now nodemon will run `app.py` with python in verbose mode (note that if you're not passing args to the exec program, you don't need the quotes), and look for new or modified files with the `.py` extension. + +### Default executables + +Using the `nodemon.json` config file, you can define your own default executables using the `execMap` property. This is particularly useful if you're working with a language that isn't supported by default by nodemon. + +To add support for nodemon to know about the `.pl` extension (for Perl), the `nodemon.json` file would add: + +```json +{ + "execMap": { + "pl": "perl" + } +} +``` + +Now running the following, nodemon will know to use `perl` as the executable: + +```bash +nodemon script.pl +``` + +It's generally recommended to use the global `nodemon.json` to add your own `execMap` options. However, if there's a common default that's missing, this can be merged in to the project so that nodemon supports it by default, by changing [default.js](https://github.com/remy/nodemon/blob/master/lib/config/defaults.js) and sending a pull request. + +## Monitoring multiple directories + +By default nodemon monitors the current working directory. If you want to take control of that option, use the `--watch` option to add specific paths: + +```bash +nodemon --watch app --watch libs app/server.js +``` + +Now nodemon will only restart if there are changes in the `./app` or `./libs` directory. By default nodemon will traverse sub-directories, so there's no need in explicitly including sub-directories. + +Nodemon also supports unix globbing, e.g `--watch './lib/*'`. The globbing pattern must be quoted. For advanced globbing, [see `picomatch` documentation](https://github.com/micromatch/picomatch#advanced-globbing), the library that nodemon uses through `chokidar` (which in turn uses it through `anymatch`). + +## Specifying extension watch list + +By default, nodemon looks for files with the `.js`, `.mjs`, `.coffee`, `.litcoffee`, and `.json` extensions. If you use the `--exec` option and monitor `app.py` nodemon will monitor files with the extension of `.py`. However, you can specify your own list with the `-e` (or `--ext`) switch like so: + +```bash +nodemon -e js,pug +``` + +Now nodemon will restart on any changes to files in the directory (or subdirectories) with the extensions `.js`, `.pug`. + +## Ignoring files + +By default, nodemon will only restart when a `.js` JavaScript file changes. In some cases you will want to ignore some specific files, directories or file patterns, to prevent nodemon from prematurely restarting your application. + +This can be done via the command line: + +```bash +nodemon --ignore lib/ --ignore tests/ +``` + +Or specific files can be ignored: + +```bash +nodemon --ignore lib/app.js +``` + +Patterns can also be ignored (but be sure to quote the arguments): + +```bash +nodemon --ignore 'lib/*.js' +``` + +**Important** the ignore rules are patterns matched to the full absolute path, and this determines how many files are monitored. If using a wild card glob pattern, it needs to be used as `**` or omitted entirely. For example, `nodemon --ignore '**/test/**'` will work, whereas `--ignore '*/test/*'` will not. + +Note that by default, nodemon will ignore the `.git`, `node_modules`, `bower_components`, `.nyc_output`, `coverage` and `.sass-cache` directories and *add* your ignored patterns to the list. If you want to indeed watch a directory like `node_modules`, you need to [override the underlying default ignore rules](https://github.com/remy/nodemon/blob/master/faq.md#overriding-the-underlying-default-ignore-rules). + +## Application isn't restarting + +In some networked environments (such as a container running nodemon reading across a mounted drive), you will need to use the `legacyWatch: true` which enables Chokidar's polling. + +Via the CLI, use either `--legacy-watch` or `-L` for short: + +```bash +nodemon -L +``` + +Though this should be a last resort as it will poll every file it can find. + +## Delaying restarting + +In some situations, you may want to wait until a number of files have changed. The timeout before checking for new file changes is 1 second. If you're uploading a number of files and it's taking some number of seconds, this could cause your app to restart multiple times unnecessarily. + +To add an extra throttle, or delay restarting, use the `--delay` command: + +```bash +nodemon --delay 10 server.js +``` + +For more precision, milliseconds can be specified. Either as a float: + +```bash +nodemon --delay 2.5 server.js +``` + +Or using the time specifier (ms): + +```bash +nodemon --delay 2500ms server.js +``` + +The delay figure is number of seconds (or milliseconds, if specified) to delay before restarting. So nodemon will only restart your app the given number of seconds after the *last* file change. + +If you are setting this value in `nodemon.json`, the value will always be interpreted in milliseconds. E.g., the following are equivalent: + +```bash +nodemon --delay 2.5 + +{ + "delay": 2500 +} +``` + +## Gracefully reloading down your script + +It is possible to have nodemon send any signal that you specify to your application. + +```bash +nodemon --signal SIGHUP server.js +``` + +Your application can handle the signal as follows. + +```js +process.on("SIGHUP", function () { + reloadSomeConfiguration(); + process.kill(process.pid, "SIGTERM"); +}) +``` + +Please note that nodemon will send this signal to every process in the process tree. + +If you are using `cluster`, then each workers (as well as the master) will receive the signal. If you wish to terminate all workers on receiving a `SIGHUP`, a common pattern is to catch the `SIGHUP` in the master, and forward `SIGTERM` to all workers, while ensuring that all workers ignore `SIGHUP`. + +```js +if (cluster.isMaster) { + process.on("SIGHUP", function () { + for (const worker of Object.values(cluster.workers)) { + worker.process.kill("SIGTERM"); + } + }); +} else { + process.on("SIGHUP", function() {}) +} +``` + +## Controlling shutdown of your script + +nodemon sends a kill signal to your application when it sees a file update. If you need to clean up on shutdown inside your script you can capture the kill signal and handle it yourself. + +The following example will listen once for the `SIGUSR2` signal (used by nodemon to restart), run the clean up process and then kill itself for nodemon to continue control: + +```js +// important to use `on` and not `once` as nodemon can re-send the kill signal +process.on('SIGUSR2', function () { + gracefulShutdown(function () { + process.kill(process.pid, 'SIGTERM'); + }); +}); +``` + +Note that the `process.kill` is *only* called once your shutdown jobs are complete. Hat tip to [Benjie Gillam](http://www.benjiegillam.com/2011/08/node-js-clean-restart-and-faster-development-with-nodemon/) for writing this technique up. + +## Triggering events when nodemon state changes + +If you want growl like notifications when nodemon restarts or to trigger an action when an event happens, then you can either `require` nodemon or add event actions to your `nodemon.json` file. + +For example, to trigger a notification on a Mac when nodemon restarts, `nodemon.json` looks like this: + +```json +{ + "events": { + "restart": "osascript -e 'display notification \"app restarted\" with title \"nodemon\"'" + } +} +``` + +A full list of available events is listed on the [event states wiki](https://github.com/remy/nodemon/wiki/Events#states). Note that you can bind to both states and messages. + +## Pipe output to somewhere else + +```js +nodemon({ + script: ..., + stdout: false // important: this tells nodemon not to output to console +}).on('readable', function() { // the `readable` event indicates that data is ready to pick up + this.stdout.pipe(fs.createWriteStream('output.txt')); + this.stderr.pipe(fs.createWriteStream('err.txt')); +}); +``` + +## Using nodemon in your gulp workflow + +Check out the [gulp-nodemon](https://github.com/JacksonGariety/gulp-nodemon) plugin to integrate nodemon with the rest of your project's gulp workflow. + +## Using nodemon in your Grunt workflow + +Check out the [grunt-nodemon](https://github.com/ChrisWren/grunt-nodemon) plugin to integrate nodemon with the rest of your project's grunt workflow. + +## Pronunciation + +> nodemon, is it pronounced: node-mon, no-demon or node-e-mon (like pokémon)? + +Well...I've been asked this many times before. I like that I've been asked this before. There's been bets as to which one it actually is. + +The answer is simple, but possibly frustrating. I'm not saying (how I pronounce it). It's up to you to call it as you like. All answers are correct :) + +## Design principles + +- Fewer flags is better +- Works across all platforms +- Fewer features +- Let individuals build on top of nodemon +- Offer all CLI functionality as an API +- Contributions must have and pass tests + +Nodemon is not perfect, and CLI arguments has sprawled beyond where I'm completely happy, but perhaps it can be reduced a little one day. + +## FAQ + +See the [FAQ](https://github.com/remy/nodemon/blob/master/faq.md) and please add your own questions if you think they would help others. + +## Backers + +Thank you to all [our backers](https://opencollective.com/nodemon#backer)! 🙏 + +[![nodemon backers](https://opencollective.com/nodemon/backers.svg?width=890)](https://opencollective.com/nodemon#backers) + +## Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Sponsor this project today ❤️](https://opencollective.com/nodemon#sponsor) + +
buy instagram followers on skweezer.net today +Netpositive +KasynoHEX +Casinoonlineaams.com +Best online casinos not on GamStop in the UK +TheCasinoDB +inkedin +Goread.io +Best Australian online casinos. Reviewed by Correct Casinos. + +Do My Online Class - NoNeedToStudy.com +Slotmachineweb.com +Website dedicated to finding the best and safest licensed online casinos in India +nongamstopcasinos.net +Scommesse777 +Buy Instagram Likes +Norway's biggest and most reliable online casino portal +OnlineCasinosSpelen +Beoordelen van nieuwe online casino's 2023 +CasinoZonderRegistratie.net - Nederlandse Top Casino's +OnlineCasinoProfy is your guide to the world of gambling. +Famoid is a digital marketing agency that specializes in social media services and tools. +ігрові автомати беткінг +We are the leading Nearshore Technology Solutions company. We architect and engineer scalable and high-performing software solutions. +Buy real Instagram followers from Twicsy starting at only $2.97. Twicsy has been voted the best site to buy followers from the likes of US Magazine. +SocialWick offers the best Instagram Followers in the market. If you are looking to boost your organic growth, buy Instagram followers from SocialWick +Online United States Casinos +Aviators +Online iGaming platform with reliable and trusted reviews. +Looking to boost your YouTube channel? Buy YouTube subscribers with Views4You and watch your audience grow! +Buy Telegram Members +We review the entire iGaming industry from A to Z +aussiecasinoreviewer.com +MEGAFAMOUS.com +PopularityBazaar helps you quickly grow your social media accounts. Buy 100% real likes, followers, views, comments, and more to kickstart your online presence. +Non-GamStop NonStop Casino +philippinescasinos.ph +Incognito +NonGamStopBets Casinos not on GamStop +UpGrow is the Best Instagram Growth Service in 2024. Get more real Instagram followers with our AI-powered growth engine to get 10x faster results. +Analysis of payment methods for use in the iGaming +CryptoCasinos.online +No deposit casino promo Codes 2024 - The best online Casinos websites. No deposit bonus codes, Free Spins and Promo Codes. Stake, Roobet, Jackpotcity and more. +Online casino. +Listing no deposit bonus offers from various internet sites . +Fortune Tiger +SidesMedia +Find the social proof you need to reach your audience! Boost conversions. Quickly buy Twitter Followers & more with no sign-up. Taking you to the next +Boost your social media presence effortlessly with top-quality Instagram and TikTok followers and likes. +Social Media Management and all kinds of followers +Trusted last mile route planning and route optimization +Betwinner is an online bookmaker offering sports betting, casino games, and more. +Help users to find best and cheapest site to buy Instagram Followers +At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rated world's #1 IG service since 2012. +BonusBezDepozytu +Tutti i siti di scommesse non AAMS +Zamsino.com +Graming offer top-notch Instagram followers at the best prices! +kasyno online blik +Feedthebot is an informative resource with free seo tools designed to help webmasters, SEO specialists, marketers, and entrepreneurs navigate and bett +Social media service +Find the social proof you need to reach your audience! Boost conversions. Quickly buy Twitter Followers & more with no sign-up. Taking you to the next +Playfortuneforfun.com +Reviewing and comparing online casinos available to Finnish players. In addition, we publish relevant news and blog posts about the world of iGaming. +Jabka Skin +Онлайн казино та БК (ставки на спорт) в Україні + +
+ +Please note that links to the sponsors above are not direct endorsements nor affiliated with any of contributors of the nodemon project. + +# License + +MIT [http://rem.mit-license.org](http://rem.mit-license.org) diff --git a/node_modules/nodemon/bin/nodemon.js b/node_modules/nodemon/bin/nodemon.js new file mode 100644 index 0000000..3d490f1 --- /dev/null +++ b/node_modules/nodemon/bin/nodemon.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node + +const cli = require('../lib/cli'); +const nodemon = require('../lib/'); +const options = cli.parse(process.argv); + +nodemon(options); + +const fs = require('fs'); + +// checks for available update and returns an instance +const pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json')); + +if (pkg.version.indexOf('0.0.0') !== 0 && options.noUpdateNotifier !== true) { + require('simple-update-notifier')({ pkg }); +} diff --git a/node_modules/nodemon/bin/windows-kill.exe b/node_modules/nodemon/bin/windows-kill.exe new file mode 100644 index 0000000000000000000000000000000000000000..98d7d7f7ed95fd8662f82dda3d16203f0d76e580 GIT binary patch literal 80384 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 literal 0 HcmV?d00001 diff --git a/node_modules/nodemon/doc/cli/authors.txt b/node_modules/nodemon/doc/cli/authors.txt new file mode 100644 index 0000000..6c77a12 --- /dev/null +++ b/node_modules/nodemon/doc/cli/authors.txt @@ -0,0 +1,8 @@ + + Remy Sharp - author and maintainer + https://github.com/remy + https://twitter.com/rem + + Contributors: https://github.com/remy/nodemon/graphs/contributors ❤︎ + + Please help make nodemon better: https://github.com/remy/nodemon/ diff --git a/node_modules/nodemon/doc/cli/config.txt b/node_modules/nodemon/doc/cli/config.txt new file mode 100644 index 0000000..5de9bba --- /dev/null +++ b/node_modules/nodemon/doc/cli/config.txt @@ -0,0 +1,44 @@ + + Typically the options to control nodemon are passed in via the CLI and are + listed under: nodemon --help options + + nodemon can also be configured via a local and global config file: + + * $HOME/nodemon.json + * $PWD/nodemon.json OR --config + * nodemonConfig in package.json + + All config options in the .json file map 1-to-1 with the CLI options, so a + config could read as: + + { + "ext": "*.pde", + "verbose": true, + "exec": "processing --sketch=game --run" + } + + There are a limited number of variables available in the config (since you + could use backticks on the CLI to use a variable, backticks won't work in + the .json config). + + * {{pwd}} - the current directory + * {{filename}} - the filename you pass to nodemon + + For example: + + { + "ext": "*.pde", + "verbose": true, + "exec": "processing --sketch={{pwd}} --run" + } + + The global config file is useful for setting up default executables + instead of repeating the same option in each of your local configs: + + { + "verbose": true, + "execMap": { + "rb": "ruby", + "pde": "processing --sketch={{pwd}} --run" + } + } diff --git a/node_modules/nodemon/doc/cli/help.txt b/node_modules/nodemon/doc/cli/help.txt new file mode 100644 index 0000000..7ba4ff2 --- /dev/null +++ b/node_modules/nodemon/doc/cli/help.txt @@ -0,0 +1,29 @@ + Usage: nodemon [options] [script.js] [args] + + Options: + + --config file ............ alternate nodemon.json config file to use + -e, --ext ................ extensions to look for, ie. js,pug,hbs. + -x, --exec app ........... execute script with "app", ie. -x "python -v". + -w, --watch path ......... watch directory "path" or files. use once for + each directory or file to watch. + -i, --ignore ............. ignore specific files or directories. + -V, --verbose ............ show detail on what is causing restarts. + -- ........... to tell nodemon stop slurping arguments. + + Note: if the script is omitted, nodemon will try to read "main" from + package.json and without a nodemon.json, nodemon will monitor .js, .mjs, .coffee, + .litcoffee, and .json by default. + + For advanced nodemon configuration use nodemon.json: nodemon --help config + See also the sample: https://github.com/remy/nodemon/wiki/Sample-nodemon.json + + Examples: + + $ nodemon server.js + $ nodemon -w ../foo server.js apparg1 apparg2 + $ nodemon --exec python app.py + $ nodemon --exec "make build" -e "styl hbs" + $ nodemon app.js -- --config # pass config to app.js + + \x1B[1mAll options are documented under: \x1B[4mnodemon --help options\x1B[0m diff --git a/node_modules/nodemon/doc/cli/logo.txt b/node_modules/nodemon/doc/cli/logo.txt new file mode 100644 index 0000000..150f97f --- /dev/null +++ b/node_modules/nodemon/doc/cli/logo.txt @@ -0,0 +1,20 @@ + ; ; + kO. x0 + KMX, .:x0kc. 'KMN + 0MMM0: 'oKMMMMMMMXd, ;OMMMX + oMMMMMWKOONMMMMMMMMMMMMMWOOKWMMMMMx + OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK. + .oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd. + KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN + KMMMMMMMMMMMMMMW0k0WMMMMMMMMMMMMMMW + KMMMMMMMMMMMNk:. :xNMMMMMMMMMMMW + KMMMMMMMMMMK OMMMMMMMMMMW + KMMMMMMMMMMO xMMMMMMMMMMN + KMMMMMMMMMMO xMMMMMMMMMMN + KMMMMMMMMMMO xMMMMMMMMMMN + KMMMMMMMMMMO xMMMMMMMMMMN + KMMMMMMMMMMO xMMMMMMMMMMN + KMMMMMMMMMNc ;NMMMMMMMMMN + KMMMMMW0o' .lOWMMMMMN + KMMKd; ,oKMMN + kX: ,K0 \ No newline at end of file diff --git a/node_modules/nodemon/doc/cli/options.txt b/node_modules/nodemon/doc/cli/options.txt new file mode 100644 index 0000000..598ae63 --- /dev/null +++ b/node_modules/nodemon/doc/cli/options.txt @@ -0,0 +1,36 @@ + +Configuration + --config .......... alternate nodemon.json config file to use + --exitcrash .............. exit on crash, allows nodemon to work with other watchers + -i, --ignore ............. ignore specific files or directories + --no-colors .............. disable color output + --signal ........ use specified kill signal instead of default (ex. SIGTERM) + -w, --watch path ......... watch directory "dir" or files. use once for each + directory or file to watch + --no-update-notifier ..... opt-out of update version check + +Execution + -C, --on-change-only ..... execute script on change only, not startup + --cwd .............. change into before running the script + -e, --ext ................ extensions to look for, ie. "js,pug,hbs" + -I, --no-stdin ........... nodemon passes stdin directly to child process + --spawn .................. force nodemon to use spawn (over fork) [node only] + -x, --exec app ........... execute script with "app", ie. -x "python -v" + -- ........... to tell nodemon stop slurping arguments + +Watching + -d, --delay n ............ debounce restart for "n" seconds + -L, --legacy-watch ....... use polling to watch for changes (typically needed + when watching over a network/Docker) + -P, --polling-interval ... combined with -L, milliseconds to poll for (default 100) + +Information + --dump ................... print full debug configuration + -h, --help ............... default help + --help ........... help on a specific feature. Try "--help topics" + -q, --quiet .............. minimise nodemon messages to start/stop only + -v, --version ............ current nodemon version + -V, --verbose ............ show detail on what is causing restarts + + +> Note that any unrecognised arguments are passed to the executing command. diff --git a/node_modules/nodemon/doc/cli/topics.txt b/node_modules/nodemon/doc/cli/topics.txt new file mode 100644 index 0000000..9fe3e2b --- /dev/null +++ b/node_modules/nodemon/doc/cli/topics.txt @@ -0,0 +1,8 @@ + + options .................. show all available nodemon options + config ................... default config options using nodemon.json + authors .................. contributors to this project + logo ..................... <3 + whoami ................... I, AM, NODEMON \o/ + + Please support https://github.com/remy/nodemon/ diff --git a/node_modules/nodemon/doc/cli/usage.txt b/node_modules/nodemon/doc/cli/usage.txt new file mode 100644 index 0000000..bca98b5 --- /dev/null +++ b/node_modules/nodemon/doc/cli/usage.txt @@ -0,0 +1,3 @@ + Usage: nodemon [nodemon options] [script.js] [args] + + See "nodemon --help" for more. diff --git a/node_modules/nodemon/doc/cli/whoami.txt b/node_modules/nodemon/doc/cli/whoami.txt new file mode 100644 index 0000000..efc3382 --- /dev/null +++ b/node_modules/nodemon/doc/cli/whoami.txt @@ -0,0 +1,9 @@ +__/\\\\\_____/\\\_______/\\\\\_______/\\\\\\\\\\\\_____/\\\\\\\\\\\\\\\__/\\\\____________/\\\\_______/\\\\\_______/\\\\\_____/\\\_ + _\/\\\\\\___\/\\\_____/\\\///\\\____\/\\\////////\\\__\/\\\///////////__\/\\\\\\________/\\\\\\_____/\\\///\\\____\/\\\\\\___\/\\\_ + _\/\\\/\\\__\/\\\___/\\\/__\///\\\__\/\\\______\//\\\_\/\\\_____________\/\\\//\\\____/\\\//\\\___/\\\/__\///\\\__\/\\\/\\\__\/\\\_ + _\/\\\//\\\_\/\\\__/\\\______\//\\\_\/\\\_______\/\\\_\/\\\\\\\\\\\_____\/\\\\///\\\/\\\/_\/\\\__/\\\______\//\\\_\/\\\//\\\_\/\\\_ + _\/\\\\//\\\\/\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\///////______\/\\\__\///\\\/___\/\\\_\/\\\_______\/\\\_\/\\\\//\\\\/\\\_ + _\/\\\_\//\\\/\\\_\//\\\______/\\\__\/\\\_______\/\\\_\/\\\_____________\/\\\____\///_____\/\\\_\//\\\______/\\\__\/\\\_\//\\\/\\\_ + _\/\\\__\//\\\\\\__\///\\\__/\\\____\/\\\_______/\\\__\/\\\_____________\/\\\_____________\/\\\__\///\\\__/\\\____\/\\\__\//\\\\\\_ + _\/\\\___\//\\\\\____\///\\\\\/_____\/\\\\\\\\\\\\/___\/\\\\\\\\\\\\\\\_\/\\\_____________\/\\\____\///\\\\\/_____\/\\\___\//\\\\\_ + _\///_____\/////_______\/////_______\////////////_____\///////////////__\///______________\///_______\/////_______\///_____\/////__ \ No newline at end of file diff --git a/node_modules/nodemon/index.d.ts b/node_modules/nodemon/index.d.ts new file mode 100644 index 0000000..c8e4ec2 --- /dev/null +++ b/node_modules/nodemon/index.d.ts @@ -0,0 +1,125 @@ +import type { WatchOptions } from 'chokidar' + +export type NodemonEventHandler = + | 'start' + | 'crash' + | 'exit' + | 'quit' + | 'restart' + | 'config:update' + | 'log' + | 'readable' + | 'stdout' + | 'stderr'; + +export type NodemonEventListener = { + on(event: 'start' | 'crash' | 'readable', listener: () => void): Nodemon; + on(event: 'log', listener: (e: NodemonEventLog) => void): Nodemon; + on(event: 'stdout' | 'stderr', listener: (e: string) => void): Nodemon; + on(event: 'restart', listener: (e?: NodemonEventRestart) => void): Nodemon; + on(event: 'quit', listener: (e?: NodemonEventQuit) => void): Nodemon; + on(event: 'exit', listener: (e?: number) => void): Nodemon; + on(event: 'config:update', listener: (e?: NodemonEventConfig) => void): Nodemon; +}; + +export type Nodemon = { + removeAllListeners(event: NodemonEventHandler): Nodemon; + emit(type: NodemonEventHandler, event?: any): Nodemon; + reset(callback: Function): Nodemon; + restart(): Nodemon; + config: NodemonSettings; +} & NodemonEventListener & { + [K in keyof NodemonEventListener as "addListener"]: NodemonEventListener[K]; +} & { + [K in keyof NodemonEventListener as "once"]: NodemonEventListener[K]; +}; + +export type NodemonEventLog = { + /** + - detail: what you get with nodemon --verbose. + - status: subprocess starting, restarting. + - fail: is the subprocess crashing. + - error: is a nodemon system error. + */ + type: 'detail' | 'log' | 'status' | 'error' | 'fail'; + /** the plain text message */ + message: string; + /** contains the terminal escape codes to add colour, plus the "[nodemon]" prefix */ + colour: string; +}; + +export interface NodemonEventRestart { + matched?: { + result: string[]; + total: number; + }; +} + +export type NodemonEventQuit = 143 | 130; + +export type NodemonEventConfig = { + run: boolean; + system: { + cwd: string; + }; + required: boolean; + dirs: string[]; + timeout: number; + options: NodemonConfig; + lastStarted: number + loaded: string[] + load: (settings: NodemonSettings, ready: (config: NodemonEventConfig) => void) => void + reset: () => void +}; + +export interface NodemonExecOptions { + script: string; + scriptPosition?: number; + args?: string[] + ext?: string; // "js,mjs" etc (should really support an array of strings, but I don't think it does right now) + exec?: string; // node, python, etc + execArgs?: string[]; // args passed to node, etc, + nodeArgs?: string[]; // args passed to node, etc, +} + +export interface NodemonConfig { + /** restartable defaults to "rs" as a string the user enters */ + restartable?: false | string; + colours?: boolean; + execMap?: { [key: string]: string }; + ignoreRoot?: string[]; + watch?: string[]; + ignore?: string[]; + stdin?: boolean; + runOnChangeOnly?: boolean; + verbose?: boolean; + signal?: string; + stdout?: boolean; + watchOptions?: WatchOptions; + help?: string + version?: boolean + cwd?: string + dump?: boolean + ignore?: string[] + watch?: string[] + monitor?: string[] + spawn?: boolean + noUpdateNotifier?: boolean + legacyWatch?: boolean + pollingInterval?: number + /** @deprecated as this is "on" by default */ + js?: boolean + quiet?: boolean + configFile?: string + exitCrash?: boolean + execOptions?: NodemonExecOptions +} + +export interface NodemonSettings extends NodemonConfig, NodemonExecOptions { + events?: { [key: string]: string }; + env?: { [key: string]: string }; +} + +const nodemon: Nodemon = (settings: NodemonSettings): Nodemon => {}; + +export = nodemon; diff --git a/node_modules/nodemon/jsconfig.json b/node_modules/nodemon/jsconfig.json new file mode 100644 index 0000000..d77141c --- /dev/null +++ b/node_modules/nodemon/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "typeRoots": ["./index.d.ts", "./node_modules/@types"], + "checkJs": true + }, + "exclude": ["node_modules"] +} diff --git a/node_modules/nodemon/lib/cli/index.js b/node_modules/nodemon/lib/cli/index.js new file mode 100644 index 0000000..bf9e809 --- /dev/null +++ b/node_modules/nodemon/lib/cli/index.js @@ -0,0 +1,49 @@ +var parse = require('./parse'); + +/** + * Converts a string to command line args, in particular + * groups together quoted values. + * This is a utility function to allow calling nodemon as a required + * library, but with the CLI args passed in (instead of an object). + * + * @param {String} string + * @return {Array} + */ +function stringToArgs(string) { + var args = []; + + var parts = string.split(' '); + var length = parts.length; + var i = 0; + var open = false; + var grouped = ''; + var lead = ''; + + for (; i < length; i++) { + lead = parts[i].substring(0, 1); + if (lead === '"' || lead === '\'') { + open = lead; + grouped = parts[i].substring(1); + } else if (open && parts[i].slice(-1) === open) { + open = false; + grouped += ' ' + parts[i].slice(0, -1); + args.push(grouped); + } else if (open) { + grouped += ' ' + parts[i]; + } else { + args.push(parts[i]); + } + } + + return args; +} + +module.exports = { + parse: function (argv) { + if (typeof argv === 'string') { + argv = stringToArgs(argv); + } + + return parse(argv); + }, +}; \ No newline at end of file diff --git a/node_modules/nodemon/lib/cli/parse.js b/node_modules/nodemon/lib/cli/parse.js new file mode 100644 index 0000000..560cc71 --- /dev/null +++ b/node_modules/nodemon/lib/cli/parse.js @@ -0,0 +1,230 @@ +/* + +nodemon is a utility for node, and replaces the use of the executable +node. So the user calls `nodemon foo.js` instead. + +nodemon can be run in a number of ways: + +`nodemon` - tries to use package.json#main property to run +`nodemon` - if no package, looks for index.js +`nodemon app.js` - runs app.js +`nodemon --arg app.js --apparg` - eats arg1, and runs app.js with apparg +`nodemon --apparg` - as above, but passes apparg to package.json#main (or + index.js) +`nodemon --debug app.js + +*/ + +var fs = require('fs'); +var path = require('path'); +var existsSync = fs.existsSync || path.existsSync; + +module.exports = parse; + +/** + * Parses the command line arguments `process.argv` and returns the + * nodemon options, the user script and the executable script. + * + * @param {Array | string} argv full process arguments, including `node` leading arg + * @return {Object} { options, script, args } + */ +function parse(argv) { + if (typeof argv === 'string') { + argv = argv.split(' '); + } + + var eat = function (i, args) { + if (i <= args.length) { + return args.splice(i + 1, 1).pop(); + } + }; + + var args = argv.slice(2); + var script = null; + var nodemonOptions = { scriptPosition: null }; + + var nodemonOpt = nodemonOption.bind(null, nodemonOptions); + var lookForArgs = true; + + // move forward through the arguments + for (var i = 0; i < args.length; i++) { + // if the argument looks like a file, then stop eating + if (!script) { + if (args[i] === '.' || existsSync(args[i])) { + script = args.splice(i, 1).pop(); + + // we capture the position of the script because we'll reinsert it in + // the right place in run.js:command (though I'm not sure we should even + // take it out of the array in the first place, but this solves passing + // arguments to the exec process for now). + nodemonOptions.scriptPosition = i; + i--; + continue; + } + } + + if (lookForArgs) { + // respect the standard way of saying: hereafter belongs to my script + if (args[i] === '--') { + args.splice(i, 1); + nodemonOptions.scriptPosition = i; + // cycle back one argument, as we just ate this one up + i--; + + // ignore all further nodemon arguments + lookForArgs = false; + + // move to the next iteration + continue; + } + + if (nodemonOpt(args[i], eat.bind(null, i, args)) !== false) { + args.splice(i, 1); + // cycle back one argument, as we just ate this one up + i--; + } + } + } + + nodemonOptions.script = script; + nodemonOptions.args = args; + + return nodemonOptions; +} + + +/** + * Given an argument (ie. from process.argv), sets nodemon + * options and can eat up the argument value + * + * @param {import('../..').NodemonSettings} options object that will be updated + * @param {String} arg current argument from argv + * @param {Function} eatNext the callback to eat up the next argument in argv + * @return {Boolean} false if argument was not a nodemon arg + */ +function nodemonOption(options, arg, eatNext) { + // line separation on purpose to help legibility + if (arg === '--help' || arg === '-h' || arg === '-?') { + var help = eatNext(); + options.help = help ? help : true; + } else + + if (arg === '--version' || arg === '-v') { + options.version = true; + } else + + if (arg === '--no-update-notifier') { + options.noUpdateNotifier = true; + } else + + if (arg === '--spawn') { + options.spawn = true; + } else + + if (arg === '--dump') { + options.dump = true; + } else + + if (arg === '--verbose' || arg === '-V') { + options.verbose = true; + } else + + if (arg === '--legacy-watch' || arg === '-L') { + options.legacyWatch = true; + } else + + if (arg === '--polling-interval' || arg === '-P') { + options.pollingInterval = parseInt(eatNext(), 10); + } else + + // Depricated as this is "on" by default + if (arg === '--js') { + options.js = true; + } else + + if (arg === '--quiet' || arg === '-q') { + options.quiet = true; + } else + + if (arg === '--config') { + options.configFile = eatNext(); + } else + + if (arg === '--watch' || arg === '-w') { + if (!options.watch) { options.watch = []; } + options.watch.push(eatNext()); + } else + + if (arg === '--ignore' || arg === '-i') { + if (!options.ignore) { options.ignore = []; } + options.ignore.push(eatNext()); + } else + + if (arg === '--exitcrash') { + options.exitCrash = true; + } else + + if (arg === '--delay' || arg === '-d') { + options.delay = parseDelay(eatNext()); + } else + + if (arg === '--exec' || arg === '-x') { + options.exec = eatNext(); + } else + + if (arg === '--no-stdin' || arg === '-I') { + options.stdin = false; + } else + + if (arg === '--on-change-only' || arg === '-C') { + options.runOnChangeOnly = true; + } else + + if (arg === '--ext' || arg === '-e') { + options.ext = eatNext(); + } else + + if (arg === '--no-colours' || arg === '--no-colors') { + options.colours = false; + } else + + if (arg === '--signal' || arg === '-s') { + options.signal = eatNext(); + } else + + if (arg === '--cwd') { + options.cwd = eatNext(); + + // go ahead and change directory. This is primarily for nodemon tools like + // grunt-nodemon - we're doing this early because it will affect where the + // user script is searched for. + process.chdir(path.resolve(options.cwd)); + } else { + + // this means we didn't match + return false; + } +} + +/** + * Given an argument (ie. from nodemonOption()), will parse and return the + * equivalent millisecond value or 0 if the argument cannot be parsed + * + * @param {String} value argument value given to the --delay option + * @return {Number} millisecond equivalent of the argument + */ +function parseDelay(value) { + var millisPerSecond = 1000; + var millis = 0; + + if (value.match(/^\d*ms$/)) { + // Explicitly parse for milliseconds when using ms time specifier + millis = parseInt(value, 10); + } else { + // Otherwise, parse for seconds, with or without time specifier then convert + millis = parseFloat(value) * millisPerSecond; + } + + return isNaN(millis) ? 0 : millis; +} + diff --git a/node_modules/nodemon/lib/config/command.js b/node_modules/nodemon/lib/config/command.js new file mode 100644 index 0000000..9839b5c --- /dev/null +++ b/node_modules/nodemon/lib/config/command.js @@ -0,0 +1,43 @@ +module.exports = command; + +/** + * command constructs the executable command to run in a shell including the + * user script, the command arguments. + * + * @param {Object} settings Object as: + * { execOptions: { + * exec: String, + * [script: String], + * [scriptPosition: Number], + * [execArgs: Array] + * } + * } + * @return {Object} an object with the node executable and the + * arguments to the command + */ +function command(settings) { + var options = settings.execOptions; + var executable = options.exec; + var args = []; + + // after "executable" go the exec args (like --debug, etc) + if (options.execArgs) { + [].push.apply(args, options.execArgs); + } + + // then goes the user's script arguments + if (options.args) { + [].push.apply(args, options.args); + } + + // after the "executable" goes the user's script + if (options.script) { + args.splice((options.scriptPosition || 0) + + options.execArgs.length, 0, options.script); + } + + return { + executable: executable, + args: args, + }; +} diff --git a/node_modules/nodemon/lib/config/defaults.js b/node_modules/nodemon/lib/config/defaults.js new file mode 100644 index 0000000..dc95d34 --- /dev/null +++ b/node_modules/nodemon/lib/config/defaults.js @@ -0,0 +1,34 @@ +var ignoreRoot = require('ignore-by-default').directories(); + +// default options for config.options +const defaults = { + restartable: 'rs', + colours: true, + execMap: { + py: 'python', + rb: 'ruby', + ts: 'ts-node', + // more can be added here such as ls: lsc - but please ensure it's cross + // compatible with linux, mac and windows, or make the default.js + // dynamically append the `.cmd` for node based utilities + }, + ignoreRoot: ignoreRoot.map((_) => `**/${_}/**`), + watch: ['*.*'], + stdin: true, + runOnChangeOnly: false, + verbose: false, + signal: 'SIGUSR2', + // 'stdout' refers to the default behaviour of a required nodemon's child, + // but also includes stderr. If this is false, data is still dispatched via + // nodemon.on('stdout/stderr') + stdout: true, + watchOptions: {}, +}; + +const nodeOptions = process.env.NODE_OPTIONS || ''; // ? + +if (/--(loader|import)\b/.test(nodeOptions)) { + delete defaults.execMap.ts; +} + +module.exports = defaults; diff --git a/node_modules/nodemon/lib/config/exec.js b/node_modules/nodemon/lib/config/exec.js new file mode 100644 index 0000000..6d17eab --- /dev/null +++ b/node_modules/nodemon/lib/config/exec.js @@ -0,0 +1,234 @@ +const path = require('path'); +const fs = require('fs'); +const existsSync = fs.existsSync; +const utils = require('../utils'); + +module.exports = exec; +module.exports.expandScript = expandScript; + +/** + * Reads the cwd/package.json file and looks to see if it can load a script + * and possibly an exec first from package.main, then package.start. + * + * @return {Object} exec & script if found + */ +function execFromPackage() { + // doing a try/catch because we can't use the path.exist callback pattern + // or we could, but the code would get messy, so this will do exactly + // what we're after - if the file doesn't exist, it'll throw. + try { + // note: this isn't nodemon's package, it's the user's cwd package + var pkg = require(path.join(process.cwd(), 'package.json')); + if (pkg.main !== undefined) { + // no app found to run - so give them a tip and get the feck out + return { exec: null, script: pkg.main }; + } + + if (pkg.scripts && pkg.scripts.start) { + return { exec: pkg.scripts.start }; + } + } catch (e) {} + + return null; +} + +function replace(map, str) { + var re = new RegExp('{{(' + Object.keys(map).join('|') + ')}}', 'g'); + return str.replace(re, function (all, m) { + return map[m] || all || ''; + }); +} + +function expandScript(script, ext) { + if (!ext) { + ext = '.js'; + } + if (script.indexOf(ext) !== -1) { + return script; + } + + if (existsSync(path.resolve(script))) { + return script; + } + + if (existsSync(path.resolve(script + ext))) { + return script + ext; + } + + return script; +} + +/** + * Discovers all the options required to run the script + * and if a custom exec has been passed in, then it will + * also try to work out what extensions to monitor and + * whether there's a special way of running that script. + * + * @param {Object} nodemonOptions + * @param {Object} execMap + * @return {Object} new and updated version of nodemonOptions + */ +function exec(nodemonOptions, execMap) { + if (!execMap) { + execMap = {}; + } + + var options = utils.clone(nodemonOptions || {}); + var script; + + // if there's no script passed, try to get it from the first argument + if (!options.script && (options.args || []).length) { + script = expandScript( + options.args[0], + options.ext && '.' + (options.ext || 'js').split(',')[0] + ); + + // if the script was found, shift it off our args + if (script !== options.args[0]) { + options.script = script; + options.args.shift(); + } + } + + // if there's no exec found yet, then try to read it from the local + // package.json this logic used to sit in the cli/parse, but actually the cli + // should be parsed first, then the user options (via nodemon.json) then + // finally default down to pot shots at the directory via package.json + if (!options.exec && !options.script) { + var found = execFromPackage(); + if (found !== null) { + if (found.exec) { + options.exec = found.exec; + } + if (!options.script) { + options.script = found.script; + } + if (Array.isArray(options.args) && options.scriptPosition === null) { + options.scriptPosition = options.args.length; + } + } + } + + // var options = utils.clone(nodemonOptions || {}); + script = path.basename(options.script || ''); + + var scriptExt = path.extname(script).slice(1); + + var extension = options.ext; + if (extension === undefined) { + var isJS = scriptExt === 'js' || scriptExt === 'mjs' || scriptExt === 'cjs'; + extension = isJS || !scriptExt ? 'js,mjs,cjs' : scriptExt; + extension += ',json'; // Always watch JSON files + } + + var execDefined = !!options.exec; + + // allows the user to simplify cli usage: + // https://github.com/remy/nodemon/issues/195 + // but always give preference to the user defined argument + if (!options.exec && execMap[scriptExt] !== undefined) { + options.exec = execMap[scriptExt]; + execDefined = true; + } + + options.execArgs = nodemonOptions.execArgs || []; + + if (Array.isArray(options.exec)) { + options.execArgs = options.exec; + options.exec = options.execArgs.shift(); + } + + if (options.exec === undefined) { + options.exec = 'node'; + } else { + // allow variable substitution for {{filename}} and {{pwd}} + var substitution = replace.bind(null, { + filename: options.script, + pwd: process.cwd(), + }); + + var newExec = substitution(options.exec); + if ( + newExec !== options.exec && + options.exec.indexOf('{{filename}}') !== -1 + ) { + options.script = null; + } + options.exec = newExec; + + var newExecArgs = options.execArgs.map(substitution); + if (newExecArgs.join('') !== options.execArgs.join('')) { + options.execArgs = newExecArgs; + delete options.script; + } + } + + if (options.exec === 'node' && options.nodeArgs && options.nodeArgs.length) { + options.execArgs = options.execArgs.concat(options.nodeArgs); + } + + // note: indexOf('coffee') handles both .coffee and .litcoffee + if ( + !execDefined && + options.exec === 'node' && + scriptExt.indexOf('coffee') !== -1 + ) { + options.exec = 'coffee'; + + // we need to get execArgs set before the script + // for example, in `nodemon --debug my-script.coffee --my-flag`, debug is an + // execArg, while my-flag is a script arg + var leadingArgs = (options.args || []).splice(0, options.scriptPosition); + options.execArgs = options.execArgs.concat(leadingArgs); + options.scriptPosition = 0; + + if (options.execArgs.length > 0) { + // because this is the coffee executable, we need to combine the exec args + // into a single argument after the nodejs flag + options.execArgs = ['--nodejs', options.execArgs.join(' ')]; + } + } + + if (options.exec === 'coffee') { + // don't override user specified extension tracking + if (options.ext === undefined) { + if (extension) { + extension += ','; + } + extension += 'coffee,litcoffee'; + } + + // because windows can't find 'coffee', it needs the real file 'coffee.cmd' + if (utils.isWindows) { + options.exec += '.cmd'; + } + } + + // allow users to make a mistake on the extension to monitor + // converts .js, pug => js,pug + // BIG NOTE: user can't do this: nodemon -e *.js + // because the terminal will automatically expand the glob against + // the file system :( + extension = (extension.match(/[^,*\s]+/g) || []) + .map((ext) => ext.replace(/^\./, '')) + .join(','); + + options.ext = extension; + + if (options.script) { + options.script = expandScript( + options.script, + extension && '.' + extension.split(',')[0] + ); + } + + options.env = {}; + // make sure it's an object (and since we don't have ) + if ({}.toString.apply(nodemonOptions.env) === '[object Object]') { + options.env = utils.clone(nodemonOptions.env); + } else if (nodemonOptions.env !== undefined) { + throw new Error('nodemon env values must be an object: { PORT: 8000 }'); + } + + return options; +} diff --git a/node_modules/nodemon/lib/config/index.js b/node_modules/nodemon/lib/config/index.js new file mode 100644 index 0000000..c78c435 --- /dev/null +++ b/node_modules/nodemon/lib/config/index.js @@ -0,0 +1,93 @@ +/** + * Manages the internal config of nodemon, checking for the state of support + * with fs.watch, how nodemon can watch files (using find or fs methods). + * + * This is *not* the user's config. + */ +var debug = require('debug')('nodemon'); +var load = require('./load'); +var rules = require('../rules'); +var utils = require('../utils'); +var pinVersion = require('../version').pin; +var command = require('./command'); +var rulesToMonitor = require('../monitor/match').rulesToMonitor; +var bus = utils.bus; + +function reset() { + rules.reset(); + + config.dirs = []; + config.options = { ignore: [], watch: [], monitor: [] }; + config.lastStarted = 0; + config.loaded = []; +} + +var config = { + run: false, + system: { + cwd: process.cwd(), + }, + required: false, + dirs: [], + timeout: 1000, + options: {}, +}; + +/** + * Take user defined settings, then detect the local machine capability, then + * look for local and global nodemon.json files and merge together the final + * settings with the config for nodemon. + * + * @param {Object} settings user defined settings for nodemon (typically on + * the cli) + * @param {Function} ready callback fired once the config is loaded + */ +config.load = function (settings, ready) { + reset(); + var config = this; + load(settings, config.options, config, function (options) { + config.options = options; + + if (options.watch.length === 0) { + // this is to catch when the watch is left blank + options.watch.push('*.*'); + } + + if (options['watch_interval']) { // jshint ignore:line + options.watchInterval = options['watch_interval']; // jshint ignore:line + } + + config.watchInterval = options.watchInterval || null; + if (options.signal) { + config.signal = options.signal; + } + + var cmd = command(config.options); + config.command = { + raw: cmd, + string: utils.stringify(cmd.executable, cmd.args), + }; + + // now run automatic checks on system adding to the config object + options.monitor = rulesToMonitor(options.watch, options.ignore, config); + + var cwd = process.cwd(); + debug('config: dirs', config.dirs); + if (config.dirs.length === 0) { + config.dirs.unshift(cwd); + } + + bus.emit('config:update', config); + pinVersion().then(function () { + ready(config); + }).catch(e => { + // this doesn't help testing, but does give exposure on syntax errors + console.error(e.stack); + setTimeout(() => { throw e; }, 0); + }); + }); +}; + +config.reset = reset; + +module.exports = config; diff --git a/node_modules/nodemon/lib/config/load.js b/node_modules/nodemon/lib/config/load.js new file mode 100644 index 0000000..7c57d32 --- /dev/null +++ b/node_modules/nodemon/lib/config/load.js @@ -0,0 +1,225 @@ +var debug = require('debug')('nodemon'); +var fs = require('fs'); +var path = require('path'); +var exists = fs.exists || path.exists; +var utils = require('../utils'); +var rules = require('../rules'); +var parse = require('../rules/parse'); +var exec = require('./exec'); +var defaults = require('./defaults'); + +module.exports = load; +module.exports.mutateExecOptions = mutateExecOptions; + +var existsSync = fs.existsSync || path.existsSync; + +function findAppScript() { + // nodemon has been run alone, so try to read the package file + // or try to read the index.js file + + var pkg = + existsSync(path.join(process.cwd(), 'package.json')) && + require(path.join(process.cwd(), 'package.json')); + if ((!pkg || pkg.main == undefined) && existsSync('./index.js')) { + return 'index.js'; + } +} + +/** + * Load the nodemon config, first reading the global root/nodemon.json, then + * the local nodemon.json to the exec and then overwriting using any user + * specified settings (i.e. from the cli) + * + * @param {Object} settings user defined settings + * @param {Object} options global options + * @param {Object} config the config object to be updated + * @param {Function} callback that receives complete config + */ +function load(settings, options, config, callback) { + config.loaded = []; + // first load the root nodemon.json + loadFile(options, config, utils.home, function (options) { + // then load the user's local configuration file + if (settings.configFile) { + options.configFile = path.resolve(settings.configFile); + } + loadFile(options, config, process.cwd(), function (options) { + // Then merge over with the user settings (parsed from the cli). + // Note that merge protects and favours existing values over new values, + // and thus command line arguments get priority + options = utils.merge(settings, options); + + // legacy support + if (!Array.isArray(options.ignore)) { + options.ignore = [options.ignore]; + } + + if (!options.ignoreRoot) { + options.ignoreRoot = defaults.ignoreRoot; + } + + // blend the user ignore and the default ignore together + if (options.ignoreRoot && options.ignore) { + if (!Array.isArray(options.ignoreRoot)) { + options.ignoreRoot = [options.ignoreRoot]; + } + options.ignore = options.ignoreRoot.concat(options.ignore); + } else { + options.ignore = defaults.ignore.concat(options.ignore); + } + + // add in any missing defaults + options = utils.merge(options, defaults); + + if (!options.script && !options.exec) { + var found = findAppScript(); + if (found) { + if (!options.args) { + options.args = []; + } + // if the script is found as a result of not being on the command + // line, then we move any of the pre double-dash args in execArgs + const n = + options.scriptPosition === null + ? options.args.length + : options.scriptPosition; + + options.execArgs = (options.execArgs || []).concat( + options.args.splice(0, n) + ); + options.scriptPosition = null; + + options.script = found; + } + } + + mutateExecOptions(options); + + if (options.quiet) { + utils.quiet(); + } + + if (options.verbose) { + utils.debug = true; + } + + // simplify the ready callback to be called after the rules are normalised + // from strings to regexp through the rules lib. Note that this gets + // created *after* options is overwritten twice in the lines above. + var ready = function (options) { + normaliseRules(options, callback); + }; + + ready(options); + }); + }); +} + +function normaliseRules(options, ready) { + // convert ignore and watch options to rules/regexp + rules.watch.add(options.watch); + rules.ignore.add(options.ignore); + + // normalise the watch and ignore arrays + options.watch = options.watch === false ? false : rules.rules.watch; + options.ignore = rules.rules.ignore; + + ready(options); +} + +/** + * Looks for a config in the current working directory, and a config in the + * user's home directory, merging the two together, giving priority to local + * config. This can then be overwritten later by command line arguments + * + * @param {Function} ready callback to pass loaded settings to + */ +function loadFile(options, config, dir, ready) { + if (!ready) { + ready = function () {}; + } + + var callback = function (settings) { + // prefer the local nodemon.json and fill in missing items using + // the global options + ready(utils.merge(settings, options)); + }; + + if (!dir) { + return callback({}); + } + + var filename = options.configFile || path.join(dir, 'nodemon.json'); + + if (config.loaded.indexOf(filename) !== -1) { + // don't bother re-parsing the same config file + return callback({}); + } + + fs.readFile(filename, 'utf8', function (err, data) { + if (err) { + if (err.code === 'ENOENT') { + if (!options.configFile && dir !== utils.home) { + // if no specified local config file and local nodemon.json + // doesn't exist, try the package.json + return loadPackageJSON(config, callback); + } + } + return callback({}); + } + + var settings = {}; + + try { + settings = JSON.parse(data.toString('utf8').replace(/^\uFEFF/, '')); + if (!filename.endsWith('package.json') || settings.nodemonConfig) { + config.loaded.push(filename); + } + } catch (e) { + utils.log.fail('Failed to parse config ' + filename); + console.error(e); + process.exit(1); + } + + // options values will overwrite settings + callback(settings); + }); +} + +function loadPackageJSON(config, ready) { + if (!ready) { + ready = () => {}; + } + + const dir = process.cwd(); + const filename = path.join(dir, 'package.json'); + const packageLoadOptions = { configFile: filename }; + return loadFile(packageLoadOptions, config, dir, (settings) => { + ready(settings.nodemonConfig || {}); + }); +} + +function mutateExecOptions(options) { + // work out the execOptions based on the final config we have + options.execOptions = exec( + { + script: options.script, + exec: options.exec, + args: options.args, + scriptPosition: options.scriptPosition, + nodeArgs: options.nodeArgs, + execArgs: options.execArgs, + ext: options.ext, + env: options.env, + }, + options.execMap + ); + + // clean up values that we don't need at the top level + delete options.scriptPosition; + delete options.script; + delete options.args; + delete options.ext; + + return options; +} diff --git a/node_modules/nodemon/lib/help/index.js b/node_modules/nodemon/lib/help/index.js new file mode 100644 index 0000000..1054b60 --- /dev/null +++ b/node_modules/nodemon/lib/help/index.js @@ -0,0 +1,27 @@ +var fs = require('fs'); +var path = require('path'); +const supportsColor = require('supports-color'); + +module.exports = help; + +const highlight = supportsColor.stdout ? '\x1B\[$1m' : ''; + +function help(item) { + if (!item) { + item = 'help'; + } else if (item === true) { // if used with -h or --help and no args + item = 'help'; + } + + // cleanse the filename to only contain letters + // aka: /\W/g but figured this was eaiser to read + item = item.replace(/[^a-z]/gi, ''); + + try { + var dir = path.join(__dirname, '..', '..', 'doc', 'cli', item + '.txt'); + var body = fs.readFileSync(dir, 'utf8'); + return body.replace(/\\x1B\[(.)m/g, highlight); + } catch (e) { + return '"' + item + '" help can\'t be found'; + } +} diff --git a/node_modules/nodemon/lib/index.js b/node_modules/nodemon/lib/index.js new file mode 100644 index 0000000..0eca5c4 --- /dev/null +++ b/node_modules/nodemon/lib/index.js @@ -0,0 +1 @@ +module.exports = require('./nodemon'); \ No newline at end of file diff --git a/node_modules/nodemon/lib/monitor/index.js b/node_modules/nodemon/lib/monitor/index.js new file mode 100644 index 0000000..89db029 --- /dev/null +++ b/node_modules/nodemon/lib/monitor/index.js @@ -0,0 +1,4 @@ +module.exports = { + run: require('./run'), + watch: require('./watch').watch, +}; diff --git a/node_modules/nodemon/lib/monitor/match.js b/node_modules/nodemon/lib/monitor/match.js new file mode 100644 index 0000000..11691d7 --- /dev/null +++ b/node_modules/nodemon/lib/monitor/match.js @@ -0,0 +1,287 @@ +const minimatch = require('minimatch'); +const path = require('path'); +const fs = require('fs'); +const debug = require('debug')('nodemon:match'); +const utils = require('../utils'); + +module.exports = match; +module.exports.rulesToMonitor = rulesToMonitor; + +function rulesToMonitor(watch, ignore, config) { + var monitor = []; + + if (!Array.isArray(ignore)) { + if (ignore) { + ignore = [ignore]; + } else { + ignore = []; + } + } + + if (!Array.isArray(watch)) { + if (watch) { + watch = [watch]; + } else { + watch = []; + } + } + + if (watch && watch.length) { + monitor = utils.clone(watch); + } + + if (ignore) { + [].push.apply( + monitor, + (ignore || []).map(function (rule) { + return '!' + rule; + }) + ); + } + + var cwd = process.cwd(); + + // next check if the monitored paths are actual directories + // or just patterns - and expand the rule to include *.* + monitor = monitor.map(function (rule) { + var not = rule.slice(0, 1) === '!'; + + if (not) { + rule = rule.slice(1); + } + + if (rule === '.' || rule === '.*') { + rule = '*.*'; + } + + var dir = path.resolve(cwd, rule); + + try { + var stat = fs.statSync(dir); + if (stat.isDirectory()) { + rule = dir; + if (rule.slice(-1) !== '/') { + rule += '/'; + } + rule += '**/*'; + + // `!not` ... sorry. + if (!not) { + config.dirs.push(dir); + } + } else { + // ensures we end up in the check that tries to get a base directory + // and then adds it to the watch list + throw new Error(); + } + } catch (e) { + var base = tryBaseDir(dir); + if (!not && base) { + if (config.dirs.indexOf(base) === -1) { + config.dirs.push(base); + } + } + } + + if (rule.slice(-1) === '/') { + // just slap on a * anyway + rule += '*'; + } + + // if the url ends with * but not **/* and not *.* + // then convert to **/* - somehow it was missed :-\ + if ( + rule.slice(-4) !== '**/*' && + rule.slice(-1) === '*' && + rule.indexOf('*.') === -1 + ) { + if (rule.slice(-2) !== '**') { + rule += '*/*'; + } + } + + return (not ? '!' : '') + rule; + }); + + return monitor; +} + +function tryBaseDir(dir) { + var stat; + if (/[?*\{\[]+/.test(dir)) { + // if this is pattern, then try to find the base + try { + var base = path.dirname(dir.replace(/([?*\{\[]+.*$)/, 'foo')); + stat = fs.statSync(base); + if (stat.isDirectory()) { + return base; + } + } catch (error) { + // console.log(error); + } + } else { + try { + stat = fs.statSync(dir); + // if this path is actually a single file that exists, then just monitor + // that, *specifically*. + if (stat.isFile() || stat.isDirectory()) { + return dir; + } + } catch (e) {} + } + + return false; +} + +function match(files, monitor, ext) { + // sort the rules by highest specificity (based on number of slashes) + // ignore rules (!) get sorted highest as they take precedent + const cwd = process.cwd(); + var rules = monitor + .sort(function (a, b) { + var r = b.split(path.sep).length - a.split(path.sep).length; + var aIsIgnore = a.slice(0, 1) === '!'; + var bIsIgnore = b.slice(0, 1) === '!'; + + if (aIsIgnore || bIsIgnore) { + if (aIsIgnore) { + return -1; + } + + return 1; + } + + if (r === 0) { + return b.length - a.length; + } + return r; + }) + .map(function (s) { + var prefix = s.slice(0, 1); + + if (prefix === '!') { + if (s.indexOf('!' + cwd) === 0) { + return s; + } + + // if it starts with a period, then let's get the relative path + if (s.indexOf('!.') === 0) { + return '!' + path.resolve(cwd, s.substring(1)); + } + + return '!**' + (prefix !== path.sep ? path.sep : '') + s.slice(1); + } + + // if it starts with a period, then let's get the relative path + if (s.indexOf('.') === 0) { + return path.resolve(cwd, s); + } + + if (s.indexOf(cwd) === 0) { + return s; + } + + return '**' + (prefix !== path.sep ? path.sep : '') + s; + }); + + debug('rules', rules); + + var good = []; + var whitelist = []; // files that we won't check against the extension + var ignored = 0; + var watched = 0; + var usedRules = []; + var minimatchOpts = { + dot: true, + }; + + // enable case-insensitivity on Windows + if (utils.isWindows) { + minimatchOpts.nocase = true; + } + + files.forEach(function (file) { + file = path.resolve(cwd, file); + + var matched = false; + for (var i = 0; i < rules.length; i++) { + if (rules[i].slice(0, 1) === '!') { + if (!minimatch(file, rules[i], minimatchOpts)) { + debug('ignored', file, 'rule:', rules[i]); + ignored++; + matched = true; + break; + } + } else { + debug('matched', file, 'rule:', rules[i]); + if (minimatch(file, rules[i], minimatchOpts)) { + watched++; + + // don't repeat the output if a rule is matched + if (usedRules.indexOf(rules[i]) === -1) { + usedRules.push(rules[i]); + utils.log.detail('matched rule: ' + rules[i]); + } + + // if the rule doesn't match the WATCH EVERYTHING + // but *does* match a rule that ends with *.*, then + // white list it - in that we don't run it through + // the extension check too. + if ( + rules[i] !== '**' + path.sep + '*.*' && + rules[i].slice(-3) === '*.*' + ) { + whitelist.push(file); + } else if (path.basename(file) === path.basename(rules[i])) { + // if the file matches the actual rule, then it's put on whitelist + whitelist.push(file); + } else { + good.push(file); + } + matched = true; + } else { + // utils.log.detail('no match: ' + rules[i], file); + } + } + } + if (!matched) { + ignored++; + } + }); + + // finally check the good files against the extensions that we're monitoring + if (ext) { + if (ext.indexOf(',') === -1) { + ext = '**/*.' + ext; + } else { + ext = '**/*.{' + ext + '}'; + } + + good = good.filter(function (file) { + // only compare the filename to the extension test + return minimatch(path.basename(file), ext, minimatchOpts); + }); + debug('good (filtered by ext)', good); + } else { + // else assume *.* + debug('good', good); + } + + if (whitelist.length) debug('whitelist', whitelist); + + var result = good.concat(whitelist); + + if (utils.isWindows) { + // fix for windows testing - I *think* this is okay to do + result = result.map(function (file) { + return file.slice(0, 1).toLowerCase() + file.slice(1); + }); + } + + return { + result: result, + ignored: ignored, + watched: watched, + total: files.length, + }; +} diff --git a/node_modules/nodemon/lib/monitor/run.js b/node_modules/nodemon/lib/monitor/run.js new file mode 100644 index 0000000..5fa7f45 --- /dev/null +++ b/node_modules/nodemon/lib/monitor/run.js @@ -0,0 +1,562 @@ +var debug = require('debug')('nodemon:run'); +const statSync = require('fs').statSync; +var utils = require('../utils'); +var bus = utils.bus; +var childProcess = require('child_process'); +var spawn = childProcess.spawn; +var exec = childProcess.exec; +var execSync = childProcess.execSync; +var fork = childProcess.fork; +var watch = require('./watch').watch; +var config = require('../config'); +var child = null; // the actual child process we spawn +var killedAfterChange = false; +var noop = () => {}; +var restart = null; +var psTree = require('pstree.remy'); +var path = require('path'); +var signals = require('./signals'); +const undefsafe = require('undefsafe'); +const osRelease = parseInt(require('os').release().split('.')[0], 10); + +function run(options) { + var cmd = config.command.raw; + // moved up + // we need restart function below in the global scope for run.kill + /*jshint validthis:true*/ + restart = run.bind(this, options); + run.restart = restart; + + // binding options with instance of run + // so that we can use it in run.kill + run.options = options; + + var runCmd = !options.runOnChangeOnly || config.lastStarted !== 0; + if (runCmd) { + utils.log.status('starting `' + config.command.string + '`'); + } else { + // should just watch file if command is not to be run + // had another alternate approach + // to stop process being forked/spawned in the below code + // but this approach does early exit and makes code cleaner + debug('start watch on: %s', config.options.watch); + if (config.options.watch !== false) { + watch(); + return; + } + } + + config.lastStarted = Date.now(); + + var stdio = ['pipe', 'pipe', 'pipe']; + + if (config.options.stdout) { + stdio = ['pipe', process.stdout, process.stderr]; + } + + if (config.options.stdin === false) { + stdio = [process.stdin, process.stdout, process.stderr]; + } + + var sh = 'sh'; + var shFlag = '-c'; + + const binPath = process.cwd() + '/node_modules/.bin'; + + const spawnOptions = { + env: Object.assign({}, options.execOptions.env, process.env, { + PATH: + binPath + + path.delimiter + + (undefsafe(options, '.execOptions.env.PATH') || process.env.PATH), + }), + stdio: stdio, + }; + + var executable = cmd.executable; + + if (utils.isWindows) { + // if the exec includes a forward slash, reverse it for windows compat + // but *only* apply to the first command, and none of the arguments. + // ref #1251 and #1236 + if (executable.indexOf('/') !== -1) { + executable = executable + .split(' ') + .map((e, i) => { + if (i === 0) { + return path.normalize(e); + } + return e; + }) + .join(' '); + } + // taken from npm's cli: https://git.io/vNFD4 + sh = process.env.comspec || 'cmd'; + shFlag = '/d /s /c'; + spawnOptions.windowsVerbatimArguments = true; + spawnOptions.windowsHide = true; + } + + var args = runCmd ? utils.stringify(executable, cmd.args) : ':'; + var spawnArgs = [sh, [shFlag, args], spawnOptions]; + + const firstArg = cmd.args[0] || ''; + + var inBinPath = false; + try { + inBinPath = statSync(`${binPath}/${executable}`).isFile(); + } catch (e) {} + + // hasStdio allows us to correctly handle stdin piping + // see: https://git.io/vNtX3 + const hasStdio = utils.satisfies('>= 6.4.0 || < 5'); + + // forking helps with sub-process handling and tends to clean up better + // than spawning, but it should only be used under specific conditions + const shouldFork = + !config.options.spawn && + !inBinPath && + !(firstArg.indexOf('-') === 0) && // don't fork if there's a node exec arg + firstArg !== 'inspect' && // don't fork it's `inspect` debugger + executable === 'node' && // only fork if node + utils.version.major > 4; // only fork if node version > 4 + + if (shouldFork) { + // this assumes the first argument is the script and slices it out, since + // we're forking + var forkArgs = cmd.args.slice(1); + var env = utils.merge(options.execOptions.env, process.env); + stdio.push('ipc'); + const forkOptions = { + env: env, + stdio: stdio, + silent: !hasStdio, + }; + if (utils.isWindows) { + forkOptions.windowsHide = true; + } + child = fork(options.execOptions.script, forkArgs, forkOptions); + utils.log.detail('forking'); + debug('fork', sh, shFlag, args); + } else { + utils.log.detail('spawning'); + child = spawn.apply(null, spawnArgs); + debug('spawn', sh, shFlag, args); + } + + if (config.required) { + var emit = { + stdout: function (data) { + bus.emit('stdout', data); + }, + stderr: function (data) { + bus.emit('stderr', data); + }, + }; + + // now work out what to bind to... + if (config.options.stdout) { + child.on('stdout', emit.stdout).on('stderr', emit.stderr); + } else { + child.stdout.on('data', emit.stdout); + child.stderr.on('data', emit.stderr); + + bus.stdout = child.stdout; + bus.stderr = child.stderr; + } + + if (shouldFork) { + child.on('message', function (message, sendHandle) { + bus.emit('message', message, sendHandle); + }); + } + } + + bus.emit('start'); + + utils.log.detail('child pid: ' + child.pid); + + child.on('error', function (error) { + bus.emit('error', error); + if (error.code === 'ENOENT') { + utils.log.error('unable to run executable: "' + cmd.executable + '"'); + process.exit(1); + } else { + utils.log.error('failed to start child process: ' + error.code); + throw error; + } + }); + + child.on('exit', function (code, signal) { + if (child && child.stdin) { + process.stdin.unpipe(child.stdin); + } + + if (code === 127) { + utils.log.error( + 'failed to start process, "' + cmd.executable + '" exec not found' + ); + bus.emit('error', code); + process.exit(); + } + + // If the command failed with code 2, it may or may not be a syntax error + // See: http://git.io/fNOAR + // We will only assume a parse error, if the child failed quickly + if (code === 2 && Date.now() < config.lastStarted + 500) { + utils.log.error('process failed, unhandled exit code (2)'); + utils.log.error(''); + utils.log.error('Either the command has a syntax error,'); + utils.log.error('or it is exiting with reserved code 2.'); + utils.log.error(''); + utils.log.error('To keep nodemon running even after a code 2,'); + utils.log.error('add this to the end of your command: || exit 1'); + utils.log.error(''); + utils.log.error('Read more here: https://git.io/fNOAG'); + utils.log.error(''); + utils.log.error('nodemon will stop now so that you can fix the command.'); + utils.log.error(''); + bus.emit('error', code); + process.exit(); + } + + // In case we killed the app ourselves, set the signal thusly + if (killedAfterChange) { + killedAfterChange = false; + signal = config.signal; + } + // this is nasty, but it gives it windows support + if (utils.isWindows && signal === 'SIGTERM') { + signal = config.signal; + } + + if (signal === config.signal || code === 0) { + // this was a clean exit, so emit exit, rather than crash + debug('bus.emit(exit) via ' + config.signal); + bus.emit('exit', signal); + + // exit the monitor, but do it gracefully + if (signal === config.signal) { + return restart(); + } + + if (code === 0) { + // clean exit - wait until file change to restart + if (runCmd) { + utils.log.status('clean exit - waiting for changes before restart'); + } + child = null; + } + } else { + bus.emit('crash'); + + // support the old syntax of `exitcrash` - 2024-12-13 + if (options.exitcrash) { + options.exitCrash = true; + delete options.exitcrash; + } + + if (options.exitCrash) { + utils.log.fail('app crashed'); + if (!config.required) { + process.exit(1); + } + } else { + utils.log.fail( + 'app crashed - waiting for file changes before' + ' starting...' + ); + child = null; + } + } + + if (config.options.restartable) { + // stdin needs to kick in again to be able to listen to the + // restart command + process.stdin.resume(); + } + }); + + // moved the run.kill outside to handle both the cases + // intial start + // no start + + // connect stdin to the child process (options.stdin is on by default) + if (options.stdin) { + process.stdin.resume(); + // FIXME decide whether or not we need to decide the encoding + // process.stdin.setEncoding('utf8'); + + // swallow the stdin error if it happens + // ref: https://github.com/remy/nodemon/issues/1195 + if (hasStdio) { + child.stdin.on('error', () => {}); + process.stdin.pipe(child.stdin); + } else { + if (child.stdout) { + child.stdout.pipe(process.stdout); + } else { + utils.log.error( + 'running an unsupported version of node ' + process.version + ); + utils.log.error( + 'nodemon may not work as expected - ' + + 'please consider upgrading to LTS' + ); + } + } + + bus.once('exit', function () { + if (child && process.stdin.unpipe) { + // node > 0.8 + process.stdin.unpipe(child.stdin); + } + }); + } + + debug('start watch on: %s', config.options.watch); + if (config.options.watch !== false) { + watch(); + } +} + +function waitForSubProcesses(pid, callback) { + debug('checking ps tree for pids of ' + pid); + psTree(pid, (err, pids) => { + if (!pids.length) { + return callback(); + } + + utils.log.status( + `still waiting for ${pids.length} sub-process${ + pids.length > 2 ? 'es' : '' + } to finish...` + ); + setTimeout(() => waitForSubProcesses(pid, callback), 1000); + }); +} + +function kill(child, signal, callback) { + if (!callback) { + callback = noop; + } + + if (utils.isWindows) { + const taskKill = () => { + try { + exec('taskkill /pid ' + child.pid + ' /T /F'); + } catch (e) { + utils.log.error('Could not shutdown sub process cleanly'); + } + }; + + // We are handling a 'SIGKILL' , 'SIGUSR2' and 'SIGUSR1' POSIX signal under Windows the + // same way it is handled on a UNIX system: We are performing + // a hard shutdown without waiting for the process to clean-up. + if ( + signal === 'SIGKILL' || + osRelease < 10 || + signal === 'SIGUSR2' || + signal === 'SIGUSR1' + ) { + debug('terminating process group by force: %s', child.pid); + + // We are using the taskkill utility to terminate the whole + // process group ('/t') of the child ('/pid') by force ('/f'). + // We need to end all sub processes, because the 'child' + // process in this context is actually a cmd.exe wrapper. + taskKill(); + callback(); + return; + } + + try { + // We are using the Windows Management Instrumentation Command-line + // (wmic.exe) to resolve the sub-child process identifier, because the + // 'child' process in this context is actually a cmd.exe wrapper. + // We want to send the termination signal directly to the node process. + // The '2> nul' silences the no process found error message. + const resultBuffer = execSync( + `wmic process where (ParentProcessId=${child.pid}) get ProcessId 2> nul` + ); + const result = resultBuffer.toString().match(/^[0-9]+/m); + + // If there is no sub-child process we fall back to the child process. + const processId = Array.isArray(result) ? result[0] : child.pid; + + debug('sending kill signal SIGINT to process: %s', processId); + + // We are using the standalone 'windows-kill' executable to send the + // standard POSIX signal 'SIGINT' to the node process. This fixes #1720. + const windowsKill = path.normalize( + `${__dirname}/../../bin/windows-kill.exe` + ); + + // We have to detach the 'windows-kill' execution completely from this + // process group to avoid terminating the nodemon process itself. + // See: https://github.com/alirdn/windows-kill#how-it-works--limitations + // + // Therefore we are using 'start' to create a new cmd.exe context. + // The '/min' option hides the new terminal window and the '/wait' + // option lets the process wait for the command to finish. + + execSync( + `start "windows-kill" /min /wait "${windowsKill}" -SIGINT ${processId}` + ); + } catch (e) { + taskKill(); + } + callback(); + } else { + // we use psTree to kill the full subtree of nodemon, because when + // spawning processes like `coffee` under the `--debug` flag, it'll spawn + // it's own child, and that can't be killed by nodemon, so psTree gives us + // an array of PIDs that have spawned under nodemon, and we send each the + // configured signal (default: SIGUSR2) signal, which fixes #335 + // note that psTree also works if `ps` is missing by looking in /proc + let sig = signal.replace('SIG', ''); + + psTree(child.pid, function (err, pids) { + // if ps isn't native to the OS, then we need to send the numeric value + // for the signal during the kill, `signals` is a lookup table for that. + if (!psTree.hasPS) { + sig = signals[signal]; + } + + // the sub processes need to be killed from smallest to largest + debug('sending kill signal to ' + pids.join(', ')); + + child.kill(signal); + + pids.sort().forEach((pid) => exec(`kill -${sig} ${pid}`, noop)); + + waitForSubProcesses(child.pid, () => { + // finally kill the main user process + exec(`kill -${sig} ${child.pid}`, callback); + }); + }); + } +} + +run.kill = function (noRestart, callback) { + // I hate code like this :( - Remy (author of said code) + if (typeof noRestart === 'function') { + callback = noRestart; + noRestart = false; + } + + if (!callback) { + callback = noop; + } + + if (child !== null) { + // if the stdin piping is on, we need to unpipe, but also close stdin on + // the child, otherwise linux can throw EPIPE or ECONNRESET errors. + if (run.options.stdin) { + process.stdin.unpipe(child.stdin); + } + + // For the on('exit', ...) handler above the following looks like a + // crash, so we set the killedAfterChange flag if a restart is planned + if (!noRestart) { + killedAfterChange = true; + } + + /* Now kill the entire subtree of processes belonging to nodemon */ + var oldPid = child.pid; + if (child) { + kill(child, config.signal, function () { + // this seems to fix the 0.11.x issue with the "rs" restart command, + // though I'm unsure why. it seems like more data is streamed in to + // stdin after we close. + if (child && run.options.stdin && child.stdin && oldPid === child.pid) { + child.stdin.end(); + } + callback(); + }); + } + } else if (!noRestart) { + // if there's no child, then we need to manually start the process + // this is because as there was no child, the child.on('exit') event + // handler doesn't exist which would normally trigger the restart. + bus.once('start', callback); + run.restart(); + } else { + callback(); + } +}; + +run.restart = noop; + +bus.on('quit', function onQuit(code) { + if (code === undefined) { + code = 0; + } + + // remove event listener + var exitTimer = null; + var exit = function () { + clearTimeout(exitTimer); + exit = noop; // null out in case of race condition + child = null; + if (!config.required) { + // Execute all other quit listeners. + bus.listeners('quit').forEach(function (listener) { + if (listener !== onQuit) { + listener(); + } + }); + process.exit(code); + } else { + bus.emit('exit'); + } + }; + + // if we're not running already, don't bother with trying to kill + if (config.run === false) { + return exit(); + } + + // immediately try to stop any polling + config.run = false; + + if (child) { + // give up waiting for the kids after 10 seconds + exitTimer = setTimeout(exit, 10 * 1000); + child.removeAllListeners('exit'); + child.once('exit', exit); + + kill(child, 'SIGINT'); + } else { + exit(); + } +}); + +bus.on('restart', function () { + // run.kill will send a SIGINT to the child process, which will cause it + // to terminate, which in turn uses the 'exit' event handler to restart + run.kill(); +}); + +// remove the child file on exit +process.on('exit', function () { + utils.log.detail('exiting'); + if (child) { + child.kill(); + } +}); + +// because windows borks when listening for the SIG* events +if (!utils.isWindows) { + bus.once('boot', () => { + // usual suspect: ctrl+c exit + process.once('SIGINT', () => bus.emit('quit', 130)); + process.once('SIGTERM', () => { + bus.emit('quit', 143); + if (child) { + child.kill('SIGTERM'); + } + }); + }); +} + +module.exports = run; diff --git a/node_modules/nodemon/lib/monitor/signals.js b/node_modules/nodemon/lib/monitor/signals.js new file mode 100644 index 0000000..daff6e0 --- /dev/null +++ b/node_modules/nodemon/lib/monitor/signals.js @@ -0,0 +1,34 @@ +module.exports = { + SIGHUP: 1, + SIGINT: 2, + SIGQUIT: 3, + SIGILL: 4, + SIGTRAP: 5, + SIGABRT: 6, + SIGBUS: 7, + SIGFPE: 8, + SIGKILL: 9, + SIGUSR1: 10, + SIGSEGV: 11, + SIGUSR2: 12, + SIGPIPE: 13, + SIGALRM: 14, + SIGTERM: 15, + SIGSTKFLT: 16, + SIGCHLD: 17, + SIGCONT: 18, + SIGSTOP: 19, + SIGTSTP: 20, + SIGTTIN: 21, + SIGTTOU: 22, + SIGURG: 23, + SIGXCPU: 24, + SIGXFSZ: 25, + SIGVTALRM: 26, + SIGPROF: 27, + SIGWINCH: 28, + SIGIO: 29, + SIGPWR: 30, + SIGSYS: 31, + SIGRTMIN: 35, +} diff --git a/node_modules/nodemon/lib/monitor/watch.js b/node_modules/nodemon/lib/monitor/watch.js new file mode 100644 index 0000000..d0ac7fe --- /dev/null +++ b/node_modules/nodemon/lib/monitor/watch.js @@ -0,0 +1,244 @@ +module.exports.watch = watch; +module.exports.resetWatchers = resetWatchers; + +var debug = require('debug')('nodemon:watch'); +var debugRoot = require('debug')('nodemon'); +var chokidar = require('chokidar'); +var undefsafe = require('undefsafe'); +var config = require('../config'); +var path = require('path'); +var utils = require('../utils'); +var bus = utils.bus; +var match = require('./match'); +var watchers = []; +var debouncedBus; + +bus.on('reset', resetWatchers); + +function resetWatchers() { + debugRoot('resetting watchers'); + watchers.forEach(function (watcher) { + watcher.close(); + }); + watchers = []; +} + +function watch() { + if (watchers.length) { + debug('early exit on watch, still watching (%s)', watchers.length); + return; + } + + var dirs = [].slice.call(config.dirs); + + debugRoot('start watch on: %s', dirs.join(', ')); + const rootIgnored = config.options.ignore; + debugRoot('ignored', rootIgnored); + + var watchedFiles = []; + + const promise = new Promise(function (resolve) { + const dotFilePattern = /[/\\]\./; + var ignored = match.rulesToMonitor( + [], // not needed + Array.from(rootIgnored), + config + ).map(pattern => pattern.slice(1)); + + const addDotFile = dirs.filter(dir => dir.match(dotFilePattern)); + + // don't ignore dotfiles if explicitly watched. + if (addDotFile.length === 0) { + ignored.push(dotFilePattern); + } + + var watchOptions = { + ignorePermissionErrors: true, + ignored: ignored, + persistent: true, + usePolling: config.options.legacyWatch || false, + interval: config.options.pollingInterval, + // note to future developer: I've gone back and forth on adding `cwd` + // to the props and in some cases it fixes bugs but typically it causes + // bugs elsewhere (since nodemon is used is so many ways). the final + // decision is to *not* use it at all and work around it + // cwd: ... + }; + + if (utils.isWindows) { + watchOptions.disableGlobbing = true; + } + + if (utils.isIBMi) { + watchOptions.usePolling = true; + } + + if (process.env.TEST) { + watchOptions.useFsEvents = false; + } + + var watcher = chokidar.watch( + dirs, + Object.assign({}, watchOptions, config.options.watchOptions || {}) + ); + + watcher.ready = false; + + var total = 0; + + watcher.on('change', filterAndRestart); + watcher.on('unlink', filterAndRestart); + watcher.on('add', function (file) { + if (watcher.ready) { + return filterAndRestart(file); + } + + watchedFiles.push(file); + bus.emit('watching', file); + debug('chokidar watching: %s', file); + }); + watcher.on('ready', function () { + watchedFiles = Array.from(new Set(watchedFiles)); // ensure no dupes + total = watchedFiles.length; + watcher.ready = true; + resolve(total); + debugRoot('watch is complete'); + }); + + watcher.on('error', function (error) { + if (error.code === 'EINVAL') { + utils.log.error( + 'Internal watch failed. Likely cause: too many ' + + 'files being watched (perhaps from the root of a drive?\n' + + 'See https://github.com/paulmillr/chokidar/issues/229 for details' + ); + } else { + utils.log.error('Internal watch failed: ' + error.message); + process.exit(1); + } + }); + + watchers.push(watcher); + }); + + return promise.catch(e => { + // this is a core error and it should break nodemon - so I have to break + // out of a promise using the setTimeout + setTimeout(() => { + throw e; + }); + }).then(function () { + utils.log.detail(`watching ${watchedFiles.length} file${ + watchedFiles.length === 1 ? '' : 's'}`); + return watchedFiles; + }); +} + +function filterAndRestart(files) { + if (!Array.isArray(files)) { + files = [files]; + } + + if (files.length) { + var cwd = process.cwd(); + if (this.options && this.options.cwd) { + cwd = this.options.cwd; + } + + utils.log.detail( + 'files triggering change check: ' + + files + .map(file => { + const res = path.relative(cwd, file); + return res; + }) + .join(', ') + ); + + // make sure the path is right and drop an empty + // filenames (sometimes on windows) + files = files.filter(Boolean).map(file => { + return path.relative(process.cwd(), path.relative(cwd, file)); + }); + + if (utils.isWindows) { + // ensure the drive letter is in uppercase (c:\foo -> C:\foo) + files = files.map(f => { + if (f.indexOf(':') === -1) { return f; } + return f[0].toUpperCase() + f.slice(1); + }); + } + + + debug('filterAndRestart on', files); + + var matched = match( + files, + config.options.monitor, + undefsafe(config, 'options.execOptions.ext') + ); + + debug('matched?', JSON.stringify(matched)); + + // if there's no matches, then test to see if the changed file is the + // running script, if so, let's allow a restart + if (config.options.execOptions && config.options.execOptions.script) { + const script = path.resolve(config.options.execOptions.script); + if (matched.result.length === 0 && script) { + const length = script.length; + files.find(file => { + if (file.substr(-length, length) === script) { + matched = { + result: [file], + total: 1, + }; + return true; + } + }); + } + } + + utils.log.detail( + 'changes after filters (before/after): ' + + [files.length, matched.result.length].join('/') + ); + + // reset the last check so we're only looking at recently modified files + config.lastStarted = Date.now(); + + if (matched.result.length) { + if (config.options.delay > 0) { + utils.log.detail('delaying restart for ' + config.options.delay + 'ms'); + if (debouncedBus === undefined) { + debouncedBus = debounce(restartBus, config.options.delay); + } + debouncedBus(matched); + } else { + return restartBus(matched); + } + } + } +} + +function restartBus(matched) { + utils.log.status('restarting due to changes...'); + matched.result.map(file => { + utils.log.detail(path.relative(process.cwd(), file)); + }); + + if (config.options.verbose) { + utils.log._log(''); + } + + bus.emit('restart', matched.result); +} + +function debounce(fn, delay) { + var timer = null; + return function () { + const context = this; + const args = arguments; + clearTimeout(timer); + timer = setTimeout(() =>fn.apply(context, args), delay); + }; +} diff --git a/node_modules/nodemon/lib/nodemon.js b/node_modules/nodemon/lib/nodemon.js new file mode 100644 index 0000000..75619ba --- /dev/null +++ b/node_modules/nodemon/lib/nodemon.js @@ -0,0 +1,317 @@ +var debug = require('debug')('nodemon'); +var path = require('path'); +var monitor = require('./monitor'); +var cli = require('./cli'); +var version = require('./version'); +var util = require('util'); +var utils = require('./utils'); +var bus = utils.bus; +var help = require('./help'); +/** @type {import('..').NodemonEventConfig} */ +var config = require('./config'); +var spawn = require('./spawn'); +const defaults = require('./config/defaults') +var eventHandlers = {}; + +// this is fairly dirty, but theoretically sound since it's part of the +// stable module API +config.required = utils.isRequired; + +/** + * @param {import('..').NodemonSettings | string} settings + * @returns {import('..').Nodemon} + */ +function nodemon(settings) { + bus.emit('boot'); + nodemon.reset(); + + /** @type {import('..').NodemonSettings} */ + let options + + // allow the cli string as the argument to nodemon, and allow for + // `node nodemon -V app.js` or just `-V app.js` + if (typeof settings === 'string') { + settings = settings.trim(); + if (settings.indexOf('node') !== 0) { + if (settings.indexOf('nodemon') !== 0) { + settings = 'nodemon ' + settings; + } + settings = 'node ' + settings; + } + options = cli.parse(settings); + } else options = settings; + + // set the debug flag as early as possible to get all the detailed logging + if (options.verbose) { + utils.debug = true; + } + + if (options.help) { + if (process.stdout.isTTY) { + process.stdout._handle.setBlocking(true); // nodejs/node#6456 + } + console.log(help(options.help)); + if (!config.required) { + process.exit(0); + } + } + + if (options.version) { + version().then(function (v) { + console.log(v); + if (!config.required) { + process.exit(0); + } + }); + return; + } + + // nodemon tools like grunt-nodemon. This affects where + // the script is being run from, and will affect where + // nodemon looks for the nodemon.json files + if (options.cwd) { + // this is protection to make sure we haven't dont the chdir already... + // say like in cli/parse.js (which is where we do this once already!) + if (process.cwd() !== path.resolve(config.system.cwd, options.cwd)) { + process.chdir(options.cwd); + } + } + + config.load(options, function (config) { + if (!config.options.dump && !config.options.execOptions.script && + config.options.execOptions.exec === 'node') { + if (!config.required) { + console.log(help('usage')); + process.exit(); + } + return; + } + + // before we print anything, update the colour setting on logging + utils.colours = config.options.colours; + + // always echo out the current version + utils.log.info(version.pinned); + + const cwd = process.cwd(); + + if (config.options.cwd) { + utils.log.detail('process root: ' + cwd); + } + + config.loaded.map(file => file.replace(cwd, '.')).forEach(file => { + utils.log.detail('reading config ' + file); + }); + + if (config.options.stdin && config.options.restartable) { + // allow nodemon to restart when the use types 'rs\n' + process.stdin.resume(); + process.stdin.setEncoding('utf8'); + process.stdin.on('data', data => { + const str = data.toString().trim().toLowerCase(); + + // if the keys entered match the restartable value, then restart! + if (str === config.options.restartable) { + bus.emit('restart'); + } else if (data.charCodeAt(0) === 12) { // ctrl+l + console.clear(); + } + }); + } else if (config.options.stdin) { + // so let's make sure we don't eat the key presses + // but also, since we're wrapping, watch out for + // special keys, like ctrl+c x 2 or '.exit' or ctrl+d or ctrl+l + var ctrlC = false; + var buffer = ''; + + process.stdin.on('data', function (data) { + data = data.toString(); + buffer += data; + const chr = data.charCodeAt(0); + + // if restartable, echo back + if (chr === 3) { + if (ctrlC) { + process.exit(0); + } + + ctrlC = true; + return; + } else if (buffer === '.exit' || chr === 4) { // ctrl+d + process.exit(); + } else if (chr === 13 || chr === 10) { // enter / carriage return + buffer = ''; + } else if (chr === 12) { // ctrl+l + console.clear(); + buffer = ''; + } + ctrlC = false; + }); + if (process.stdin.setRawMode) { + process.stdin.setRawMode(true); + } + } + + if (config.options.restartable) { + utils.log.info('to restart at any time, enter `' + + config.options.restartable + '`'); + } + + if (!config.required) { + const restartSignal = config.options.signal === 'SIGUSR2' ? 'SIGHUP' : 'SIGUSR2'; + process.on(restartSignal, nodemon.restart); + utils.bus.on('error', () => { + utils.log.fail((new Error().stack)); + }); + utils.log.detail((config.options.restartable ? 'or ' : '') + 'send ' + + restartSignal + ' to ' + process.pid + ' to restart'); + } + + const ignoring = config.options.monitor.map(function (rule) { + if (rule.slice(0, 1) !== '!') { + return false; + } + + rule = rule.slice(1); + + // don't notify of default ignores + if (defaults.ignoreRoot.indexOf(rule) !== -1) { + return false; + // return rule.slice(3).slice(0, -3); + } + + if (rule.startsWith(cwd)) { + return rule.replace(cwd, '.'); + } + + return rule; + }).filter(Boolean).join(' '); + if (ignoring) utils.log.detail('ignoring: ' + ignoring); + + utils.log.info('watching path(s): ' + config.options.monitor.map(function (rule) { + if (rule.slice(0, 1) !== '!') { + try { + rule = path.relative(process.cwd(), rule); + } catch (e) {} + + return rule; + } + + return false; + }).filter(Boolean).join(' ')); + + utils.log.info('watching extensions: ' + (config.options.execOptions.ext || '(all)')); + + if (config.options.dump) { + utils.log._log('log', '--------------'); + utils.log._log('log', 'node: ' + process.version); + utils.log._log('log', 'nodemon: ' + version.pinned); + utils.log._log('log', 'command: ' + process.argv.join(' ')); + utils.log._log('log', 'cwd: ' + cwd); + utils.log._log('log', ['OS:', process.platform, process.arch].join(' ')); + utils.log._log('log', '--------------'); + utils.log._log('log', util.inspect(config, { depth: null })); + utils.log._log('log', '--------------'); + if (!config.required) { + process.exit(); + } + + return; + } + + config.run = true; + + if (config.options.stdout === false) { + nodemon.on('start', function () { + nodemon.stdout = bus.stdout; + nodemon.stderr = bus.stderr; + + bus.emit('readable'); + }); + } + + if (config.options.events && Object.keys(config.options.events).length) { + Object.keys(config.options.events).forEach(function (key) { + utils.log.detail('bind ' + key + ' -> `' + + config.options.events[key] + '`'); + nodemon.on(key, function () { + if (config.options && config.options.events) { + spawn(config.options.events[key], config, + [].slice.apply(arguments)); + } + }); + }); + } + + monitor.run(config.options); + + }); + + return nodemon; +} + +nodemon.restart = function () { + utils.log.status('restarting child process'); + bus.emit('restart'); + return nodemon; +}; + +nodemon.addListener = nodemon.on = function (event, handler) { + if (!eventHandlers[event]) { eventHandlers[event] = []; } + eventHandlers[event].push(handler); + bus.on(event, handler); + return nodemon; +}; + +nodemon.once = function (event, handler) { + if (!eventHandlers[event]) { eventHandlers[event] = []; } + eventHandlers[event].push(handler); + bus.once(event, function () { + debug('bus.once(%s)', event); + eventHandlers[event].splice(eventHandlers[event].indexOf(handler), 1); + handler.apply(this, arguments); + }); + return nodemon; +}; + +nodemon.emit = function () { + bus.emit.apply(bus, [].slice.call(arguments)); + return nodemon; +}; + +nodemon.removeAllListeners = function (event) { + // unbind only the `nodemon.on` event handlers + Object.keys(eventHandlers).filter(function (e) { + return event ? e === event : true; + }).forEach(function (event) { + eventHandlers[event].forEach(function (handler) { + bus.removeListener(event, handler); + eventHandlers[event].splice(eventHandlers[event].indexOf(handler), 1); + }); + }); + + return nodemon; +}; + +nodemon.reset = function (done) { + bus.emit('reset', done); +}; + +bus.on('reset', function (done) { + debug('reset'); + nodemon.removeAllListeners(); + monitor.run.kill(true, function () { + utils.reset(); + config.reset(); + config.run = false; + if (done) { + done(); + } + }); +}); + +// expose the full config +nodemon.config = config; + +module.exports = nodemon; + diff --git a/node_modules/nodemon/lib/rules/add.js b/node_modules/nodemon/lib/rules/add.js new file mode 100644 index 0000000..11f1fd7 --- /dev/null +++ b/node_modules/nodemon/lib/rules/add.js @@ -0,0 +1,89 @@ +'use strict'; + +var utils = require('../utils'); + +// internal +var reEscComments = /\\#/g; +// note that '^^' is used in place of escaped comments +var reUnescapeComments = /\^\^/g; +var reComments = /#.*$/; +var reEscapeChars = /[.|\-[\]()\\]/g; +var reAsterisk = /\*/g; + +module.exports = add; + +/** + * Converts file patterns or regular expressions to nodemon + * compatible RegExp matching rules. Note: the `rules` argument + * object is modified to include the new rule and new RegExp + * + * ### Example: + * + * var rules = { watch: [], ignore: [] }; + * add(rules, 'watch', '*.js'); + * add(rules, 'ignore', '/public/'); + * add(rules, 'watch', ':(\d)*\.js'); // note: string based regexp + * add(rules, 'watch', /\d*\.js/); + * + * @param {Object} rules containing `watch` and `ignore`. Also updated during + * execution + * @param {String} which must be either "watch" or "ignore" + * @param {String|RegExp} rule the actual rule. + */ +function add(rules, which, rule) { + if (!{ ignore: 1, watch: 1}[which]) { + throw new Error('rules/index.js#add requires "ignore" or "watch" as the ' + + 'first argument'); + } + + if (Array.isArray(rule)) { + rule.forEach(function (rule) { + add(rules, which, rule); + }); + return; + } + + // support the rule being a RegExp, but reformat it to + // the custom : format that we're working with. + if (rule instanceof RegExp) { + // rule = ':' + rule.toString().replace(/^\/(.*?)\/$/g, '$1'); + utils.log.error('RegExp format no longer supported, but globs are.'); + return; + } + + // remove comments and trim lines + // this mess of replace methods is escaping "\#" to allow for emacs temp files + + // first up strip comments and remove blank head or tails + rule = (rule || '').replace(reEscComments, '^^') + .replace(reComments, '') + .replace(reUnescapeComments, '#').trim(); + + var regexp = false; + + if (typeof rule === 'string' && rule.substring(0, 1) === ':') { + rule = rule.substring(1); + utils.log.error('RegExp no longer supported: ' + rule); + regexp = true; + } else if (rule.length === 0) { + // blank line (or it was a comment) + return; + } + + if (regexp) { + // rules[which].push(rule); + } else { + // rule = rule.replace(reEscapeChars, '\\$&') + // .replace(reAsterisk, '.*'); + + rules[which].push(rule); + // compile a regexp of all the rules for this ignore or watch + var re = rules[which].map(function (rule) { + return rule.replace(reEscapeChars, '\\$&') + .replace(reAsterisk, '.*'); + }).join('|'); + + // used for the directory matching + rules[which].re = new RegExp(re); + } +} diff --git a/node_modules/nodemon/lib/rules/index.js b/node_modules/nodemon/lib/rules/index.js new file mode 100644 index 0000000..04aa92f --- /dev/null +++ b/node_modules/nodemon/lib/rules/index.js @@ -0,0 +1,53 @@ +'use strict'; +var utils = require('../utils'); +var add = require('./add'); +var parse = require('./parse'); + +// exported +var rules = { ignore: [], watch: [] }; + +/** + * Loads a nodemon config file and populates the ignore + * and watch rules with it's contents, and calls callback + * with the new rules + * + * @param {String} filename + * @param {Function} callback + */ +function load(filename, callback) { + parse(filename, function (err, result) { + if (err) { + // we should have bombed already, but + utils.log.error(err); + callback(err); + } + + if (result.raw) { + result.raw.forEach(add.bind(null, rules, 'ignore')); + } else { + result.ignore.forEach(add.bind(null, rules, 'ignore')); + result.watch.forEach(add.bind(null, rules, 'watch')); + } + + callback(null, rules); + }); +} + +module.exports = { + reset: function () { // just used for testing + rules.ignore.length = rules.watch.length = 0; + delete rules.ignore.re; + delete rules.watch.re; + }, + load: load, + ignore: { + test: add.bind(null, rules, 'ignore'), + add: add.bind(null, rules, 'ignore'), + }, + watch: { + test: add.bind(null, rules, 'watch'), + add: add.bind(null, rules, 'watch'), + }, + add: add.bind(null, rules), + rules: rules, +}; \ No newline at end of file diff --git a/node_modules/nodemon/lib/rules/parse.js b/node_modules/nodemon/lib/rules/parse.js new file mode 100644 index 0000000..6e1cace --- /dev/null +++ b/node_modules/nodemon/lib/rules/parse.js @@ -0,0 +1,43 @@ +'use strict'; +var fs = require('fs'); + +/** + * Parse the nodemon config file, supporting both old style + * plain text config file, and JSON version of the config + * + * @param {String} filename + * @param {Function} callback + */ +function parse(filename, callback) { + var rules = { + ignore: [], + watch: [], + }; + + fs.readFile(filename, 'utf8', function (err, content) { + + if (err) { + return callback(err); + } + + var json = null; + try { + json = JSON.parse(content); + } catch (e) {} + + if (json !== null) { + rules = { + ignore: json.ignore || [], + watch: json.watch || [], + }; + + return callback(null, rules); + } + + // otherwise return the raw file + return callback(null, { raw: content.split(/\n/) }); + }); +} + +module.exports = parse; + diff --git a/node_modules/nodemon/lib/spawn.js b/node_modules/nodemon/lib/spawn.js new file mode 100644 index 0000000..256734a --- /dev/null +++ b/node_modules/nodemon/lib/spawn.js @@ -0,0 +1,74 @@ +const path = require('path'); +const utils = require('./utils'); +const merge = utils.merge; +const bus = utils.bus; +const spawn = require('child_process').spawn; + +module.exports = function spawnCommand(command, config, eventArgs) { + var stdio = ['pipe', 'pipe', 'pipe']; + + if (config.options.stdout) { + stdio = ['pipe', process.stdout, process.stderr]; + } + + const env = merge(process.env, { FILENAME: eventArgs[0] }); + + var sh = 'sh'; + var shFlag = '-c'; + var spawnOptions = { + env: merge(config.options.execOptions.env, env), + stdio: stdio, + }; + + if (!Array.isArray(command)) { + command = [command]; + } + + if (utils.isWindows) { + // if the exec includes a forward slash, reverse it for windows compat + // but *only* apply to the first command, and none of the arguments. + // ref #1251 and #1236 + command = command.map(executable => { + if (executable.indexOf('/') === -1) { + return executable; + } + + return executable.split(' ').map((e, i) => { + if (i === 0) { + return path.normalize(e); + } + return e; + }).join(' '); + }); + // taken from npm's cli: https://git.io/vNFD4 + sh = process.env.comspec || 'cmd'; + shFlag = '/d /s /c'; + spawnOptions.windowsVerbatimArguments = true; + spawnOptions.windowsHide = true; + } + + const args = command.join(' '); + const child = spawn(sh, [shFlag, args], spawnOptions); + + if (config.required) { + var emit = { + stdout: function (data) { + bus.emit('stdout', data); + }, + stderr: function (data) { + bus.emit('stderr', data); + }, + }; + + // now work out what to bind to... + if (config.options.stdout) { + child.on('stdout', emit.stdout).on('stderr', emit.stderr); + } else { + child.stdout.on('data', emit.stdout); + child.stderr.on('data', emit.stderr); + + bus.stdout = child.stdout; + bus.stderr = child.stderr; + } + } +}; diff --git a/node_modules/nodemon/lib/utils/bus.js b/node_modules/nodemon/lib/utils/bus.js new file mode 100644 index 0000000..4e120c5 --- /dev/null +++ b/node_modules/nodemon/lib/utils/bus.js @@ -0,0 +1,44 @@ +var events = require('events'); +var debug = require('debug')('nodemon'); +var util = require('util'); + +var Bus = function () { + events.EventEmitter.call(this); +}; + +util.inherits(Bus, events.EventEmitter); + +var bus = new Bus(); + +// /* +var collected = {}; +bus.on('newListener', function (event) { + debug('bus new listener: %s (%s)', event, bus.listeners(event).length); + if (!collected[event]) { + collected[event] = true; + bus.on(event, function () { + debug('bus emit: %s', event); + }); + } +}); + +// */ + +// proxy process messages (if forked) to the bus +process.on('message', function (event) { + debug('process.message(%s)', event); + bus.emit(event); +}); + +var emit = bus.emit; + +// if nodemon was spawned via a fork, allow upstream communication +// via process.send +if (process.send) { + bus.emit = function (event, data) { + process.send({ type: event, data: data }); + emit.apply(bus, arguments); + }; +} + +module.exports = bus; diff --git a/node_modules/nodemon/lib/utils/clone.js b/node_modules/nodemon/lib/utils/clone.js new file mode 100644 index 0000000..6ba6330 --- /dev/null +++ b/node_modules/nodemon/lib/utils/clone.js @@ -0,0 +1,40 @@ +module.exports = clone; + +// via http://stackoverflow.com/a/728694/22617 +function clone(obj) { + // Handle the 3 simple types, and null or undefined + if (null === obj || 'object' !== typeof obj) { + return obj; + } + + var copy; + + // Handle Date + if (obj instanceof Date) { + copy = new Date(); + copy.setTime(obj.getTime()); + return copy; + } + + // Handle Array + if (obj instanceof Array) { + copy = []; + for (var i = 0, len = obj.length; i < len; i++) { + copy[i] = clone(obj[i]); + } + return copy; + } + + // Handle Object + if (obj instanceof Object) { + copy = {}; + for (var attr in obj) { + if (obj.hasOwnProperty && obj.hasOwnProperty(attr)) { + copy[attr] = clone(obj[attr]); + } + } + return copy; + } + + throw new Error('Unable to copy obj! Its type isn\'t supported.'); +} \ No newline at end of file diff --git a/node_modules/nodemon/lib/utils/colour.js b/node_modules/nodemon/lib/utils/colour.js new file mode 100644 index 0000000..8c1b590 --- /dev/null +++ b/node_modules/nodemon/lib/utils/colour.js @@ -0,0 +1,26 @@ +/** + * Encodes a string in a colour: red, yellow or green + * @param {String} c colour to highlight in + * @param {String} str the string to encode + * @return {String} coloured string for terminal printing + */ +function colour(c, str) { + return (colour[c] || colour.black) + str + colour.black; +} + +function strip(str) { + re.lastIndex = 0; // reset position + return str.replace(re, ''); +} + +colour.red = '\x1B[31m'; +colour.yellow = '\x1B[33m'; +colour.green = '\x1B[32m'; +colour.black = '\x1B[39m'; + +var reStr = Object.keys(colour).map(key => colour[key]).join('|'); +var re = new RegExp(('(' + reStr + ')').replace(/\[/g, '\\['), 'g'); + +colour.strip = strip; + +module.exports = colour; diff --git a/node_modules/nodemon/lib/utils/index.js b/node_modules/nodemon/lib/utils/index.js new file mode 100644 index 0000000..9265121 --- /dev/null +++ b/node_modules/nodemon/lib/utils/index.js @@ -0,0 +1,103 @@ +var noop = function () { }; +var path = require('path'); +const semver = require('semver'); +var version = process.versions.node.split('.') || [null, null, null]; + +var utils = (module.exports = { + semver: semver, + satisfies: test => semver.satisfies(process.versions.node, test), + version: { + major: parseInt(version[0] || 0, 10), + minor: parseInt(version[1] || 0, 10), + patch: parseInt(version[2] || 0, 10), + }, + clone: require('./clone'), + merge: require('./merge'), + bus: require('./bus'), + isWindows: process.platform === 'win32', + isMac: process.platform === 'darwin', + isLinux: process.platform === 'linux', + isIBMi: require('os').type() === 'OS400', + isRequired: (function () { + var p = module.parent; + while (p) { + // in electron.js engine it happens + if (!p.filename) { + return true; + } + if (p.filename.indexOf('bin' + path.sep + 'nodemon.js') !== -1) { + return false; + } + p = p.parent; + } + + return true; + })(), + home: process.env.HOME || process.env.HOMEPATH, + quiet: function () { + // nukes the logging + if (!this.debug) { + for (var method in utils.log) { + if (typeof utils.log[method] === 'function') { + utils.log[method] = noop; + } + } + } + }, + reset: function () { + if (!this.debug) { + for (var method in utils.log) { + if (typeof utils.log[method] === 'function') { + delete utils.log[method]; + } + } + } + this.debug = false; + }, + regexpToText: function (t) { + return t + .replace(/\.\*\\./g, '*.') + .replace(/\\{2}/g, '^^') + .replace(/\\/g, '') + .replace(/\^\^/g, '\\'); + }, + stringify: function (exec, args) { + // serializes an executable string and array of arguments into a string + args = args || []; + + return [exec] + .concat( + args.map(function (arg) { + // if an argument contains a space, we want to show it with quotes + // around it to indicate that it is a single argument + if (arg.length > 0 && arg.indexOf(' ') === -1) { + return arg; + } + // this should correctly escape nested quotes + return JSON.stringify(arg); + }) + ) + .join(' ') + .trim(); + }, +}); + +utils.log = require('./log')(utils.isRequired); + +Object.defineProperty(utils, 'debug', { + set: function (value) { + this.log.debug = value; + }, + get: function () { + return this.log.debug; + }, +}); + +Object.defineProperty(utils, 'colours', { + set: function (value) { + this.log.useColours = value; + }, + get: function () { + return this.log.useColours; + }, +}); diff --git a/node_modules/nodemon/lib/utils/log.js b/node_modules/nodemon/lib/utils/log.js new file mode 100644 index 0000000..6580087 --- /dev/null +++ b/node_modules/nodemon/lib/utils/log.js @@ -0,0 +1,82 @@ +var colour = require('./colour'); +var bus = require('./bus'); +var required = false; +var useColours = true; + +var coding = { + log: 'black', + info: 'yellow', + status: 'green', + detail: 'yellow', + fail: 'red', + error: 'red', +}; + +function log(type, text) { + var msg = '[nodemon] ' + (text || ''); + + if (useColours) { + msg = colour(coding[type], msg); + } + + // always push the message through our bus, using nextTick + // to help testing and get _out of_ promises. + process.nextTick(() => { + bus.emit('log', { type: type, message: text, colour: msg }); + }); + + // but if we're running on the command line, also echo out + // question: should we actually just consume our own events? + if (!required) { + if (type === 'error') { + console.error(msg); + } else { + console.log(msg || ''); + } + } +} + +var Logger = function (r) { + if (!(this instanceof Logger)) { + return new Logger(r); + } + this.required(r); + return this; +}; + +Object.keys(coding).forEach(function (type) { + Logger.prototype[type] = log.bind(null, type); +}); + +// detail is for messages that are turned on during debug +Logger.prototype.detail = function (msg) { + if (this.debug) { + log('detail', msg); + } +}; + +Logger.prototype.required = function (val) { + required = val; +}; + +Logger.prototype.debug = false; +Logger.prototype._log = function (type, msg) { + if (required) { + bus.emit('log', { type: type, message: msg || '', colour: msg || '' }); + } else if (type === 'error') { + console.error(msg); + } else { + console.log(msg || ''); + } +}; + +Object.defineProperty(Logger.prototype, 'useColours', { + set: function (val) { + useColours = val; + }, + get: function () { + return useColours; + }, +}); + +module.exports = Logger; diff --git a/node_modules/nodemon/lib/utils/merge.js b/node_modules/nodemon/lib/utils/merge.js new file mode 100644 index 0000000..1f3440b --- /dev/null +++ b/node_modules/nodemon/lib/utils/merge.js @@ -0,0 +1,47 @@ +var clone = require('./clone'); + +module.exports = merge; + +function typesMatch(a, b) { + return (typeof a === typeof b) && (Array.isArray(a) === Array.isArray(b)); +} + +/** + * A deep merge of the source based on the target. + * @param {Object} source [description] + * @param {Object} target [description] + * @return {Object} [description] + */ +function merge(source, target, result) { + if (result === undefined) { + result = clone(source); + } + + // merge missing values from the target to the source + Object.getOwnPropertyNames(target).forEach(function (key) { + if (source[key] === undefined) { + result[key] = target[key]; + } + }); + + Object.getOwnPropertyNames(source).forEach(function (key) { + var value = source[key]; + + if (target[key] && typesMatch(value, target[key])) { + // merge empty values + if (value === '') { + result[key] = target[key]; + } + + if (Array.isArray(value)) { + if (value.length === 0 && target[key].length) { + result[key] = target[key].slice(0); + } + } else if (typeof value === 'object') { + result[key] = merge(value, target[key]); + } + } + }); + + return result; +} \ No newline at end of file diff --git a/node_modules/nodemon/lib/version.js b/node_modules/nodemon/lib/version.js new file mode 100644 index 0000000..d0f5104 --- /dev/null +++ b/node_modules/nodemon/lib/version.js @@ -0,0 +1,100 @@ +module.exports = version; +module.exports.pin = pin; + +var fs = require('fs'); +var path = require('path'); +var exec = require('child_process').exec; +var root = null; + +function pin() { + return version().then(function (v) { + version.pinned = v; + }); +} + +function version(callback) { + // first find the package.json as this will be our root + var promise = findPackage(path.dirname(module.parent.filename)) + .then(function (dir) { + // now try to load the package + var v = require(path.resolve(dir, 'package.json')).version; + + if (v && v !== '0.0.0-development') { + return v; + } + + root = dir; + + // else we're in development, give the commit out + // get the last commit and whether the working dir is dirty + var promises = [ + branch().catch(function () { return 'master'; }), + commit().catch(function () { return ''; }), + dirty().catch(function () { return 0; }), + ]; + + // use the cached result as the export + return Promise.all(promises).then(function (res) { + var branch = res[0]; + var commit = res[1]; + var dirtyCount = parseInt(res[2], 10); + var curr = branch + ': ' + commit; + if (dirtyCount !== 0) { + curr += ' (' + dirtyCount + ' dirty files)'; + } + + return curr; + }); + }).catch(function (error) { + console.log(error.stack); + throw error; + }); + + if (callback) { + promise.then(function (res) { + callback(null, res); + }, callback); + } + + return promise; +} + +function findPackage(dir) { + if (dir === '/') { + return Promise.reject(new Error('package not found')); + } + return new Promise(function (resolve) { + fs.stat(path.resolve(dir, 'package.json'), function (error, exists) { + if (error || !exists) { + return resolve(findPackage(path.resolve(dir, '..'))); + } + + resolve(dir); + }); + }); +} + +function command(cmd) { + return new Promise(function (resolve, reject) { + exec(cmd, { cwd: root }, function (err, stdout, stderr) { + var error = stderr.trim(); + if (error) { + return reject(new Error(error)); + } + resolve(stdout.split('\n').join('')); + }); + }); +} + +function commit() { + return command('git rev-parse HEAD'); +} + +function branch() { + return command('git rev-parse --abbrev-ref HEAD'); +} + +function dirty() { + return command('expr $(git status --porcelain 2>/dev/null| ' + + 'egrep "^(M| M)" | wc -l)'); +} diff --git a/node_modules/nodemon/node_modules/debug/LICENSE b/node_modules/nodemon/node_modules/debug/LICENSE new file mode 100644 index 0000000..1a9820e --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk +Copyright (c) 2018-2021 Josh Junon + +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE 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. + diff --git a/node_modules/nodemon/node_modules/debug/README.md b/node_modules/nodemon/node_modules/debug/README.md new file mode 100644 index 0000000..9ebdfbf --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/README.md @@ -0,0 +1,481 @@ +# debug +[![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example [_app.js_](./examples/node/app.js): + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %o', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example [_worker.js_](./examples/node/worker.js): + +```js +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); + +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); +``` + +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: + +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm + +#### Windows command prompt notes + +##### CMD + +On Windows the environment variable is set using the `set` command. + +```cmd +set DEBUG=*,-not_this +``` + +Example: + +```cmd +set DEBUG=* & node app.js +``` + +##### PowerShell (VS Code default) + +PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` + +Example: + +```cmd +$env:DEBUG='app';node app.js +``` + +Then, run the program to be debugged as usual. + +npm script example: +```js + "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", +``` + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + +## Millisecond diff + +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + + +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: + + + + +## Conventions + +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. + +## Wildcards + +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". + +## Environment Variables + +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. + +## Formatters + +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + + +### Custom formatters + +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// …elsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + + +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + +In Chromium-based web browsers (e.g. Brave, Chrome, and Electron), the JavaScript console will—by default—only show messages logged by `debug` if the "Verbose" log level is _enabled_. + + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example [_stdout.js_](./examples/node/stdout.js): + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + +## Extend +You can simply extend debugger +```js +const log = require('debug')('auth'); + +//creates new debug instance with extended namespace +const logSign = log.extend('sign'); +const logLogin = log.extend('login'); + +log('hello'); // auth hello +logSign('hello'); //auth:sign hello +logLogin('hello'); //auth:login hello +``` + +## Set dynamically + +You can also enable debug dynamically by calling the `enable()` method : + +```js +let debug = require('debug'); + +console.log(1, debug.enabled('test')); + +debug.enable('test'); +console.log(2, debug.enabled('test')); + +debug.disable(); +console.log(3, debug.enabled('test')); + +``` + +print : +``` +1 false +2 true +3 false +``` + +Usage : +`enable(namespaces)` +`namespaces` can include modes separated by a colon and wildcards. + +Note that calling `enable()` completely overrides previously set DEBUG variable : + +``` +$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' +=> false +``` + +`disable()` + +Will disable all namespaces. The functions returns the namespaces currently +enabled (and skipped). This can be useful if you want to disable debugging +temporarily without knowing what was enabled to begin with. + +For example: + +```js +let debug = require('debug'); +debug.enable('foo:*,-foo:bar'); +let namespaces = debug.disable(); +debug.enable(namespaces); +``` + +Note: There is no guarantee that the string will be identical to the initial +enable string, but semantically they will be identical. + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + +## Usage in child processes + +Due to the way `debug` detects if the output is a TTY or not, colors are not shown in child processes when `stderr` is piped. A solution is to pass the `DEBUG_COLORS=1` environment variable to the child process. +For example: + +```javascript +worker = fork(WORKER_WRAP_PATH, [workerPath], { + stdio: [ + /* stdin: */ 0, + /* stdout: */ 'pipe', + /* stderr: */ 'pipe', + 'ipc', + ], + env: Object.assign({}, process.env, { + DEBUG_COLORS: 1 // without this settings, colors won't be shown + }), +}); + +worker.stderr.pipe(process.stderr, { end: false }); +``` + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + - Josh Junon + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> +Copyright (c) 2018-2021 Josh Junon + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/nodemon/node_modules/debug/package.json b/node_modules/nodemon/node_modules/debug/package.json new file mode 100644 index 0000000..60dfcf5 --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/package.json @@ -0,0 +1,65 @@ +{ + "name": "debug", + "version": "4.4.0", + "repository": { + "type": "git", + "url": "git://github.com/debug-js/debug.git" + }, + "description": "Lightweight debugging utility for Node.js and the browser", + "keywords": [ + "debug", + "log", + "debugger" + ], + "files": [ + "src", + "LICENSE", + "README.md" + ], + "author": "Josh Junon (https://github.com/qix-)", + "contributors": [ + "TJ Holowaychuk ", + "Nathan Rajlich (http://n8.io)", + "Andrew Rhyne " + ], + "license": "MIT", + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:node": "istanbul cover _mocha -- test.js test.node.js", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls" + }, + "dependencies": { + "ms": "^2.1.3" + }, + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "istanbul": "^0.4.5", + "karma": "^3.1.4", + "karma-browserify": "^6.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0", + "sinon": "^14.0.0", + "xo": "^0.23.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "main": "./src/index.js", + "browser": "./src/browser.js", + "engines": { + "node": ">=6.0" + }, + "xo": { + "rules": { + "import/extensions": "off" + } + } +} diff --git a/node_modules/nodemon/node_modules/debug/src/browser.js b/node_modules/nodemon/node_modules/debug/src/browser.js new file mode 100644 index 0000000..df8e179 --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/src/browser.js @@ -0,0 +1,272 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + let m; + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + // eslint-disable-next-line no-return-assign + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/node_modules/nodemon/node_modules/debug/src/common.js b/node_modules/nodemon/node_modules/debug/src/common.js new file mode 100644 index 0000000..528c7ec --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/src/common.js @@ -0,0 +1,292 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + const split = (typeof namespaces === 'string' ? namespaces : '') + .trim() + .replace(' ', ',') + .split(',') + .filter(Boolean); + + for (const ns of split) { + if (ns[0] === '-') { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + + /** + * Checks if the given string matches a namespace template, honoring + * asterisks as wildcards. + * + * @param {String} search + * @param {String} template + * @return {Boolean} + */ + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { + // Match character or proceed with wildcard + if (template[templateIndex] === '*') { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; // Skip the '*' + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition + // Backtrack to the last '*' and try to match more characters + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; // No match + } + } + + // Handle trailing '*' in template + while (templateIndex < template.length && template[templateIndex] === '*') { + templateIndex++; + } + + return templateIndex === template.length; + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/node_modules/nodemon/node_modules/debug/src/index.js b/node_modules/nodemon/node_modules/debug/src/index.js new file mode 100644 index 0000000..bf4c57f --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/node_modules/nodemon/node_modules/debug/src/node.js b/node_modules/nodemon/node_modules/debug/src/node.js new file mode 100644 index 0000000..715560a --- /dev/null +++ b/node_modules/nodemon/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/node_modules/nodemon/node_modules/ms/index.js b/node_modules/nodemon/node_modules/ms/index.js new file mode 100644 index 0000000..ea734fb --- /dev/null +++ b/node_modules/nodemon/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/nodemon/node_modules/ms/license.md b/node_modules/nodemon/node_modules/ms/license.md new file mode 100644 index 0000000..fa5d39b --- /dev/null +++ b/node_modules/nodemon/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Vercel, Inc. + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/nodemon/node_modules/ms/package.json b/node_modules/nodemon/node_modules/ms/package.json new file mode 100644 index 0000000..4997189 --- /dev/null +++ b/node_modules/nodemon/node_modules/ms/package.json @@ -0,0 +1,38 @@ +{ + "name": "ms", + "version": "2.1.3", + "description": "Tiny millisecond conversion utility", + "repository": "vercel/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.18.2", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1", + "prettier": "2.0.5" + } +} diff --git a/node_modules/nodemon/node_modules/ms/readme.md b/node_modules/nodemon/node_modules/ms/readme.md new file mode 100644 index 0000000..0fc1abb --- /dev/null +++ b/node_modules/nodemon/node_modules/ms/readme.md @@ -0,0 +1,59 @@ +# ms + +![CI](https://github.com/vercel/ms/workflows/CI/badge.svg) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/nodemon/package.json b/node_modules/nodemon/package.json new file mode 100644 index 0000000..bcf34c0 --- /dev/null +++ b/node_modules/nodemon/package.json @@ -0,0 +1,75 @@ +{ + "name": "nodemon", + "homepage": "https://nodemon.io", + "author": { + "name": "Remy Sharp", + "url": "https://github.com/remy" + }, + "bin": { + "nodemon": "./bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "repository": { + "type": "git", + "url": "https://github.com/remy/nodemon.git" + }, + "description": "Simple monitor script for use during development of a Node.js app.", + "keywords": [ + "cli", + "monitor", + "monitor", + "development", + "restart", + "autoload", + "reload", + "terminal" + ], + "license": "MIT", + "types": "./index.d.ts", + "main": "./lib/nodemon", + "scripts": { + "commitmsg": "commitlint -e", + "coverage": "istanbul cover _mocha -- --timeout 30000 --ui bdd --reporter list test/**/*.test.js", + "lint": "eslint lib/**/*.js", + "test": "npm run lint && npm run spec", + "spec": "for FILE in test/**/*.test.js; do echo $FILE; TEST=1 mocha --exit --timeout 30000 $FILE; if [ $? -ne 0 ]; then exit 1; fi; sleep 1; done", + "postspec": "npm run clean", + "clean": "rm -rf test/fixtures/test*.js test/fixtures/test*.md", + "web": "node web", + "semantic-release": "semantic-release", + "prepush": "npm run lint", + "killall": "ps auxww | grep node | grep -v grep | awk '{ print $2 }' | xargs kill -9" + }, + "devDependencies": { + "@commitlint/cli": "^11.0.0", + "@commitlint/config-conventional": "^11.0.0", + "async": "1.4.2", + "coffee-script": "~1.7.1", + "eslint": "^7.32.0", + "husky": "^7.0.4", + "mocha": "^2.5.3", + "nyc": "^15.1.0", + "proxyquire": "^1.8.0", + "semantic-release": "^18.0.0", + "should": "~4.0.0" + }, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "version": "3.1.9", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } +} diff --git a/node_modules/normalize-path/LICENSE b/node_modules/normalize-path/LICENSE new file mode 100644 index 0000000..d32ab44 --- /dev/null +++ b/node_modules/normalize-path/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/normalize-path/README.md b/node_modules/normalize-path/README.md new file mode 100644 index 0000000..726d4d6 --- /dev/null +++ b/node_modules/normalize-path/README.md @@ -0,0 +1,127 @@ +# normalize-path [![NPM version](https://img.shields.io/npm/v/normalize-path.svg?style=flat)](https://www.npmjs.com/package/normalize-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![NPM total downloads](https://img.shields.io/npm/dt/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/normalize-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/normalize-path) + +> Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save normalize-path +``` + +## Usage + +```js +const normalize = require('normalize-path'); + +console.log(normalize('\\foo\\bar\\baz\\')); +//=> '/foo/bar/baz' +``` + +**win32 namespaces** + +```js +console.log(normalize('\\\\?\\UNC\\Server01\\user\\docs\\Letter.txt')); +//=> '//?/UNC/Server01/user/docs/Letter.txt' + +console.log(normalize('\\\\.\\CdRomX')); +//=> '//./CdRomX' +``` + +**Consecutive slashes** + +Condenses multiple consecutive forward slashes (except for leading slashes in win32 namespaces) to a single slash. + +```js +console.log(normalize('.//foo//bar///////baz/')); +//=> './foo/bar/baz' +``` + +### Trailing slashes + +By default trailing slashes are removed. Pass `false` as the last argument to disable this behavior and _**keep** trailing slashes_: + +```js +console.log(normalize('foo\\bar\\baz\\', false)); //=> 'foo/bar/baz/' +console.log(normalize('./foo/bar/baz/', false)); //=> './foo/bar/baz/' +``` + +## Release history + +### v3.0 + +No breaking changes in this release. + +* a check was added to ensure that [win32 namespaces](https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces) are handled properly by win32 `path.parse()` after a path has been normalized by this library. +* a minor optimization was made to simplify how the trailing separator was handled + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +Other useful path-related libraries: + +* [contains-path](https://www.npmjs.com/package/contains-path): Return true if a file path contains the given path. | [homepage](https://github.com/jonschlinkert/contains-path "Return true if a file path contains the given path.") +* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.") +* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.") +* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Pollyfill for node.js `path.parse`, parses a filepath into an object. | [homepage](https://github.com/jonschlinkert/parse-filepath "Pollyfill for node.js `path.parse`, parses a filepath into an object.") +* [path-ends-with](https://www.npmjs.com/package/path-ends-with): Return `true` if a file path ends with the given string/suffix. | [homepage](https://github.com/jonschlinkert/path-ends-with "Return `true` if a file path ends with the given string/suffix.") +* [unixify](https://www.npmjs.com/package/unixify): Convert Windows file paths to unix paths. | [homepage](https://github.com/jonschlinkert/unixify "Convert Windows file paths to unix paths.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 35 | [jonschlinkert](https://github.com/jonschlinkert) | +| 1 | [phated](https://github.com/phated) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on April 19, 2018._ \ No newline at end of file diff --git a/node_modules/normalize-path/index.js b/node_modules/normalize-path/index.js new file mode 100644 index 0000000..6fac553 --- /dev/null +++ b/node_modules/normalize-path/index.js @@ -0,0 +1,35 @@ +/*! + * normalize-path + * + * Copyright (c) 2014-2018, Jon Schlinkert. + * Released under the MIT License. + */ + +module.exports = function(path, stripTrailing) { + if (typeof path !== 'string') { + throw new TypeError('expected path to be a string'); + } + + if (path === '\\' || path === '/') return '/'; + + var len = path.length; + if (len <= 1) return path; + + // ensure that win32 namespaces has two leading slashes, so that the path is + // handled properly by the win32 version of path.parse() after being normalized + // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces + var prefix = ''; + if (len > 4 && path[3] === '\\') { + var ch = path[2]; + if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { + path = path.slice(2); + prefix = '//'; + } + } + + var segs = path.split(/[/\\]+/); + if (stripTrailing !== false && segs[segs.length - 1] === '') { + segs.pop(); + } + return prefix + segs.join('/'); +}; diff --git a/node_modules/normalize-path/package.json b/node_modules/normalize-path/package.json new file mode 100644 index 0000000..ad61098 --- /dev/null +++ b/node_modules/normalize-path/package.json @@ -0,0 +1,77 @@ +{ + "name": "normalize-path", + "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", + "version": "3.0.0", + "homepage": "https://github.com/jonschlinkert/normalize-path", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Blaine Bublitz (https://twitter.com/BlaineBublitz)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "jonschlinkert/normalize-path", + "bugs": { + "url": "https://github.com/jonschlinkert/normalize-path/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^1.0.0", + "minimist": "^1.2.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "absolute", + "backslash", + "delimiter", + "file", + "file-path", + "filepath", + "fix", + "forward", + "fp", + "fs", + "normalize", + "path", + "relative", + "separator", + "slash", + "slashes", + "trailing", + "unix", + "urix" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "description": "Other useful path-related libraries:", + "list": [ + "contains-path", + "is-absolute", + "is-relative", + "parse-filepath", + "path-ends-with", + "path-ends-with", + "unixify" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/object-inspect/.eslintrc b/node_modules/object-inspect/.eslintrc new file mode 100644 index 0000000..21f9039 --- /dev/null +++ b/node_modules/object-inspect/.eslintrc @@ -0,0 +1,53 @@ +{ + "root": true, + "extends": "@ljharb", + "rules": { + "complexity": 0, + "func-style": [2, "declaration"], + "indent": [2, 4], + "max-lines": 1, + "max-lines-per-function": 1, + "max-params": [2, 4], + "max-statements": 0, + "max-statements-per-line": [2, { "max": 2 }], + "no-magic-numbers": 0, + "no-param-reassign": 1, + "strict": 0, // TODO + }, + "overrides": [ + { + "files": ["test/**", "test-*", "example/**"], + "extends": "@ljharb/eslint-config/tests", + "rules": { + "id-length": 0, + }, + }, + { + "files": ["example/**"], + "rules": { + "no-console": 0, + }, + }, + { + "files": ["test/browser/**"], + "env": { + "browser": true, + }, + }, + { + "files": ["test/bigint*"], + "rules": { + "new-cap": [2, { "capIsNewExceptions": ["BigInt"] }], + }, + }, + { + "files": "index.js", + "globals": { + "HTMLElement": false, + }, + "rules": { + "no-use-before-define": 1, + }, + }, + ], +} diff --git a/node_modules/object-inspect/.github/FUNDING.yml b/node_modules/object-inspect/.github/FUNDING.yml new file mode 100644 index 0000000..730276b --- /dev/null +++ b/node_modules/object-inspect/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/object-inspect +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/object-inspect/.nycrc b/node_modules/object-inspect/.nycrc new file mode 100644 index 0000000..58a5db7 --- /dev/null +++ b/node_modules/object-inspect/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "instrumentation": false, + "sourceMap": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "example", + "test", + "test-core-js.js" + ] +} diff --git a/node_modules/object-inspect/CHANGELOG.md b/node_modules/object-inspect/CHANGELOG.md new file mode 100644 index 0000000..bdf9002 --- /dev/null +++ b/node_modules/object-inspect/CHANGELOG.md @@ -0,0 +1,424 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.13.4](https://github.com/inspect-js/object-inspect/compare/v1.13.3...v1.13.4) - 2025-02-04 + +### Commits + +- [Fix] avoid being fooled by a `Symbol.toStringTag` [`fa5870d`](https://github.com/inspect-js/object-inspect/commit/fa5870da468a525d2f20193700f70752f506cbf7) +- [Tests] fix tests in node v6.0 - v6.4 [`2abfe1b`](https://github.com/inspect-js/object-inspect/commit/2abfe1bc3c69f9293c07c5cd65a9d7d87a628b84) +- [Dev Deps] update `es-value-fixtures`, `for-each`, `has-symbols` [`3edfb01`](https://github.com/inspect-js/object-inspect/commit/3edfb01cc8cce220fba0dfdfe2dc8bc955758cdd) + +## [v1.13.3](https://github.com/inspect-js/object-inspect/compare/v1.13.2...v1.13.3) - 2024-11-09 + +### Commits + +- [actions] split out node 10-20, and 20+ [`44395a8`](https://github.com/inspect-js/object-inspect/commit/44395a8fc1deda6718a5e125e86b9ffcaa1c7580) +- [Fix] `quoteStyle`: properly escape only the containing quotes [`5137f8f`](https://github.com/inspect-js/object-inspect/commit/5137f8f7bea69a7fc671bb683fd35f244f38fc52) +- [Refactor] clean up `quoteStyle` code [`450680c`](https://github.com/inspect-js/object-inspect/commit/450680cd50de4e689ee3b8e1d6db3a1bcf3fc18c) +- [Tests] add `quoteStyle` escaping tests [`e997c59`](https://github.com/inspect-js/object-inspect/commit/e997c595aeaea84fd98ca35d7e1c3b5ab3ae26e0) +- [Dev Deps] update `auto-changelog`, `es-value-fixtures`, `tape` [`d5a469c`](https://github.com/inspect-js/object-inspect/commit/d5a469c99ec07ccaeafc36ac4b36a93285086d48) +- [Tests] replace `aud` with `npm audit` [`fb7815f`](https://github.com/inspect-js/object-inspect/commit/fb7815f9b72cae277a04f65bbb0543f85b88be62) +- [Dev Deps] update `mock-property` [`11c817b`](https://github.com/inspect-js/object-inspect/commit/11c817bf10392aa017755962ba6bc89d731359ee) + +## [v1.13.2](https://github.com/inspect-js/object-inspect/compare/v1.13.1...v1.13.2) - 2024-06-21 + +### Commits + +- [readme] update badges [`8a51e6b`](https://github.com/inspect-js/object-inspect/commit/8a51e6bedaf389ec40cc4659e9df53e8543d176e) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`ef05f58`](https://github.com/inspect-js/object-inspect/commit/ef05f58c9761a41416ab907299bf0fa79517014b) +- [Dev Deps] update `error-cause`, `has-tostringtag`, `tape` [`c0c6c26`](https://github.com/inspect-js/object-inspect/commit/c0c6c26c44cee6671f7c5d43d2b91d27c5c00d90) +- [Fix] Don't throw when `global` is not defined [`d4d0965`](https://github.com/inspect-js/object-inspect/commit/d4d096570f7dbd0e03266a96de11d05eb7b63e0f) +- [meta] add missing `engines.node` [`17a352a`](https://github.com/inspect-js/object-inspect/commit/17a352af6fe1ba6b70a19081674231eb1a50c940) +- [Dev Deps] update `globalthis` [`9c08884`](https://github.com/inspect-js/object-inspect/commit/9c08884aa662a149e2f11403f413927736b97da7) +- [Dev Deps] update `error-cause` [`6af352d`](https://github.com/inspect-js/object-inspect/commit/6af352d7c3929a4cc4c55768c27bf547a5e900f4) +- [Dev Deps] update `npmignore` [`94e617d`](https://github.com/inspect-js/object-inspect/commit/94e617d38831722562fa73dff4c895746861d267) +- [Dev Deps] update `mock-property` [`2ac24d7`](https://github.com/inspect-js/object-inspect/commit/2ac24d7e58cd388ad093c33249e413e05bbfd6c3) +- [Dev Deps] update `tape` [`46125e5`](https://github.com/inspect-js/object-inspect/commit/46125e58f1d1dcfb170ed3d1ea69da550ea8d77b) + +## [v1.13.1](https://github.com/inspect-js/object-inspect/compare/v1.13.0...v1.13.1) - 2023-10-19 + +### Commits + +- [Fix] in IE 8, global can !== window despite them being prototypes of each other [`30d0859`](https://github.com/inspect-js/object-inspect/commit/30d0859dc4606cf75c2410edcd5d5c6355f8d372) + +## [v1.13.0](https://github.com/inspect-js/object-inspect/compare/v1.12.3...v1.13.0) - 2023-10-14 + +### Commits + +- [New] add special handling for the global object [`431bab2`](https://github.com/inspect-js/object-inspect/commit/431bab21a490ee51d35395966a504501e8c685da) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`fd4f619`](https://github.com/inspect-js/object-inspect/commit/fd4f6193562b4b0e95dcf5c0201b4e8cbbc4f58d) +- [Dev Deps] update `mock-property`, `tape` [`b453f6c`](https://github.com/inspect-js/object-inspect/commit/b453f6ceeebf8a1b738a1029754092e0367a4134) +- [Dev Deps] update `error-cause` [`e8ffc57`](https://github.com/inspect-js/object-inspect/commit/e8ffc577d73b92bb6a4b00c44f14e3319e374888) +- [Dev Deps] update `tape` [`054b8b9`](https://github.com/inspect-js/object-inspect/commit/054b8b9b98633284cf989e582450ebfbbe53503c) +- [Dev Deps] temporarily remove `aud` due to breaking change in transitive deps [`2476845`](https://github.com/inspect-js/object-inspect/commit/2476845e0678dd290c541c81cd3dec8420782c52) +- [Dev Deps] pin `glob`, since v10.3.8+ requires a broken `jackspeak` [`383fa5e`](https://github.com/inspect-js/object-inspect/commit/383fa5eebc0afd705cc778a4b49d8e26452e49a8) +- [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 [`68c244c`](https://github.com/inspect-js/object-inspect/commit/68c244c5174cdd877e5dcb8ee90aa3f44b2f25be) + +## [v1.12.3](https://github.com/inspect-js/object-inspect/compare/v1.12.2...v1.12.3) - 2023-01-12 + +### Commits + +- [Fix] in eg FF 24, collections lack forEach [`75fc226`](https://github.com/inspect-js/object-inspect/commit/75fc22673c82d45f28322b1946bb0eb41b672b7f) +- [actions] update rebase action to use reusable workflow [`250a277`](https://github.com/inspect-js/object-inspect/commit/250a277a095e9dacc029ab8454dcfc15de549dcd) +- [Dev Deps] update `aud`, `es-value-fixtures`, `tape` [`66a19b3`](https://github.com/inspect-js/object-inspect/commit/66a19b3209ccc3c5ef4b34c3cb0160e65d1ce9d5) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `error-cause` [`c43d332`](https://github.com/inspect-js/object-inspect/commit/c43d3324b48384a16fd3dc444e5fc589d785bef3) +- [Tests] add `@pkgjs/support` to `postlint` [`e2618d2`](https://github.com/inspect-js/object-inspect/commit/e2618d22a7a3fa361b6629b53c1752fddc9c4d80) + +## [v1.12.2](https://github.com/inspect-js/object-inspect/compare/v1.12.1...v1.12.2) - 2022-05-26 + +### Commits + +- [Fix] use `util.inspect` for a custom inspection symbol method [`e243bf2`](https://github.com/inspect-js/object-inspect/commit/e243bf2eda6c4403ac6f1146fddb14d12e9646c1) +- [meta] add support info [`ca20ba3`](https://github.com/inspect-js/object-inspect/commit/ca20ba35713c17068ca912a86c542f5e8acb656c) +- [Fix] ignore `cause` in node v16.9 and v16.10 where it has a bug [`86aa553`](https://github.com/inspect-js/object-inspect/commit/86aa553a4a455562c2c56f1540f0bf857b9d314b) + +## [v1.12.1](https://github.com/inspect-js/object-inspect/compare/v1.12.0...v1.12.1) - 2022-05-21 + +### Commits + +- [Tests] use `mock-property` [`4ec8893`](https://github.com/inspect-js/object-inspect/commit/4ec8893ea9bfd28065ca3638cf6762424bf44352) +- [meta] use `npmignore` to autogenerate an npmignore file [`07f868c`](https://github.com/inspect-js/object-inspect/commit/07f868c10bd25a9d18686528339bb749c211fc9a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`b05244b`](https://github.com/inspect-js/object-inspect/commit/b05244b4f331e00c43b3151bc498041be77ccc91) +- [Dev Deps] update `@ljharb/eslint-config`, `error-cause`, `es-value-fixtures`, `functions-have-names`, `tape` [`d037398`](https://github.com/inspect-js/object-inspect/commit/d037398dcc5d531532e4c19c4a711ed677f579c1) +- [Fix] properly handle callable regexes in older engines [`848fe48`](https://github.com/inspect-js/object-inspect/commit/848fe48bd6dd0064ba781ee6f3c5e54a94144c37) + +## [v1.12.0](https://github.com/inspect-js/object-inspect/compare/v1.11.1...v1.12.0) - 2021-12-18 + +### Commits + +- [New] add `numericSeparator` boolean option [`2d2d537`](https://github.com/inspect-js/object-inspect/commit/2d2d537f5359a4300ce1c10241369f8024f89e11) +- [Robustness] cache more prototype methods [`191533d`](https://github.com/inspect-js/object-inspect/commit/191533da8aec98a05eadd73a5a6e979c9c8653e8) +- [New] ensure an Error’s `cause` is displayed [`53bc2ce`](https://github.com/inspect-js/object-inspect/commit/53bc2cee4e5a9cc4986f3cafa22c0685f340715e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`bc164b6`](https://github.com/inspect-js/object-inspect/commit/bc164b6e2e7d36b263970f16f54de63048b84a36) +- [Robustness] cache `RegExp.prototype.test` [`a314ab8`](https://github.com/inspect-js/object-inspect/commit/a314ab8271b905cbabc594c82914d2485a8daf12) +- [meta] fix auto-changelog settings [`5ed0983`](https://github.com/inspect-js/object-inspect/commit/5ed0983be72f73e32e2559997517a95525c7e20d) + +## [v1.11.1](https://github.com/inspect-js/object-inspect/compare/v1.11.0...v1.11.1) - 2021-12-05 + +### Commits + +- [meta] add `auto-changelog` [`7dbdd22`](https://github.com/inspect-js/object-inspect/commit/7dbdd228401d6025d8b7391476d88aee9ea9bbdf) +- [actions] reuse common workflows [`c8823bc`](https://github.com/inspect-js/object-inspect/commit/c8823bc0a8790729680709d45fb6e652432e91aa) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`7532b12`](https://github.com/inspect-js/object-inspect/commit/7532b120598307497b712890f75af8056f6d37a6) +- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`94abb5d`](https://github.com/inspect-js/object-inspect/commit/94abb5d4e745bf33253942dea86b3e538d2ff6c6) +- [actions] update codecov uploader [`5ed5102`](https://github.com/inspect-js/object-inspect/commit/5ed51025267a00e53b1341357315490ac4eb0874) +- [Dev Deps] update `eslint`, `tape` [`37b2ad2`](https://github.com/inspect-js/object-inspect/commit/37b2ad26c08d94bfd01d5d07069a0b28ef4e2ad7) +- [meta] add `sideEffects` flag [`d341f90`](https://github.com/inspect-js/object-inspect/commit/d341f905ef8bffa6a694cda6ddc5ba343532cd4f) + +## [v1.11.0](https://github.com/inspect-js/object-inspect/compare/v1.10.3...v1.11.0) - 2021-07-12 + +### Commits + +- [New] `customInspect`: add `symbol` option, to mimic modern util.inspect behavior [`e973a6e`](https://github.com/inspect-js/object-inspect/commit/e973a6e21f8140c5837cf25e9d89bdde88dc3120) +- [Dev Deps] update `eslint` [`05f1cb3`](https://github.com/inspect-js/object-inspect/commit/05f1cb3cbcfe1f238e8b51cf9bc294305b7ed793) + +## [v1.10.3](https://github.com/inspect-js/object-inspect/compare/v1.10.2...v1.10.3) - 2021-05-07 + +### Commits + +- [Fix] handle core-js Symbol shams [`4acfc2c`](https://github.com/inspect-js/object-inspect/commit/4acfc2c4b503498759120eb517abad6d51c9c5d6) +- [readme] update badges [`95c323a`](https://github.com/inspect-js/object-inspect/commit/95c323ad909d6cbabb95dd6015c190ba6db9c1f2) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud` [`cb38f48`](https://github.com/inspect-js/object-inspect/commit/cb38f485de6ec7a95109b5a9bbd0a1deba2f6611) + +## [v1.10.2](https://github.com/inspect-js/object-inspect/compare/v1.10.1...v1.10.2) - 2021-04-17 + +### Commits + +- [Fix] use a robust check for a boxed Symbol [`87f12d6`](https://github.com/inspect-js/object-inspect/commit/87f12d6e69ce530be04659c81a4cd502943acac5) + +## [v1.10.1](https://github.com/inspect-js/object-inspect/compare/v1.10.0...v1.10.1) - 2021-04-17 + +### Commits + +- [Fix] use a robust check for a boxed bigint [`d5ca829`](https://github.com/inspect-js/object-inspect/commit/d5ca8298b6d2e5c7b9334a5b21b96ed95d225c91) + +## [v1.10.0](https://github.com/inspect-js/object-inspect/compare/v1.9.0...v1.10.0) - 2021-04-17 + +### Commits + +- [Tests] increase coverage [`d8abb8a`](https://github.com/inspect-js/object-inspect/commit/d8abb8a62c2f084919df994a433b346e0d87a227) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`4bfec2e`](https://github.com/inspect-js/object-inspect/commit/4bfec2e30aaef6ddef6cbb1448306f9f8b9520b7) +- [New] respect `Symbol.toStringTag` on objects [`799b58f`](https://github.com/inspect-js/object-inspect/commit/799b58f536a45e4484633a8e9daeb0330835f175) +- [Fix] do not allow Symbol.toStringTag to masquerade as builtins [`d6c5b37`](https://github.com/inspect-js/object-inspect/commit/d6c5b37d7e94427796b82432fb0c8964f033a6ab) +- [New] add `WeakRef` support [`b6d898e`](https://github.com/inspect-js/object-inspect/commit/b6d898ee21868c780a7ee66b28532b5b34ed7f09) +- [meta] do not publish github action workflow files [`918cdfc`](https://github.com/inspect-js/object-inspect/commit/918cdfc4b6fe83f559ff6ef04fe66201e3ff5cbd) +- [meta] create `FUNDING.yml` [`0bb5fc5`](https://github.com/inspect-js/object-inspect/commit/0bb5fc516dbcd2cd728bd89cee0b580acc5ce301) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`22c8dc0`](https://github.com/inspect-js/object-inspect/commit/22c8dc0cac113d70f4781e49a950070923a671be) +- [meta] use `prepublishOnly` script for npm 7+ [`e52ee09`](https://github.com/inspect-js/object-inspect/commit/e52ee09e8050b8dbac94ef57f786675567728223) +- [Dev Deps] update `eslint` [`7c4e6fd`](https://github.com/inspect-js/object-inspect/commit/7c4e6fdedcd27cc980e13c9ad834d05a96f3d40c) + +## [v1.9.0](https://github.com/inspect-js/object-inspect/compare/v1.8.0...v1.9.0) - 2020-11-30 + +### Commits + +- [Tests] migrate tests to Github Actions [`d262251`](https://github.com/inspect-js/object-inspect/commit/d262251e13e16d3490b5473672f6b6d6ff86675d) +- [New] add enumerable own Symbols to plain object output [`ee60c03`](https://github.com/inspect-js/object-inspect/commit/ee60c033088cff9d33baa71e59a362a541b48284) +- [Tests] add passing tests [`01ac3e4`](https://github.com/inspect-js/object-inspect/commit/01ac3e4b5a30f97875a63dc9b1416b3bd626afc9) +- [actions] add "Require Allow Edits" action [`c2d7746`](https://github.com/inspect-js/object-inspect/commit/c2d774680cde4ca4af332d84d4121b26f798ba9e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js` [`70058de`](https://github.com/inspect-js/object-inspect/commit/70058de1579fc54d1d15ed6c2dbe246637ce70ff) +- [Fix] hex characters in strings should be uppercased, to match node `assert` [`6ab8faa`](https://github.com/inspect-js/object-inspect/commit/6ab8faaa0abc08fe7a8e2afd8b39c6f1f0e00113) +- [Tests] run `nyc` on all tests [`4c47372`](https://github.com/inspect-js/object-inspect/commit/4c473727879ddc8e28b599202551ddaaf07b6210) +- [Tests] node 0.8 has an unpredictable property order; fix `groups` test by removing property [`f192069`](https://github.com/inspect-js/object-inspect/commit/f192069a978a3b60e6f0e0d45ac7df260ab9a778) +- [New] add enumerable properties to Function inspect result, per node’s `assert` [`fd38e1b`](https://github.com/inspect-js/object-inspect/commit/fd38e1bc3e2a1dc82091ce3e021917462eee64fc) +- [Tests] fix tests for node < 10, due to regex match `groups` [`2ac6462`](https://github.com/inspect-js/object-inspect/commit/2ac6462cc4f72eaa0b63a8cfee9aabe3008b2330) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`44b59e2`](https://github.com/inspect-js/object-inspect/commit/44b59e2676a7f825ef530dfd19dafb599e3b9456) +- [Robustness] cache `Symbol.prototype.toString` [`f3c2074`](https://github.com/inspect-js/object-inspect/commit/f3c2074d8f32faf8292587c07c9678ea931703dd) +- [Dev Deps] update `eslint` [`9411294`](https://github.com/inspect-js/object-inspect/commit/94112944b9245e3302e25453277876402d207e7f) +- [meta] `require-allow-edits` no longer requires an explicit github token [`36c0220`](https://github.com/inspect-js/object-inspect/commit/36c02205de3c2b0e84d53777c5c9fd54a36c48ab) +- [actions] update rebase checkout action to v2 [`55a39a6`](https://github.com/inspect-js/object-inspect/commit/55a39a64e944f19c6a7d8efddf3df27700f20d14) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`f59fd3c`](https://github.com/inspect-js/object-inspect/commit/f59fd3cf406c3a7c7ece140904a80bbc6bacfcca) +- [Dev Deps] update `eslint` [`a492bec`](https://github.com/inspect-js/object-inspect/commit/a492becec644b0155c9c4bc1caf6f9fac11fb2c7) + +## [v1.8.0](https://github.com/inspect-js/object-inspect/compare/v1.7.0...v1.8.0) - 2020-06-18 + +### Fixed + +- [New] add `indent` option [`#27`](https://github.com/inspect-js/object-inspect/issues/27) + +### Commits + +- [Tests] add codecov [`4324cbb`](https://github.com/inspect-js/object-inspect/commit/4324cbb1a2bd7710822a4151ff373570db22453e) +- [New] add `maxStringLength` option [`b3995cb`](https://github.com/inspect-js/object-inspect/commit/b3995cb71e15b5ee127a3094c43994df9d973502) +- [New] add `customInspect` option, to disable custom inspect methods [`28b9179`](https://github.com/inspect-js/object-inspect/commit/28b9179ee802bb3b90810100c11637db90c2fb6d) +- [Tests] add Date and RegExp tests [`3b28eca`](https://github.com/inspect-js/object-inspect/commit/3b28eca57b0367aeadffac604ea09e8bdae7d97b) +- [actions] add automatic rebasing / merge commit blocking [`0d9c6c0`](https://github.com/inspect-js/object-inspect/commit/0d9c6c044e83475ff0bfffb9d35b149834c83a2e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `tape`; add `aud` [`7c204f2`](https://github.com/inspect-js/object-inspect/commit/7c204f22b9e41bc97147f4d32d4cb045b17769a6) +- [readme] fix repo URLs, remove testling [`34ca9a0`](https://github.com/inspect-js/object-inspect/commit/34ca9a0dabfe75bd311f806a326fadad029909a3) +- [Fix] when truncating a deep array, note it as `[Array]` instead of just `[Object]` [`f74c82d`](https://github.com/inspect-js/object-inspect/commit/f74c82dd0b35386445510deb250f34c41be3ec0e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`1a8a5ea`](https://github.com/inspect-js/object-inspect/commit/1a8a5ea069ea2bee89d77caedad83ffa23d35711) +- [Fix] do not be fooled by a function’s own `toString` method [`7cb5c65`](https://github.com/inspect-js/object-inspect/commit/7cb5c657a976f94715c19c10556a30f15bb7d5d7) +- [patch] indicate explicitly that anon functions are anonymous, to match node [`81ebdd4`](https://github.com/inspect-js/object-inspect/commit/81ebdd4215005144074bbdff3f6bafa01407910a) +- [Dev Deps] loosen the `core-js` dep [`e7472e8`](https://github.com/inspect-js/object-inspect/commit/e7472e8e242117670560bd995830c2a4d12080f5) +- [Dev Deps] update `tape` [`699827e`](https://github.com/inspect-js/object-inspect/commit/699827e6b37258b5203c33c78c009bf4b0e6a66d) +- [meta] add `safe-publish-latest` [`c5d2868`](https://github.com/inspect-js/object-inspect/commit/c5d2868d6eb33c472f37a20f89ceef2787046088) +- [Dev Deps] update `@ljharb/eslint-config` [`9199501`](https://github.com/inspect-js/object-inspect/commit/919950195d486114ccebacbdf9d74d7f382693b0) + +## [v1.7.0](https://github.com/inspect-js/object-inspect/compare/v1.6.0...v1.7.0) - 2019-11-10 + +### Commits + +- [Tests] use shared travis-ci configs [`19899ed`](https://github.com/inspect-js/object-inspect/commit/19899edbf31f4f8809acf745ce34ad1ce1bfa63b) +- [Tests] add linting [`a00f057`](https://github.com/inspect-js/object-inspect/commit/a00f057d917f66ea26dd37769c6b810ec4af97e8) +- [Tests] lint last file [`2698047`](https://github.com/inspect-js/object-inspect/commit/2698047b58af1e2e88061598ef37a75f228dddf6) +- [Tests] up to `node` `v12.7`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`589e87a`](https://github.com/inspect-js/object-inspect/commit/589e87a99cadcff4b600e6a303418e9d922836e8) +- [New] add support for `WeakMap` and `WeakSet` [`3ddb3e4`](https://github.com/inspect-js/object-inspect/commit/3ddb3e4e0c8287130c61a12e0ed9c104b1549306) +- [meta] clean up license so github can detect it properly [`27527bb`](https://github.com/inspect-js/object-inspect/commit/27527bb801520c9610c68cc3b55d6f20a2bee56d) +- [Tests] cover `util.inspect.custom` [`36d47b9`](https://github.com/inspect-js/object-inspect/commit/36d47b9c59056a57ef2f1491602c726359561800) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `tape` [`b614eaa`](https://github.com/inspect-js/object-inspect/commit/b614eaac901da0e5c69151f534671f990a94cace) +- [Tests] fix coverage thresholds [`7b7b176`](https://github.com/inspect-js/object-inspect/commit/7b7b176e15f8bd6e8b2f261ff5a493c2fe78d9c2) +- [Tests] bigint tests now can run on unflagged node [`063af31`](https://github.com/inspect-js/object-inspect/commit/063af31ce9cd13c202e3b67c07ba06dc9b7c0f81) +- [Refactor] add early bailout to `isMap` and `isSet` checks [`fc51047`](https://github.com/inspect-js/object-inspect/commit/fc5104714a3671d37e225813db79470d6335683b) +- [meta] add `funding` field [`7f9953a`](https://github.com/inspect-js/object-inspect/commit/7f9953a113eec7b064a6393cf9f90ba15f1d131b) +- [Tests] Fix invalid strict-mode syntax with hexadecimal [`a8b5425`](https://github.com/inspect-js/object-inspect/commit/a8b542503b4af1599a275209a1a99f5fdedb1ead) +- [Dev Deps] update `@ljharb/eslint-config` [`98df157`](https://github.com/inspect-js/object-inspect/commit/98df1577314d9188a3fc3f17fdcf2fba697ae1bd) +- add copyright to LICENSE [`bb69fd0`](https://github.com/inspect-js/object-inspect/commit/bb69fd017a062d299e44da1f9b2c7dcd67f621e6) +- [Tests] use `npx aud` in `posttest` [`4838353`](https://github.com/inspect-js/object-inspect/commit/4838353593974cf7f905b9ef04c03c094f0cdbe2) +- [Tests] move `0.6` to allowed failures, because it won‘t build on travis [`1bff32a`](https://github.com/inspect-js/object-inspect/commit/1bff32aa52e8aea687f0856b28ba754b3e43ebf7) + +## [v1.6.0](https://github.com/inspect-js/object-inspect/compare/v1.5.0...v1.6.0) - 2018-05-02 + +### Commits + +- [New] add support for boxed BigInt primitives [`356c66a`](https://github.com/inspect-js/object-inspect/commit/356c66a410e7aece7162c8319880a5ef647beaa9) +- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`c77b65b`](https://github.com/inspect-js/object-inspect/commit/c77b65bba593811b906b9ec57561c5cba92e2db3) +- [New] Add support for upcoming `BigInt` [`1ac548e`](https://github.com/inspect-js/object-inspect/commit/1ac548e4b27e26466c28c9a5e63e5d4e0591c31f) +- [Tests] run bigint tests in CI with --harmony-bigint flag [`d31b738`](https://github.com/inspect-js/object-inspect/commit/d31b73831880254b5c6cf5691cda9a149fbc5f04) +- [Dev Deps] update `core-js`, `tape` [`ff9eff6`](https://github.com/inspect-js/object-inspect/commit/ff9eff67113341ee1aaf80c1c22d683f43bfbccf) +- [Docs] fix example to use `safer-buffer` [`48cae12`](https://github.com/inspect-js/object-inspect/commit/48cae12a73ec6cacc955175bc56bbe6aee6a211f) + +## [v1.5.0](https://github.com/inspect-js/object-inspect/compare/v1.4.1...v1.5.0) - 2017-12-25 + +### Commits + +- [New] add `quoteStyle` option [`f5a72d2`](https://github.com/inspect-js/object-inspect/commit/f5a72d26edb3959b048f74c056ca7100a6b091e4) +- [Tests] add more test coverage [`30ebe4e`](https://github.com/inspect-js/object-inspect/commit/30ebe4e1fa943b99ecbb85be7614256d536e2759) +- [Tests] require 0.6 to pass [`99a008c`](https://github.com/inspect-js/object-inspect/commit/99a008ccace189a60fd7da18bf00e32c9572b980) + +## [v1.4.1](https://github.com/inspect-js/object-inspect/compare/v1.4.0...v1.4.1) - 2017-12-19 + +### Commits + +- [Tests] up to `node` `v9.3`, `v8.9`, `v6.12` [`6674476`](https://github.com/inspect-js/object-inspect/commit/6674476cc56acaac1bde96c84fed5ef631911906) +- [Fix] `inspect(Object(-0))` should be “Object(-0)”, not “Object(0)” [`d0a031f`](https://github.com/inspect-js/object-inspect/commit/d0a031f1cbb3024ee9982bfe364dd18a7e4d1bd3) + +## [v1.4.0](https://github.com/inspect-js/object-inspect/compare/v1.3.0...v1.4.0) - 2017-10-24 + +### Commits + +- [Tests] add `npm run coverage` [`3b48fb2`](https://github.com/inspect-js/object-inspect/commit/3b48fb25db037235eeb808f0b2830aad7aa36f70) +- [Tests] remove commented-out osx builds [`71e24db`](https://github.com/inspect-js/object-inspect/commit/71e24db8ad6ee3b9b381c5300b0475f2ba595a73) +- [New] add support for `util.inspect.custom`, in node only. [`20cca77`](https://github.com/inspect-js/object-inspect/commit/20cca7762d7e17f15b21a90793dff84acce155df) +- [Tests] up to `node` `v8.6`; use `nvm install-latest-npm` to ensure new npm doesn’t break old node [`252952d`](https://github.com/inspect-js/object-inspect/commit/252952d230d8065851dd3d4d5fe8398aae068529) +- [Tests] up to `node` `v8.8` [`4aa868d`](https://github.com/inspect-js/object-inspect/commit/4aa868d3a62914091d489dd6ec6eed194ee67cd3) +- [Dev Deps] update `core-js`, `tape` [`59483d1`](https://github.com/inspect-js/object-inspect/commit/59483d1df418f852f51fa0db7b24aa6b0209a27a) + +## [v1.3.0](https://github.com/inspect-js/object-inspect/compare/v1.2.2...v1.3.0) - 2017-07-31 + +### Fixed + +- [Fix] Map/Set: work around core-js bug < v2.5.0 [`#9`](https://github.com/inspect-js/object-inspect/issues/9) + +### Commits + +- [New] add support for arrays with additional object keys [`0d19937`](https://github.com/inspect-js/object-inspect/commit/0d199374ee37959e51539616666f420ccb29acb9) +- [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`; fix new npm breaking on older nodes [`e24784a`](https://github.com/inspect-js/object-inspect/commit/e24784a90c49117787157a12a63897c49cf89bbb) +- Only apps should have lockfiles [`c6faebc`](https://github.com/inspect-js/object-inspect/commit/c6faebcb2ee486a889a4a1c4d78c0776c7576185) +- [Dev Deps] update `tape` [`7345a0a`](https://github.com/inspect-js/object-inspect/commit/7345a0aeba7e91b888a079c10004d17696a7f586) + +## [v1.2.2](https://github.com/inspect-js/object-inspect/compare/v1.2.1...v1.2.2) - 2017-03-24 + +### Commits + +- [Tests] up to `node` `v7.7`, `v6.10`, `v4.8`; improve test matrix [`a2ddc15`](https://github.com/inspect-js/object-inspect/commit/a2ddc15a1f2c65af18076eea1c0eb9cbceb478a0) +- [Tests] up to `node` `v7.0`, `v6.9`, `v5.12`, `v4.6`, `io.js` `v3.3`; improve test matrix [`a48949f`](https://github.com/inspect-js/object-inspect/commit/a48949f6b574b2d4d2298109d8e8d0eb3e7a83e7) +- [Performance] check for primitive types as early as possible. [`3b8092a`](https://github.com/inspect-js/object-inspect/commit/3b8092a2a4deffd0575f94334f00194e2d48dad3) +- [Refactor] remove unneeded `else`s. [`7255034`](https://github.com/inspect-js/object-inspect/commit/725503402e08de4f96f6bf2d8edef44ac36f26b6) +- [Refactor] avoid recreating `lowbyte` function every time. [`81edd34`](https://github.com/inspect-js/object-inspect/commit/81edd3475bd15bdd18e84de7472033dcf5004aaa) +- [Fix] differentiate -0 from 0 [`521d345`](https://github.com/inspect-js/object-inspect/commit/521d3456b009da7bf1c5785c8a9df5a9f8718264) +- [Refactor] move object key gathering into separate function [`aca6265`](https://github.com/inspect-js/object-inspect/commit/aca626536eaeef697196c6e9db3e90e7e0355b6a) +- [Refactor] consolidate wrapping logic for boxed primitives into a function. [`4e440cd`](https://github.com/inspect-js/object-inspect/commit/4e440cd9065df04802a2a1dead03f48c353ca301) +- [Robustness] use `typeof` instead of comparing to literal `undefined` [`5ca6f60`](https://github.com/inspect-js/object-inspect/commit/5ca6f601937506daff8ed2fcf686363b55807b69) +- [Refactor] consolidate Map/Set notations. [`4e576e5`](https://github.com/inspect-js/object-inspect/commit/4e576e5d7ed2f9ec3fb7f37a0d16732eb10758a9) +- [Tests] ensure that this function remains anonymous, despite ES6 name inference. [`7540ae5`](https://github.com/inspect-js/object-inspect/commit/7540ae591278756db614fa4def55ca413150e1a3) +- [Refactor] explicitly coerce Error objects to strings. [`7f4ca84`](https://github.com/inspect-js/object-inspect/commit/7f4ca8424ee8dc2c0ca5a422d94f7fac40327261) +- [Refactor] split up `var` declarations for debuggability [`6f2c11e`](https://github.com/inspect-js/object-inspect/commit/6f2c11e6a85418586a00292dcec5e97683f89bc3) +- [Robustness] cache `Object.prototype.toString` [`df44a20`](https://github.com/inspect-js/object-inspect/commit/df44a20adfccf31529d60d1df2079bfc3c836e27) +- [Dev Deps] update `tape` [`3ec714e`](https://github.com/inspect-js/object-inspect/commit/3ec714eba57bc3f58a6eb4fca1376f49e70d300a) +- [Dev Deps] update `tape` [`beb72d9`](https://github.com/inspect-js/object-inspect/commit/beb72d969653747d7cde300393c28755375329b0) + +## [v1.2.1](https://github.com/inspect-js/object-inspect/compare/v1.2.0...v1.2.1) - 2016-04-09 + +### Fixed + +- [Fix] fix Boolean `false` object inspection. [`#7`](https://github.com/substack/object-inspect/pull/7) + +## [v1.2.0](https://github.com/inspect-js/object-inspect/compare/v1.1.0...v1.2.0) - 2016-04-09 + +### Fixed + +- [New] add support for inspecting String/Number/Boolean objects. [`#6`](https://github.com/inspect-js/object-inspect/issues/6) + +### Commits + +- [Dev Deps] update `tape` [`742caa2`](https://github.com/inspect-js/object-inspect/commit/742caa262cf7af4c815d4821c8bd0129c1446432) + +## [v1.1.0](https://github.com/inspect-js/object-inspect/compare/1.0.2...v1.1.0) - 2015-12-14 + +### Merged + +- [New] add ES6 Map/Set support. [`#4`](https://github.com/inspect-js/object-inspect/pull/4) + +### Fixed + +- [New] add ES6 Map/Set support. [`#3`](https://github.com/inspect-js/object-inspect/issues/3) + +### Commits + +- Update `travis.yml` to test on bunches of `iojs` and `node` versions. [`4c1fd65`](https://github.com/inspect-js/object-inspect/commit/4c1fd65cc3bd95307e854d114b90478324287fd2) +- [Dev Deps] update `tape` [`88a907e`](https://github.com/inspect-js/object-inspect/commit/88a907e33afbe408e4b5d6e4e42a33143f88848c) + +## [1.0.2](https://github.com/inspect-js/object-inspect/compare/1.0.1...1.0.2) - 2015-08-07 + +### Commits + +- [Fix] Cache `Object.prototype.hasOwnProperty` in case it's deleted later. [`1d0075d`](https://github.com/inspect-js/object-inspect/commit/1d0075d3091dc82246feeb1f9871cb2b8ed227b3) +- [Dev Deps] Update `tape` [`ca8d5d7`](https://github.com/inspect-js/object-inspect/commit/ca8d5d75635ddbf76f944e628267581e04958457) +- gitignore node_modules since this is a reusable modules. [`ed41407`](https://github.com/inspect-js/object-inspect/commit/ed41407811743ca530cdeb28f982beb96026af82) + +## [1.0.1](https://github.com/inspect-js/object-inspect/compare/1.0.0...1.0.1) - 2015-07-19 + +### Commits + +- Make `inspect` work with symbol primitives and objects, including in node 0.11 and 0.12. [`ddf1b94`](https://github.com/inspect-js/object-inspect/commit/ddf1b94475ab951f1e3bccdc0a48e9073cfbfef4) +- bump tape [`103d674`](https://github.com/inspect-js/object-inspect/commit/103d67496b504bdcfdd765d303a773f87ec106e2) +- use newer travis config [`d497276`](https://github.com/inspect-js/object-inspect/commit/d497276c1da14234bb5098a59cf20de75fbc316a) + +## [1.0.0](https://github.com/inspect-js/object-inspect/compare/0.4.0...1.0.0) - 2014-08-05 + +### Commits + +- error inspect works properly [`260a22d`](https://github.com/inspect-js/object-inspect/commit/260a22d134d3a8a482c67d52091c6040c34f4299) +- seen coverage [`57269e8`](https://github.com/inspect-js/object-inspect/commit/57269e8baa992a7439047f47325111fdcbcb8417) +- htmlelement instance coverage [`397ffe1`](https://github.com/inspect-js/object-inspect/commit/397ffe10a1980350868043ef9de65686d438979f) +- more element coverage [`6905cc2`](https://github.com/inspect-js/object-inspect/commit/6905cc2f7df35600177e613b0642b4df5efd3eca) +- failing test for type errors [`385b615`](https://github.com/inspect-js/object-inspect/commit/385b6152e49b51b68449a662f410b084ed7c601a) +- fn name coverage [`edc906d`](https://github.com/inspect-js/object-inspect/commit/edc906d40fca6b9194d304062c037ee8e398c4c2) +- server-side element test [`362d1d3`](https://github.com/inspect-js/object-inspect/commit/362d1d3e86f187651c29feeb8478110afada385b) +- custom inspect fn [`e89b0f6`](https://github.com/inspect-js/object-inspect/commit/e89b0f6fe6d5e03681282af83732a509160435a6) +- fixed browser test [`b530882`](https://github.com/inspect-js/object-inspect/commit/b5308824a1c8471c5617e394766a03a6977102a9) +- depth test, matches node [`1cfd9e0`](https://github.com/inspect-js/object-inspect/commit/1cfd9e0285a4ae1dff44101ad482915d9bf47e48) +- exercise hasOwnProperty path [`8d753fb`](https://github.com/inspect-js/object-inspect/commit/8d753fb362a534fa1106e4d80f2ee9bea06a66d9) +- more cases covered for errors [`c5c46a5`](https://github.com/inspect-js/object-inspect/commit/c5c46a569ec4606583497e8550f0d8c7ad39a4a4) +- \W obj key test case [`b0eceee`](https://github.com/inspect-js/object-inspect/commit/b0eceeea6e0eb94d686c1046e99b9e25e5005f75) +- coverage for explicit depth param [`e12b91c`](https://github.com/inspect-js/object-inspect/commit/e12b91cd59683362f3a0e80f46481a0211e26c15) + +## [0.4.0](https://github.com/inspect-js/object-inspect/compare/0.3.1...0.4.0) - 2014-03-21 + +### Commits + +- passing lowbyte interpolation test [`b847511`](https://github.com/inspect-js/object-inspect/commit/b8475114f5def7e7961c5353d48d3d8d9a520985) +- lowbyte test [`4a2b0e1`](https://github.com/inspect-js/object-inspect/commit/4a2b0e142667fc933f195472759385ac08f3946c) + +## [0.3.1](https://github.com/inspect-js/object-inspect/compare/0.3.0...0.3.1) - 2014-03-04 + +### Commits + +- sort keys [`a07b19c`](https://github.com/inspect-js/object-inspect/commit/a07b19cc3b1521a82d4fafb6368b7a9775428a05) + +## [0.3.0](https://github.com/inspect-js/object-inspect/compare/0.2.0...0.3.0) - 2014-03-04 + +### Commits + +- [] and {} instead of [ ] and { } [`654c44b`](https://github.com/inspect-js/object-inspect/commit/654c44b2865811f3519e57bb8526e0821caf5c6b) + +## [0.2.0](https://github.com/inspect-js/object-inspect/compare/0.1.3...0.2.0) - 2014-03-04 + +### Commits + +- failing holes test [`99cdfad`](https://github.com/inspect-js/object-inspect/commit/99cdfad03c6474740275a75636fe6ca86c77737a) +- regex already work [`e324033`](https://github.com/inspect-js/object-inspect/commit/e324033267025995ec97d32ed0a65737c99477a6) +- failing undef/null test [`1f88a00`](https://github.com/inspect-js/object-inspect/commit/1f88a00265d3209719dda8117b7e6360b4c20943) +- holes in the all example [`7d345f3`](https://github.com/inspect-js/object-inspect/commit/7d345f3676dcbe980cff89a4f6c243269ebbb709) +- check for .inspect(), fixes Buffer use-case [`c3f7546`](https://github.com/inspect-js/object-inspect/commit/c3f75466dbca125347d49847c05262c292f12b79) +- fixes for holes [`ce25f73`](https://github.com/inspect-js/object-inspect/commit/ce25f736683de4b92ff27dc5471218415e2d78d8) +- weird null behavior [`405c1ea`](https://github.com/inspect-js/object-inspect/commit/405c1ea72cd5a8cf3b498c3eaa903d01b9fbcab5) +- tape is actually a devDependency, upgrade [`703b0ce`](https://github.com/inspect-js/object-inspect/commit/703b0ce6c5817b4245a082564bccd877e0bb6990) +- put date in the example [`a342219`](https://github.com/inspect-js/object-inspect/commit/a3422190eeaa013215f46df2d0d37b48595ac058) +- passing the null test [`4ab737e`](https://github.com/inspect-js/object-inspect/commit/4ab737ebf862a75d247ebe51e79307a34d6380d4) + +## [0.1.3](https://github.com/inspect-js/object-inspect/compare/0.1.1...0.1.3) - 2013-07-26 + +### Commits + +- special isElement() check [`882768a`](https://github.com/inspect-js/object-inspect/commit/882768a54035d30747be9de1baf14e5aa0daa128) +- oh right old IEs don't have indexOf either [`36d1275`](https://github.com/inspect-js/object-inspect/commit/36d12756c38b08a74370b0bb696c809e529913a5) + +## [0.1.1](https://github.com/inspect-js/object-inspect/compare/0.1.0...0.1.1) - 2013-07-26 + +### Commits + +- tests! [`4422fd9`](https://github.com/inspect-js/object-inspect/commit/4422fd95532c2745aa6c4f786f35f1090be29998) +- fix for ie<9, doesn't have hasOwnProperty [`6b7d611`](https://github.com/inspect-js/object-inspect/commit/6b7d61183050f6da801ea04473211da226482613) +- fix for all IEs: no f.name [`4e0c2f6`](https://github.com/inspect-js/object-inspect/commit/4e0c2f6dfd01c306d067d7163319acc97c94ee50) +- badges [`5ed0d88`](https://github.com/inspect-js/object-inspect/commit/5ed0d88e4e407f9cb327fa4a146c17921f9680f3) + +## [0.1.0](https://github.com/inspect-js/object-inspect/compare/0.0.0...0.1.0) - 2013-07-26 + +### Commits + +- [Function] for functions [`ad5c485`](https://github.com/inspect-js/object-inspect/commit/ad5c485098fc83352cb540a60b2548ca56820e0b) + +## 0.0.0 - 2013-07-26 + +### Commits + +- working browser example [`34be6b6`](https://github.com/inspect-js/object-inspect/commit/34be6b6548f9ce92bdc3c27572857ba0c4a1218d) +- package.json etc [`cad51f2`](https://github.com/inspect-js/object-inspect/commit/cad51f23fc6bcf1a456ed6abe16088256c2f632f) +- docs complete [`b80cce2`](https://github.com/inspect-js/object-inspect/commit/b80cce2490c4e7183a9ee11ea89071f0abec4446) +- circular example [`4b4a7b9`](https://github.com/inspect-js/object-inspect/commit/4b4a7b92209e4e6b4630976cb6bcd17d14165a59) +- string rep [`7afb479`](https://github.com/inspect-js/object-inspect/commit/7afb479baa798d27f09e0a178b72ea327f60f5c8) diff --git a/node_modules/object-inspect/LICENSE b/node_modules/object-inspect/LICENSE new file mode 100644 index 0000000..ca64cc1 --- /dev/null +++ b/node_modules/object-inspect/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 James Halliday + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/object-inspect/example/all.js b/node_modules/object-inspect/example/all.js new file mode 100644 index 0000000..2f3355c --- /dev/null +++ b/node_modules/object-inspect/example/all.js @@ -0,0 +1,23 @@ +'use strict'; + +var inspect = require('../'); +var Buffer = require('safer-buffer').Buffer; + +var holes = ['a', 'b']; +holes[4] = 'e'; +holes[6] = 'g'; + +var obj = { + a: 1, + b: [3, 4, undefined, null], + c: undefined, + d: null, + e: { + regex: /^x/i, + buf: Buffer.from('abc'), + holes: holes + }, + now: new Date() +}; +obj.self = obj; +console.log(inspect(obj)); diff --git a/node_modules/object-inspect/example/circular.js b/node_modules/object-inspect/example/circular.js new file mode 100644 index 0000000..487a7c1 --- /dev/null +++ b/node_modules/object-inspect/example/circular.js @@ -0,0 +1,6 @@ +'use strict'; + +var inspect = require('../'); +var obj = { a: 1, b: [3, 4] }; +obj.c = obj; +console.log(inspect(obj)); diff --git a/node_modules/object-inspect/example/fn.js b/node_modules/object-inspect/example/fn.js new file mode 100644 index 0000000..9b5db8d --- /dev/null +++ b/node_modules/object-inspect/example/fn.js @@ -0,0 +1,5 @@ +'use strict'; + +var inspect = require('../'); +var obj = [1, 2, function f(n) { return n + 5; }, 4]; +console.log(inspect(obj)); diff --git a/node_modules/object-inspect/example/inspect.js b/node_modules/object-inspect/example/inspect.js new file mode 100644 index 0000000..e2df7c9 --- /dev/null +++ b/node_modules/object-inspect/example/inspect.js @@ -0,0 +1,10 @@ +'use strict'; + +/* eslint-env browser */ +var inspect = require('../'); + +var d = document.createElement('div'); +d.setAttribute('id', 'beep'); +d.innerHTML = 'woooiiiii'; + +console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); diff --git a/node_modules/object-inspect/index.js b/node_modules/object-inspect/index.js new file mode 100644 index 0000000..a4b2d4c --- /dev/null +++ b/node_modules/object-inspect/index.js @@ -0,0 +1,544 @@ +var hasMap = typeof Map === 'function' && Map.prototype; +var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null; +var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null; +var mapForEach = hasMap && Map.prototype.forEach; +var hasSet = typeof Set === 'function' && Set.prototype; +var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null; +var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null; +var setForEach = hasSet && Set.prototype.forEach; +var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype; +var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; +var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype; +var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; +var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype; +var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; +var booleanValueOf = Boolean.prototype.valueOf; +var objectToString = Object.prototype.toString; +var functionToString = Function.prototype.toString; +var $match = String.prototype.match; +var $slice = String.prototype.slice; +var $replace = String.prototype.replace; +var $toUpperCase = String.prototype.toUpperCase; +var $toLowerCase = String.prototype.toLowerCase; +var $test = RegExp.prototype.test; +var $concat = Array.prototype.concat; +var $join = Array.prototype.join; +var $arrSlice = Array.prototype.slice; +var $floor = Math.floor; +var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; +var gOPS = Object.getOwnPropertySymbols; +var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; +var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +// ie, `has-tostringtag/shams +var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol') + ? Symbol.toStringTag + : null; +var isEnumerable = Object.prototype.propertyIsEnumerable; + +var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( + [].__proto__ === Array.prototype // eslint-disable-line no-proto + ? function (O) { + return O.__proto__; // eslint-disable-line no-proto + } + : null +); + +function addNumericSeparator(num, str) { + if ( + num === Infinity + || num === -Infinity + || num !== num + || (num && num > -1000 && num < 1000) + || $test.call(/e/, str) + ) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === 'number') { + var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num) + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, ''); + } + } + return $replace.call(str, sepRegex, '$&_'); +} + +var utilInspect = require('./util.inspect'); +var inspectCustom = utilInspect.custom; +var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + +var quotes = { + __proto__: null, + 'double': '"', + single: "'" +}; +var quoteREs = { + __proto__: null, + 'double': /(["\\])/g, + single: /(['\\])/g +}; + +module.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + + if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if ( + has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' + ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity + : opts.maxStringLength !== null + ) + ) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, 'customInspect') ? opts.customInspect : true; + if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') { + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`'); + } + + if ( + has(opts, 'indent') + && opts.indent !== null + && opts.indent !== '\t' + && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0) + ) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + + if (typeof obj === 'undefined') { + return 'undefined'; + } + if (obj === null) { + return 'null'; + } + if (typeof obj === 'boolean') { + return obj ? 'true' : 'false'; + } + + if (typeof obj === 'string') { + return inspectString(obj, opts); + } + if (typeof obj === 'number') { + if (obj === 0) { + return Infinity / obj > 0 ? '0' : '-0'; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === 'bigint') { + var bigIntStr = String(obj) + 'n'; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + + var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth; + if (typeof depth === 'undefined') { depth = 0; } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') { + return isArray(obj) ? '[Array]' : '[Object]'; + } + + var indent = getIndent(opts, depth); + + if (typeof seen === 'undefined') { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return '[Circular]'; + } + + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, 'quoteStyle')) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + + if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : ''); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = '<' + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts); + } + s += '>'; + if (obj.childNodes && obj.childNodes.length) { s += '...'; } + s += ''; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { return '[]'; } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return '[' + indentedJoin(xs, indent) + ']'; + } + return '[ ' + $join.call(xs, ', ') + ' ]'; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) { + return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }'; + } + if (parts.length === 0) { return '[' + String(obj) + ']'; } + return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }'; + } + if (typeof obj === 'object' && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function (value, key) { + mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); + }); + } + return collectionOf('Map', mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function (value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf('Set', setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf('WeakMap'); + } + if (isWeakSet(obj)) { + return weakCollectionOf('WeakSet'); + } + if (isWeakRef(obj)) { + return weakCollectionOf('WeakRef'); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other + /* eslint-env browser */ + if (typeof window !== 'undefined' && obj === window) { + return '{ [object Window] }'; + } + if ( + (typeof globalThis !== 'undefined' && obj === globalThis) + || (typeof global !== 'undefined' && obj === global) + ) { + return '{ [object globalThis] }'; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? '' : 'null prototype'; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : ''; + var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; + var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : ''); + if (ys.length === 0) { return tag + '{}'; } + if (indent) { + return tag + '{' + indentedJoin(ys, indent) + '}'; + } + return tag + '{ ' + $join.call(ys, ', ') + ' }'; + } + return String(obj); +}; + +function wrapQuotes(s, defaultStyle, opts) { + var style = opts.quoteStyle || defaultStyle; + var quoteChar = quotes[style]; + return quoteChar + s + quoteChar; +} + +function quote(s) { + return $replace.call(String(s), /"/g, '"'); +} + +function canTrustToString(obj) { + return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined')); +} +function isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); } +function isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); } +function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); } +function isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); } +function isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); } +function isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); } +function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); } + +// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives +function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === 'object' && obj instanceof Symbol; + } + if (typeof obj === 'symbol') { + return true; + } + if (!obj || typeof obj !== 'object' || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; +} + +function isBigInt(obj) { + if (!obj || typeof obj !== 'object' || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; +} + +var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; }; +function has(obj, key) { + return hasOwn.call(obj, key); +} + +function toStr(obj) { + return objectToString.call(obj); +} + +function nameOf(f) { + if (f.name) { return f.name; } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { return m[1]; } + return null; +} + +function indexOf(xs, x) { + if (xs.indexOf) { return xs.indexOf(x); } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { return i; } + } + return -1; +} + +function isMap(x) { + if (!mapSize || !x || typeof x !== 'object') { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== 'object') { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== 'object') { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; +} + +function isSet(x) { + if (!setSize || !x || typeof x !== 'object') { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== 'object') { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isElement(x) { + if (!x || typeof x !== 'object') { return false; } + if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function'; +} + +function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : ''); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var quoteRE = quoteREs[opts.quoteStyle || 'single']; + quoteRE.lastIndex = 0; + // eslint-disable-next-line no-control-regex + var s = $replace.call($replace.call(str, quoteRE, '\\$1'), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, 'single', opts); +} + +function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: 'b', + 9: 't', + 10: 'n', + 12: 'f', + 13: 'r' + }[n]; + if (x) { return '\\' + x; } + return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16)); +} + +function markBoxed(str) { + return 'Object(' + str + ')'; +} + +function weakCollectionOf(type) { + return type + ' { ? }'; +} + +function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', '); + return type + ' (' + size + ') {' + joinedEntries + '}'; +} + +function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], '\n') >= 0) { + return false; + } + } + return true; +} + +function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === '\t') { + baseIndent = '\t'; + } else if (typeof opts.indent === 'number' && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), ' '); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; +} + +function indentedJoin(xs, indent) { + if (xs.length === 0) { return ''; } + var lineJoiner = '\n' + indent.prev + indent.base; + return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev; +} + +function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ''; + } + } + var syms = typeof gOPS === 'function' ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap['$' + syms[k]] = syms[k]; + } + } + + for (var key in obj) { // eslint-disable-line no-restricted-syntax + if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { + // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section + continue; // eslint-disable-line no-restricted-syntax, no-continue + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); + } else { + xs.push(key + ': ' + inspect(obj[key], obj)); + } + } + if (typeof gOPS === 'function') { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj)); + } + } + } + return xs; +} diff --git a/node_modules/object-inspect/package-support.json b/node_modules/object-inspect/package-support.json new file mode 100644 index 0000000..5cc12d0 --- /dev/null +++ b/node_modules/object-inspect/package-support.json @@ -0,0 +1,20 @@ +{ + "versions": [ + { + "version": "*", + "target": { + "node": "all" + }, + "response": { + "type": "time-permitting" + }, + "backing": { + "npm-funding": true, + "donations": [ + "https://github.com/ljharb", + "https://tidelift.com/funding/github/npm/object-inspect" + ] + } + } + ] +} diff --git a/node_modules/object-inspect/package.json b/node_modules/object-inspect/package.json new file mode 100644 index 0000000..9fd97ff --- /dev/null +++ b/node_modules/object-inspect/package.json @@ -0,0 +1,105 @@ +{ + "name": "object-inspect", + "version": "1.13.4", + "description": "string representations of objects in node and the browser", + "main": "index.js", + "sideEffects": false, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@pkgjs/support": "^0.0.6", + "auto-changelog": "^2.5.0", + "core-js": "^2.6.12", + "error-cause": "^1.0.8", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "for-each": "^0.3.4", + "functions-have-names": "^1.2.3", + "glob": "=10.3.7", + "globalthis": "^1.0.4", + "has-symbols": "^1.1.0", + "has-tostringtag": "^1.0.2", + "in-publish": "^2.0.1", + "jackspeak": "=2.1.1", + "make-arrow-function": "^1.2.0", + "mock-property": "^1.1.0", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "semver": "^6.3.1", + "string.prototype.repeat": "^1.0.0", + "tape": "^5.9.0" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "lint": "eslint --ext=js,mjs .", + "postlint": "npx @pkgjs/support validate", + "test": "npm run tests-only && npm run test:corejs", + "tests-only": "nyc tape 'test/*.js'", + "test:corejs": "nyc tape test-core-js.js 'test/*.js'", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "testling": { + "files": [ + "test/*.js", + "test/browser/*.js" + ], + "browsers": [ + "ie/6..latest", + "chrome/latest", + "firefox/latest", + "safari/latest", + "opera/latest", + "iphone/latest", + "ipad/latest", + "android/latest" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/object-inspect.git" + }, + "homepage": "https://github.com/inspect-js/object-inspect", + "keywords": [ + "inspect", + "util.inspect", + "object", + "stringify", + "pretty" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "browser": { + "./util.inspect.js": false + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "./test-core-js.js" + ] + }, + "support": true, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/object-inspect/readme.markdown b/node_modules/object-inspect/readme.markdown new file mode 100644 index 0000000..f91617d --- /dev/null +++ b/node_modules/object-inspect/readme.markdown @@ -0,0 +1,84 @@ +# object-inspect [![Version Badge][npm-version-svg]][package-url] + +string representations of objects in node and the browser + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +# example + +## circular + +``` js +var inspect = require('object-inspect'); +var obj = { a: 1, b: [3,4] }; +obj.c = obj; +console.log(inspect(obj)); +``` + +## dom element + +``` js +var inspect = require('object-inspect'); + +var d = document.createElement('div'); +d.setAttribute('id', 'beep'); +d.innerHTML = 'woooiiiii'; + +console.log(inspect([ d, { a: 3, b : 4, c: [5,6,[7,[8,[9]]]] } ])); +``` + +output: + +``` +[
...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [ ... ] ] ] ] } ] +``` + +# methods + +``` js +var inspect = require('object-inspect') +``` + +## var s = inspect(obj, opts={}) + +Return a string `s` with the string representation of `obj` up to a depth of `opts.depth`. + +Additional options: + - `quoteStyle`: must be "single" or "double", if present. Default `'single'` for strings, `'double'` for HTML elements. + - `maxStringLength`: must be `0`, a positive integer, `Infinity`, or `null`, if present. Default `Infinity`. + - `customInspect`: When `true`, a custom inspect method function will be invoked (either undere the `util.inspect.custom` symbol, or the `inspect` property). When the string `'symbol'`, only the symbol method will be invoked. Default `true`. + - `indent`: must be "\t", `null`, or a positive integer. Default `null`. + - `numericSeparator`: must be a boolean, if present. Default `false`. If `true`, all numbers will be printed with numeric separators (eg, `1234.5678` will be printed as `'1_234.567_8'`) + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install object-inspect +``` + +# license + +MIT + +[package-url]: https://npmjs.org/package/object-inspect +[npm-version-svg]: https://versionbadg.es/inspect-js/object-inspect.svg +[deps-svg]: https://david-dm.org/inspect-js/object-inspect.svg +[deps-url]: https://david-dm.org/inspect-js/object-inspect +[dev-deps-svg]: https://david-dm.org/inspect-js/object-inspect/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/object-inspect#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/object-inspect.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/object-inspect.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/object-inspect.svg +[downloads-url]: https://npm-stat.com/charts.html?package=object-inspect +[codecov-image]: https://codecov.io/gh/inspect-js/object-inspect/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/object-inspect/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/object-inspect +[actions-url]: https://github.com/inspect-js/object-inspect/actions diff --git a/node_modules/object-inspect/test-core-js.js b/node_modules/object-inspect/test-core-js.js new file mode 100644 index 0000000..e53c400 --- /dev/null +++ b/node_modules/object-inspect/test-core-js.js @@ -0,0 +1,26 @@ +'use strict'; + +require('core-js'); + +var inspect = require('./'); +var test = require('tape'); + +test('Maps', function (t) { + t.equal(inspect(new Map([[1, 2]])), 'Map (1) {1 => 2}'); + t.end(); +}); + +test('WeakMaps', function (t) { + t.equal(inspect(new WeakMap([[{}, 2]])), 'WeakMap { ? }'); + t.end(); +}); + +test('Sets', function (t) { + t.equal(inspect(new Set([[1, 2]])), 'Set (1) {[ 1, 2 ]}'); + t.end(); +}); + +test('WeakSets', function (t) { + t.equal(inspect(new WeakSet([[1, 2]])), 'WeakSet { ? }'); + t.end(); +}); diff --git a/node_modules/object-inspect/test/bigint.js b/node_modules/object-inspect/test/bigint.js new file mode 100644 index 0000000..4ecc31d --- /dev/null +++ b/node_modules/object-inspect/test/bigint.js @@ -0,0 +1,58 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); +var hasToStringTag = require('has-tostringtag/shams')(); + +test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { + t.test('primitives', function (st) { + st.plan(3); + + st.equal(inspect(BigInt(-256)), '-256n'); + st.equal(inspect(BigInt(0)), '0n'); + st.equal(inspect(BigInt(256)), '256n'); + }); + + t.test('objects', function (st) { + st.plan(3); + + st.equal(inspect(Object(BigInt(-256))), 'Object(-256n)'); + st.equal(inspect(Object(BigInt(0))), 'Object(0n)'); + st.equal(inspect(Object(BigInt(256))), 'Object(256n)'); + }); + + t.test('syntactic primitives', function (st) { + st.plan(3); + + /* eslint-disable no-new-func */ + st.equal(inspect(Function('return -256n')()), '-256n'); + st.equal(inspect(Function('return 0n')()), '0n'); + st.equal(inspect(Function('return 256n')()), '256n'); + }); + + t.test('toStringTag', { skip: !hasToStringTag }, function (st) { + st.plan(1); + + var faker = {}; + faker[Symbol.toStringTag] = 'BigInt'; + st.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'BigInt\' }', + 'object lying about being a BigInt inspects as an object' + ); + }); + + t.test('numericSeparator', function (st) { + st.equal(inspect(BigInt(0), { numericSeparator: false }), '0n', '0n, numericSeparator false'); + st.equal(inspect(BigInt(0), { numericSeparator: true }), '0n', '0n, numericSeparator true'); + + st.equal(inspect(BigInt(1234), { numericSeparator: false }), '1234n', '1234n, numericSeparator false'); + st.equal(inspect(BigInt(1234), { numericSeparator: true }), '1_234n', '1234n, numericSeparator true'); + st.equal(inspect(BigInt(-1234), { numericSeparator: false }), '-1234n', '1234n, numericSeparator false'); + st.equal(inspect(BigInt(-1234), { numericSeparator: true }), '-1_234n', '1234n, numericSeparator true'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/browser/dom.js b/node_modules/object-inspect/test/browser/dom.js new file mode 100644 index 0000000..210c0b2 --- /dev/null +++ b/node_modules/object-inspect/test/browser/dom.js @@ -0,0 +1,15 @@ +var inspect = require('../../'); +var test = require('tape'); + +test('dom element', function (t) { + t.plan(1); + + var d = document.createElement('div'); + d.setAttribute('id', 'beep'); + d.innerHTML = 'woooiiiii'; + + t.equal( + inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]), + '[
...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [Object] ] ] ] } ]' + ); +}); diff --git a/node_modules/object-inspect/test/circular.js b/node_modules/object-inspect/test/circular.js new file mode 100644 index 0000000..5df4233 --- /dev/null +++ b/node_modules/object-inspect/test/circular.js @@ -0,0 +1,16 @@ +var inspect = require('../'); +var test = require('tape'); + +test('circular', function (t) { + t.plan(2); + var obj = { a: 1, b: [3, 4] }; + obj.c = obj; + t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }'); + + var double = {}; + double.a = [double]; + double.b = {}; + double.b.inner = double.b; + double.b.obj = double; + t.equal(inspect(double), '{ a: [ [Circular] ], b: { inner: [Circular], obj: [Circular] } }'); +}); diff --git a/node_modules/object-inspect/test/deep.js b/node_modules/object-inspect/test/deep.js new file mode 100644 index 0000000..99ce32a --- /dev/null +++ b/node_modules/object-inspect/test/deep.js @@ -0,0 +1,12 @@ +var inspect = require('../'); +var test = require('tape'); + +test('deep', function (t) { + t.plan(4); + var obj = [[[[[[500]]]]]]; + t.equal(inspect(obj), '[ [ [ [ [ [Array] ] ] ] ] ]'); + t.equal(inspect(obj, { depth: 4 }), '[ [ [ [ [Array] ] ] ] ]'); + t.equal(inspect(obj, { depth: 2 }), '[ [ [Array] ] ]'); + + t.equal(inspect([[[{ a: 1 }]]], { depth: 3 }), '[ [ [ [Object] ] ] ]'); +}); diff --git a/node_modules/object-inspect/test/element.js b/node_modules/object-inspect/test/element.js new file mode 100644 index 0000000..47fa9e2 --- /dev/null +++ b/node_modules/object-inspect/test/element.js @@ -0,0 +1,53 @@ +var inspect = require('../'); +var test = require('tape'); + +test('element', function (t) { + t.plan(3); + var elem = { + nodeName: 'div', + attributes: [{ name: 'class', value: 'row' }], + getAttribute: function (key) { return key; }, + childNodes: [] + }; + var obj = [1, elem, 3]; + t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); + t.deepEqual(inspect(obj, { quoteStyle: 'single' }), "[ 1,
, 3 ]"); + t.deepEqual(inspect(obj, { quoteStyle: 'double' }), '[ 1,
, 3 ]'); +}); + +test('element no attr', function (t) { + t.plan(1); + var elem = { + nodeName: 'div', + getAttribute: function (key) { return key; }, + childNodes: [] + }; + var obj = [1, elem, 3]; + t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); +}); + +test('element with contents', function (t) { + t.plan(1); + var elem = { + nodeName: 'div', + getAttribute: function (key) { return key; }, + childNodes: [{ nodeName: 'b' }] + }; + var obj = [1, elem, 3]; + t.deepEqual(inspect(obj), '[ 1,
...
, 3 ]'); +}); + +test('element instance', function (t) { + t.plan(1); + var h = global.HTMLElement; + global.HTMLElement = function (name, attr) { + this.nodeName = name; + this.attributes = attr; + }; + global.HTMLElement.prototype.getAttribute = function () {}; + + var elem = new global.HTMLElement('div', []); + var obj = [1, elem, 3]; + t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); + global.HTMLElement = h; +}); diff --git a/node_modules/object-inspect/test/err.js b/node_modules/object-inspect/test/err.js new file mode 100644 index 0000000..cc1d884 --- /dev/null +++ b/node_modules/object-inspect/test/err.js @@ -0,0 +1,48 @@ +var test = require('tape'); +var ErrorWithCause = require('error-cause/Error'); + +var inspect = require('../'); + +test('type error', function (t) { + t.plan(1); + var aerr = new TypeError(); + aerr.foo = 555; + aerr.bar = [1, 2, 3]; + + var berr = new TypeError('tuv'); + berr.baz = 555; + + var cerr = new SyntaxError(); + cerr.message = 'whoa'; + cerr['a-b'] = 5; + + var withCause = new ErrorWithCause('foo', { cause: 'bar' }); + var withCausePlus = new ErrorWithCause('foo', { cause: 'bar' }); + withCausePlus.foo = 'bar'; + var withUndefinedCause = new ErrorWithCause('foo', { cause: undefined }); + var withEnumerableCause = new Error('foo'); + withEnumerableCause.cause = 'bar'; + + var obj = [ + new TypeError(), + new TypeError('xxx'), + aerr, + berr, + cerr, + withCause, + withCausePlus, + withUndefinedCause, + withEnumerableCause + ]; + t.equal(inspect(obj), '[ ' + [ + '[TypeError]', + '[TypeError: xxx]', + '{ [TypeError] foo: 555, bar: [ 1, 2, 3 ] }', + '{ [TypeError: tuv] baz: 555 }', + '{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }', + 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: \'bar\' }', + '{ [Error: foo] ' + ('cause' in Error.prototype ? '' : '[cause]: \'bar\', ') + 'foo: \'bar\' }', + 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: undefined }', + '{ [Error: foo] cause: \'bar\' }' + ].join(', ') + ' ]'); +}); diff --git a/node_modules/object-inspect/test/fakes.js b/node_modules/object-inspect/test/fakes.js new file mode 100644 index 0000000..a65c08c --- /dev/null +++ b/node_modules/object-inspect/test/fakes.js @@ -0,0 +1,29 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); +var hasToStringTag = require('has-tostringtag/shams')(); +var forEach = require('for-each'); + +test('fakes', { skip: !hasToStringTag }, function (t) { + forEach([ + 'Array', + 'Boolean', + 'Date', + 'Error', + 'Number', + 'RegExp', + 'String' + ], function (expected) { + var faker = {}; + faker[Symbol.toStringTag] = expected; + + t.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'' + expected + '\' }', + 'faker masquerading as ' + expected + ' is not shown as one' + ); + }); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/fn.js b/node_modules/object-inspect/test/fn.js new file mode 100644 index 0000000..de3ca62 --- /dev/null +++ b/node_modules/object-inspect/test/fn.js @@ -0,0 +1,76 @@ +var inspect = require('../'); +var test = require('tape'); +var arrow = require('make-arrow-function')(); +var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames(); + +test('function', function (t) { + t.plan(1); + var obj = [1, 2, function f(n) { return n; }, 4]; + t.equal(inspect(obj), '[ 1, 2, [Function: f], 4 ]'); +}); + +test('function name', function (t) { + t.plan(1); + var f = (function () { + return function () {}; + }()); + f.toString = function toStr() { return 'function xxx () {}'; }; + var obj = [1, 2, f, 4]; + t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)] { toString: [Function: toStr] }, 4 ]'); +}); + +test('anon function', function (t) { + var f = (function () { + return function () {}; + }()); + var obj = [1, 2, f, 4]; + t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)], 4 ]'); + + t.end(); +}); + +test('arrow function', { skip: !arrow }, function (t) { + t.equal(inspect(arrow), '[Function (anonymous)]'); + + t.end(); +}); + +test('truly nameless function', { skip: !arrow || !functionsHaveConfigurableNames }, function (t) { + function f() {} + Object.defineProperty(f, 'name', { value: false }); + t.equal(f.name, false); + t.equal( + inspect(f), + '[Function: f]', + 'named function with falsy `.name` does not hide its original name' + ); + + function g() {} + Object.defineProperty(g, 'name', { value: true }); + t.equal(g.name, true); + t.equal( + inspect(g), + '[Function: true]', + 'named function with truthy `.name` hides its original name' + ); + + var anon = function () {}; // eslint-disable-line func-style + Object.defineProperty(anon, 'name', { value: null }); + t.equal(anon.name, null); + t.equal( + inspect(anon), + '[Function (anonymous)]', + 'anon function with falsy `.name` does not hide its anonymity' + ); + + var anon2 = function () {}; // eslint-disable-line func-style + Object.defineProperty(anon2, 'name', { value: 1 }); + t.equal(anon2.name, 1); + t.equal( + inspect(anon2), + '[Function: 1]', + 'anon function with truthy `.name` hides its anonymity' + ); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/global.js b/node_modules/object-inspect/test/global.js new file mode 100644 index 0000000..c57216a --- /dev/null +++ b/node_modules/object-inspect/test/global.js @@ -0,0 +1,17 @@ +'use strict'; + +var inspect = require('../'); + +var test = require('tape'); +var globalThis = require('globalthis')(); + +test('global object', function (t) { + /* eslint-env browser */ + var expected = typeof window === 'undefined' ? 'globalThis' : 'Window'; + t.equal( + inspect([globalThis]), + '[ { [object ' + expected + '] } ]' + ); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/has.js b/node_modules/object-inspect/test/has.js new file mode 100644 index 0000000..01800de --- /dev/null +++ b/node_modules/object-inspect/test/has.js @@ -0,0 +1,15 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); +var mockProperty = require('mock-property'); + +test('when Object#hasOwnProperty is deleted', function (t) { + t.plan(1); + var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays + + t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty" + t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); + + t.equal(inspect(arr), '[ 1, , 3 ]'); +}); diff --git a/node_modules/object-inspect/test/holes.js b/node_modules/object-inspect/test/holes.js new file mode 100644 index 0000000..87fc8c8 --- /dev/null +++ b/node_modules/object-inspect/test/holes.js @@ -0,0 +1,15 @@ +var test = require('tape'); +var inspect = require('../'); + +var xs = ['a', 'b']; +xs[5] = 'f'; +xs[7] = 'j'; +xs[8] = 'k'; + +test('holes', function (t) { + t.plan(1); + t.equal( + inspect(xs), + "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" + ); +}); diff --git a/node_modules/object-inspect/test/indent-option.js b/node_modules/object-inspect/test/indent-option.js new file mode 100644 index 0000000..89d8fce --- /dev/null +++ b/node_modules/object-inspect/test/indent-option.js @@ -0,0 +1,271 @@ +var test = require('tape'); +var forEach = require('for-each'); + +var inspect = require('../'); + +test('bad indent options', function (t) { + forEach([ + undefined, + true, + false, + -1, + 1.2, + Infinity, + -Infinity, + NaN + ], function (indent) { + t['throws']( + function () { inspect('', { indent: indent }); }, + TypeError, + inspect(indent) + ' is invalid' + ); + }); + + t.end(); +}); + +test('simple object with indent', function (t) { + t.plan(2); + + var obj = { a: 1, b: 2 }; + + var expectedSpaces = [ + '{', + ' a: 1,', + ' b: 2', + '}' + ].join('\n'); + var expectedTabs = [ + '{', + ' a: 1,', + ' b: 2', + '}' + ].join('\n'); + + t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two'); + t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs'); +}); + +test('two deep object with indent', function (t) { + t.plan(2); + + var obj = { a: 1, b: { c: 3, d: 4 } }; + + var expectedSpaces = [ + '{', + ' a: 1,', + ' b: {', + ' c: 3,', + ' d: 4', + ' }', + '}' + ].join('\n'); + var expectedTabs = [ + '{', + ' a: 1,', + ' b: {', + ' c: 3,', + ' d: 4', + ' }', + '}' + ].join('\n'); + + t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two'); + t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs'); +}); + +test('simple array with all single line elements', function (t) { + t.plan(2); + + var obj = [1, 2, 3, 'asdf\nsdf']; + + var expected = '[ 1, 2, 3, \'asdf\\nsdf\' ]'; + + t.equal(inspect(obj, { indent: 2 }), expected, 'two'); + t.equal(inspect(obj, { indent: '\t' }), expected, 'tabs'); +}); + +test('array with complex elements', function (t) { + t.plan(2); + + var obj = [1, { a: 1, b: { c: 1 } }, 'asdf\nsdf']; + + var expectedSpaces = [ + '[', + ' 1,', + ' {', + ' a: 1,', + ' b: {', + ' c: 1', + ' }', + ' },', + ' \'asdf\\nsdf\'', + ']' + ].join('\n'); + var expectedTabs = [ + '[', + ' 1,', + ' {', + ' a: 1,', + ' b: {', + ' c: 1', + ' }', + ' },', + ' \'asdf\\nsdf\'', + ']' + ].join('\n'); + + t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two'); + t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs'); +}); + +test('values', function (t) { + t.plan(2); + var obj = [{}, [], { 'a-b': 5 }]; + + var expectedSpaces = [ + '[', + ' {},', + ' [],', + ' {', + ' \'a-b\': 5', + ' }', + ']' + ].join('\n'); + var expectedTabs = [ + '[', + ' {},', + ' [],', + ' {', + ' \'a-b\': 5', + ' }', + ']' + ].join('\n'); + + t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two'); + t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs'); +}); + +test('Map', { skip: typeof Map !== 'function' }, function (t) { + var map = new Map(); + map.set({ a: 1 }, ['b']); + map.set(3, NaN); + + var expectedStringSpaces = [ + 'Map (2) {', + ' { a: 1 } => [ \'b\' ],', + ' 3 => NaN', + '}' + ].join('\n'); + var expectedStringTabs = [ + 'Map (2) {', + ' { a: 1 } => [ \'b\' ],', + ' 3 => NaN', + '}' + ].join('\n'); + var expectedStringTabsDoubleQuotes = [ + 'Map (2) {', + ' { a: 1 } => [ "b" ],', + ' 3 => NaN', + '}' + ].join('\n'); + + t.equal( + inspect(map, { indent: 2 }), + expectedStringSpaces, + 'Map keys are not indented (two)' + ); + t.equal( + inspect(map, { indent: '\t' }), + expectedStringTabs, + 'Map keys are not indented (tabs)' + ); + t.equal( + inspect(map, { indent: '\t', quoteStyle: 'double' }), + expectedStringTabsDoubleQuotes, + 'Map keys are not indented (tabs + double quotes)' + ); + + t.equal(inspect(new Map(), { indent: 2 }), 'Map (0) {}', 'empty Map should show as empty (two)'); + t.equal(inspect(new Map(), { indent: '\t' }), 'Map (0) {}', 'empty Map should show as empty (tabs)'); + + var nestedMap = new Map(); + nestedMap.set(nestedMap, map); + var expectedNestedSpaces = [ + 'Map (1) {', + ' [Circular] => Map (2) {', + ' { a: 1 } => [ \'b\' ],', + ' 3 => NaN', + ' }', + '}' + ].join('\n'); + var expectedNestedTabs = [ + 'Map (1) {', + ' [Circular] => Map (2) {', + ' { a: 1 } => [ \'b\' ],', + ' 3 => NaN', + ' }', + '}' + ].join('\n'); + t.equal(inspect(nestedMap, { indent: 2 }), expectedNestedSpaces, 'Map containing a Map should work (two)'); + t.equal(inspect(nestedMap, { indent: '\t' }), expectedNestedTabs, 'Map containing a Map should work (tabs)'); + + t.end(); +}); + +test('Set', { skip: typeof Set !== 'function' }, function (t) { + var set = new Set(); + set.add({ a: 1 }); + set.add(['b']); + var expectedStringSpaces = [ + 'Set (2) {', + ' {', + ' a: 1', + ' },', + ' [ \'b\' ]', + '}' + ].join('\n'); + var expectedStringTabs = [ + 'Set (2) {', + ' {', + ' a: 1', + ' },', + ' [ \'b\' ]', + '}' + ].join('\n'); + t.equal(inspect(set, { indent: 2 }), expectedStringSpaces, 'new Set([{ a: 1 }, ["b"]]) should show size and contents (two)'); + t.equal(inspect(set, { indent: '\t' }), expectedStringTabs, 'new Set([{ a: 1 }, ["b"]]) should show size and contents (tabs)'); + + t.equal(inspect(new Set(), { indent: 2 }), 'Set (0) {}', 'empty Set should show as empty (two)'); + t.equal(inspect(new Set(), { indent: '\t' }), 'Set (0) {}', 'empty Set should show as empty (tabs)'); + + var nestedSet = new Set(); + nestedSet.add(set); + nestedSet.add(nestedSet); + var expectedNestedSpaces = [ + 'Set (2) {', + ' Set (2) {', + ' {', + ' a: 1', + ' },', + ' [ \'b\' ]', + ' },', + ' [Circular]', + '}' + ].join('\n'); + var expectedNestedTabs = [ + 'Set (2) {', + ' Set (2) {', + ' {', + ' a: 1', + ' },', + ' [ \'b\' ]', + ' },', + ' [Circular]', + '}' + ].join('\n'); + t.equal(inspect(nestedSet, { indent: 2 }), expectedNestedSpaces, 'Set containing a Set should work (two)'); + t.equal(inspect(nestedSet, { indent: '\t' }), expectedNestedTabs, 'Set containing a Set should work (tabs)'); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/inspect.js b/node_modules/object-inspect/test/inspect.js new file mode 100644 index 0000000..1abf81b --- /dev/null +++ b/node_modules/object-inspect/test/inspect.js @@ -0,0 +1,139 @@ +var test = require('tape'); +var hasSymbols = require('has-symbols/shams')(); +var utilInspect = require('../util.inspect'); +var repeat = require('string.prototype.repeat'); + +var inspect = require('..'); + +test('inspect', function (t) { + t.plan(5); + + var obj = [{ inspect: function xyzInspect() { return '!XYZ¡'; } }, []]; + var stringResult = '[ !XYZ¡, [] ]'; + var falseResult = '[ { inspect: [Function: xyzInspect] }, [] ]'; + + t.equal(inspect(obj), stringResult); + t.equal(inspect(obj, { customInspect: true }), stringResult); + t.equal(inspect(obj, { customInspect: 'symbol' }), falseResult); + t.equal(inspect(obj, { customInspect: false }), falseResult); + t['throws']( + function () { inspect(obj, { customInspect: 'not a boolean or "symbol"' }); }, + TypeError, + '`customInspect` must be a boolean or the string "symbol"' + ); +}); + +test('inspect custom symbol', { skip: !hasSymbols || !utilInspect || !utilInspect.custom }, function (t) { + t.plan(4); + + var obj = { inspect: function stringInspect() { return 'string'; } }; + obj[utilInspect.custom] = function custom() { return 'symbol'; }; + + var symbolResult = '[ symbol, [] ]'; + var stringResult = '[ string, [] ]'; + var falseResult = '[ { inspect: [Function: stringInspect]' + (utilInspect.custom ? ', [' + inspect(utilInspect.custom) + ']: [Function: custom]' : '') + ' }, [] ]'; + + var symbolStringFallback = utilInspect.custom ? symbolResult : stringResult; + var symbolFalseFallback = utilInspect.custom ? symbolResult : falseResult; + + t.equal(inspect([obj, []]), symbolStringFallback); + t.equal(inspect([obj, []], { customInspect: true }), symbolStringFallback); + t.equal(inspect([obj, []], { customInspect: 'symbol' }), symbolFalseFallback); + t.equal(inspect([obj, []], { customInspect: false }), falseResult); +}); + +test('symbols', { skip: !hasSymbols }, function (t) { + t.plan(2); + + var obj = { a: 1 }; + obj[Symbol('test')] = 2; + obj[Symbol.iterator] = 3; + Object.defineProperty(obj, Symbol('non-enum'), { + enumerable: false, + value: 4 + }); + + if (typeof Symbol.iterator === 'symbol') { + t.equal(inspect(obj), '{ a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }', 'object with symbols'); + t.equal(inspect([obj, []]), '[ { a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }, [] ]', 'object with symbols in array'); + } else { + // symbol sham key ordering is unreliable + t.match( + inspect(obj), + /^(?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 })$/, + 'object with symbols (nondeterministic symbol sham key ordering)' + ); + t.match( + inspect([obj, []]), + /^\[ (?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 }), \[\] \]$/, + 'object with symbols in array (nondeterministic symbol sham key ordering)' + ); + } +}); + +test('maxStringLength', function (t) { + t['throws']( + function () { inspect('', { maxStringLength: -1 }); }, + TypeError, + 'maxStringLength must be >= 0, or Infinity, not negative' + ); + + var str = repeat('a', 1e8); + + t.equal( + inspect([str], { maxStringLength: 10 }), + '[ \'aaaaaaaaaa\'... 99999990 more characters ]', + 'maxStringLength option limits output' + ); + + t.equal( + inspect(['f'], { maxStringLength: null }), + '[ \'\'... 1 more character ]', + 'maxStringLength option accepts `null`' + ); + + t.equal( + inspect([str], { maxStringLength: Infinity }), + '[ \'' + str + '\' ]', + 'maxStringLength option accepts ∞' + ); + + t.end(); +}); + +test('inspect options', { skip: !utilInspect.custom }, function (t) { + var obj = {}; + obj[utilInspect.custom] = function () { + return JSON.stringify(arguments); + }; + t.equal( + inspect(obj), + utilInspect(obj, { depth: 5 }), + 'custom symbols will use node\'s inspect' + ); + t.equal( + inspect(obj, { depth: 2 }), + utilInspect(obj, { depth: 2 }), + 'a reduced depth will be passed to node\'s inspect' + ); + t.equal( + inspect({ d1: obj }, { depth: 3 }), + '{ d1: ' + utilInspect(obj, { depth: 2 }) + ' }', + 'deep objects will receive a reduced depth' + ); + t.equal( + inspect({ d1: obj }, { depth: 1 }), + '{ d1: [Object] }', + 'unlike nodejs inspect, customInspect will not be used once the depth is exceeded.' + ); + t.end(); +}); + +test('inspect URL', { skip: typeof URL === 'undefined' }, function (t) { + t.match( + inspect(new URL('https://nodejs.org')), + /nodejs\.org/, // Different environments stringify it differently + 'url can be inspected' + ); + t.end(); +}); diff --git a/node_modules/object-inspect/test/lowbyte.js b/node_modules/object-inspect/test/lowbyte.js new file mode 100644 index 0000000..68a345d --- /dev/null +++ b/node_modules/object-inspect/test/lowbyte.js @@ -0,0 +1,12 @@ +var test = require('tape'); +var inspect = require('../'); + +var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; + +test('interpolate low bytes', function (t) { + t.plan(1); + t.equal( + inspect(obj), + "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" + ); +}); diff --git a/node_modules/object-inspect/test/number.js b/node_modules/object-inspect/test/number.js new file mode 100644 index 0000000..8f287e8 --- /dev/null +++ b/node_modules/object-inspect/test/number.js @@ -0,0 +1,58 @@ +var test = require('tape'); +var v = require('es-value-fixtures'); +var forEach = require('for-each'); + +var inspect = require('../'); + +test('negative zero', function (t) { + t.equal(inspect(0), '0', 'inspect(0) === "0"'); + t.equal(inspect(Object(0)), 'Object(0)', 'inspect(Object(0)) === "Object(0)"'); + + t.equal(inspect(-0), '-0', 'inspect(-0) === "-0"'); + t.equal(inspect(Object(-0)), 'Object(-0)', 'inspect(Object(-0)) === "Object(-0)"'); + + t.end(); +}); + +test('numericSeparator', function (t) { + forEach(v.nonBooleans, function (nonBoolean) { + t['throws']( + function () { inspect(true, { numericSeparator: nonBoolean }); }, + TypeError, + inspect(nonBoolean) + ' is not a boolean' + ); + }); + + t.test('3 digit numbers', function (st) { + var failed = false; + for (var i = -999; i < 1000; i += 1) { + var actual = inspect(i); + var actualSepNo = inspect(i, { numericSeparator: false }); + var actualSepYes = inspect(i, { numericSeparator: true }); + var expected = String(i); + if (actual !== expected || actualSepNo !== expected || actualSepYes !== expected) { + failed = true; + t.equal(actual, expected); + t.equal(actualSepNo, expected); + t.equal(actualSepYes, expected); + } + } + + st.notOk(failed, 'all 3 digit numbers passed'); + + st.end(); + }); + + t.equal(inspect(1e3), '1000', '1000'); + t.equal(inspect(1e3, { numericSeparator: false }), '1000', '1000, numericSeparator false'); + t.equal(inspect(1e3, { numericSeparator: true }), '1_000', '1000, numericSeparator true'); + t.equal(inspect(-1e3), '-1000', '-1000'); + t.equal(inspect(-1e3, { numericSeparator: false }), '-1000', '-1000, numericSeparator false'); + t.equal(inspect(-1e3, { numericSeparator: true }), '-1_000', '-1000, numericSeparator true'); + + t.equal(inspect(1234.5678, { numericSeparator: true }), '1_234.567_8', 'fractional numbers get separators'); + t.equal(inspect(1234.56789, { numericSeparator: true }), '1_234.567_89', 'fractional numbers get separators'); + t.equal(inspect(1234.567891, { numericSeparator: true }), '1_234.567_891', 'fractional numbers get separators'); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/quoteStyle.js b/node_modules/object-inspect/test/quoteStyle.js new file mode 100644 index 0000000..da23e63 --- /dev/null +++ b/node_modules/object-inspect/test/quoteStyle.js @@ -0,0 +1,26 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); + +test('quoteStyle option', function (t) { + t['throws'](function () { inspect(null, { quoteStyle: false }); }, 'false is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: true }); }, 'true is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: '' }); }, '"" is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: {} }); }, '{} is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: [] }); }, '[] is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: 42 }); }, '42 is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: NaN }); }, 'NaN is not a valid value'); + t['throws'](function () { inspect(null, { quoteStyle: function () {} }); }, 'a function is not a valid value'); + + t.equal(inspect('"', { quoteStyle: 'single' }), '\'"\'', 'double quote, quoteStyle: "single"'); + t.equal(inspect('"', { quoteStyle: 'double' }), '"\\""', 'double quote, quoteStyle: "double"'); + + t.equal(inspect('\'', { quoteStyle: 'single' }), '\'\\\'\'', 'single quote, quoteStyle: "single"'); + t.equal(inspect('\'', { quoteStyle: 'double' }), '"\'"', 'single quote, quoteStyle: "double"'); + + t.equal(inspect('`', { quoteStyle: 'single' }), '\'`\'', 'backtick, quoteStyle: "single"'); + t.equal(inspect('`', { quoteStyle: 'double' }), '"`"', 'backtick, quoteStyle: "double"'); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/toStringTag.js b/node_modules/object-inspect/test/toStringTag.js new file mode 100644 index 0000000..95f8270 --- /dev/null +++ b/node_modules/object-inspect/test/toStringTag.js @@ -0,0 +1,40 @@ +'use strict'; + +var test = require('tape'); +var hasToStringTag = require('has-tostringtag/shams')(); + +var inspect = require('../'); + +test('Symbol.toStringTag', { skip: !hasToStringTag }, function (t) { + t.plan(4); + + var obj = { a: 1 }; + t.equal(inspect(obj), '{ a: 1 }', 'object, no Symbol.toStringTag'); + + obj[Symbol.toStringTag] = 'foo'; + t.equal(inspect(obj), '{ a: 1, [Symbol(Symbol.toStringTag)]: \'foo\' }', 'object with Symbol.toStringTag'); + + t.test('null objects', { skip: 'toString' in { __proto__: null } }, function (st) { + st.plan(2); + + var dict = { __proto__: null, a: 1 }; + st.equal(inspect(dict), '[Object: null prototype] { a: 1 }', 'null object with Symbol.toStringTag'); + + dict[Symbol.toStringTag] = 'Dict'; + st.equal(inspect(dict), '[Dict: null prototype] { a: 1, [Symbol(Symbol.toStringTag)]: \'Dict\' }', 'null object with Symbol.toStringTag'); + }); + + t.test('instances', function (st) { + st.plan(4); + + function C() { + this.a = 1; + } + st.equal(Object.prototype.toString.call(new C()), '[object Object]', 'instance, no toStringTag, Object.prototype.toString'); + st.equal(inspect(new C()), 'C { a: 1 }', 'instance, no toStringTag'); + + C.prototype[Symbol.toStringTag] = 'Class!'; + st.equal(Object.prototype.toString.call(new C()), '[object Class!]', 'instance, with toStringTag, Object.prototype.toString'); + st.equal(inspect(new C()), 'C [Class!] { a: 1 }', 'instance, with toStringTag'); + }); +}); diff --git a/node_modules/object-inspect/test/undef.js b/node_modules/object-inspect/test/undef.js new file mode 100644 index 0000000..e3f4961 --- /dev/null +++ b/node_modules/object-inspect/test/undef.js @@ -0,0 +1,12 @@ +var test = require('tape'); +var inspect = require('../'); + +var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; + +test('undef and null', function (t) { + t.plan(1); + t.equal( + inspect(obj), + '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' + ); +}); diff --git a/node_modules/object-inspect/test/values.js b/node_modules/object-inspect/test/values.js new file mode 100644 index 0000000..15986cd --- /dev/null +++ b/node_modules/object-inspect/test/values.js @@ -0,0 +1,261 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); +var mockProperty = require('mock-property'); +var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = require('has-tostringtag/shams')(); +var forEach = require('for-each'); +var semver = require('semver'); + +test('values', function (t) { + t.plan(1); + var obj = [{}, [], { 'a-b': 5 }]; + t.equal(inspect(obj), '[ {}, [], { \'a-b\': 5 } ]'); +}); + +test('arrays with properties', function (t) { + t.plan(1); + var arr = [3]; + arr.foo = 'bar'; + var obj = [1, 2, arr]; + obj.baz = 'quux'; + obj.index = -1; + t.equal(inspect(obj), '[ 1, 2, [ 3, foo: \'bar\' ], baz: \'quux\', index: -1 ]'); +}); + +test('has', function (t) { + t.plan(1); + t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); + + t.equal(inspect({ a: 1, b: 2 }), '{ a: 1, b: 2 }'); +}); + +test('indexOf seen', function (t) { + t.plan(1); + var xs = [1, 2, 3, {}]; + xs.push(xs); + + var seen = []; + seen.indexOf = undefined; + + t.equal( + inspect(xs, {}, 0, seen), + '[ 1, 2, 3, {}, [Circular] ]' + ); +}); + +test('seen seen', function (t) { + t.plan(1); + var xs = [1, 2, 3]; + + var seen = [xs]; + seen.indexOf = undefined; + + t.equal( + inspect(xs, {}, 0, seen), + '[Circular]' + ); +}); + +test('seen seen seen', function (t) { + t.plan(1); + var xs = [1, 2, 3]; + + var seen = [5, xs]; + seen.indexOf = undefined; + + t.equal( + inspect(xs, {}, 0, seen), + '[Circular]' + ); +}); + +test('symbols', { skip: !hasSymbols }, function (t) { + var sym = Symbol('foo'); + t.equal(inspect(sym), 'Symbol(foo)', 'Symbol("foo") should be "Symbol(foo)"'); + if (typeof sym === 'symbol') { + // Symbol shams are incapable of differentiating boxed from unboxed symbols + t.equal(inspect(Object(sym)), 'Object(Symbol(foo))', 'Object(Symbol("foo")) should be "Object(Symbol(foo))"'); + } + + t.test('toStringTag', { skip: !hasToStringTag }, function (st) { + st.plan(1); + + var faker = {}; + faker[Symbol.toStringTag] = 'Symbol'; + st.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'Symbol\' }', + 'object lying about being a Symbol inspects as an object' + ); + }); + + t.end(); +}); + +test('Map', { skip: typeof Map !== 'function' }, function (t) { + var map = new Map(); + map.set({ a: 1 }, ['b']); + map.set(3, NaN); + var expectedString = 'Map (2) {' + inspect({ a: 1 }) + ' => ' + inspect(['b']) + ', 3 => NaN}'; + t.equal(inspect(map), expectedString, 'new Map([[{ a: 1 }, ["b"]], [3, NaN]]) should show size and contents'); + t.equal(inspect(new Map()), 'Map (0) {}', 'empty Map should show as empty'); + + var nestedMap = new Map(); + nestedMap.set(nestedMap, map); + t.equal(inspect(nestedMap), 'Map (1) {[Circular] => ' + expectedString + '}', 'Map containing a Map should work'); + + t.end(); +}); + +test('WeakMap', { skip: typeof WeakMap !== 'function' }, function (t) { + var map = new WeakMap(); + map.set({ a: 1 }, ['b']); + var expectedString = 'WeakMap { ? }'; + t.equal(inspect(map), expectedString, 'new WeakMap([[{ a: 1 }, ["b"]]]) should not show size or contents'); + t.equal(inspect(new WeakMap()), 'WeakMap { ? }', 'empty WeakMap should not show as empty'); + + t.end(); +}); + +test('Set', { skip: typeof Set !== 'function' }, function (t) { + var set = new Set(); + set.add({ a: 1 }); + set.add(['b']); + var expectedString = 'Set (2) {' + inspect({ a: 1 }) + ', ' + inspect(['b']) + '}'; + t.equal(inspect(set), expectedString, 'new Set([{ a: 1 }, ["b"]]) should show size and contents'); + t.equal(inspect(new Set()), 'Set (0) {}', 'empty Set should show as empty'); + + var nestedSet = new Set(); + nestedSet.add(set); + nestedSet.add(nestedSet); + t.equal(inspect(nestedSet), 'Set (2) {' + expectedString + ', [Circular]}', 'Set containing a Set should work'); + + t.end(); +}); + +test('WeakSet', { skip: typeof WeakSet !== 'function' }, function (t) { + var map = new WeakSet(); + map.add({ a: 1 }); + var expectedString = 'WeakSet { ? }'; + t.equal(inspect(map), expectedString, 'new WeakSet([{ a: 1 }]) should not show size or contents'); + t.equal(inspect(new WeakSet()), 'WeakSet { ? }', 'empty WeakSet should not show as empty'); + + t.end(); +}); + +test('WeakRef', { skip: typeof WeakRef !== 'function' }, function (t) { + var ref = new WeakRef({ a: 1 }); + var expectedString = 'WeakRef { ? }'; + t.equal(inspect(ref), expectedString, 'new WeakRef({ a: 1 }) should not show contents'); + + t.end(); +}); + +test('FinalizationRegistry', { skip: typeof FinalizationRegistry !== 'function' }, function (t) { + var registry = new FinalizationRegistry(function () {}); + var expectedString = 'FinalizationRegistry [FinalizationRegistry] {}'; + t.equal(inspect(registry), expectedString, 'new FinalizationRegistry(function () {}) should work normallys'); + + t.end(); +}); + +test('Strings', function (t) { + var str = 'abc'; + + t.equal(inspect(str), "'" + str + "'", 'primitive string shows as such'); + t.equal(inspect(str, { quoteStyle: 'single' }), "'" + str + "'", 'primitive string shows as such, single quoted'); + t.equal(inspect(str, { quoteStyle: 'double' }), '"' + str + '"', 'primitive string shows as such, double quoted'); + t.equal(inspect(Object(str)), 'Object(' + inspect(str) + ')', 'String object shows as such'); + t.equal(inspect(Object(str), { quoteStyle: 'single' }), 'Object(' + inspect(str, { quoteStyle: 'single' }) + ')', 'String object shows as such, single quoted'); + t.equal(inspect(Object(str), { quoteStyle: 'double' }), 'Object(' + inspect(str, { quoteStyle: 'double' }) + ')', 'String object shows as such, double quoted'); + + t.end(); +}); + +test('Numbers', function (t) { + var num = 42; + + t.equal(inspect(num), String(num), 'primitive number shows as such'); + t.equal(inspect(Object(num)), 'Object(' + inspect(num) + ')', 'Number object shows as such'); + + t.end(); +}); + +test('Booleans', function (t) { + t.equal(inspect(true), String(true), 'primitive true shows as such'); + t.equal(inspect(Object(true)), 'Object(' + inspect(true) + ')', 'Boolean object true shows as such'); + + t.equal(inspect(false), String(false), 'primitive false shows as such'); + t.equal(inspect(Object(false)), 'Object(' + inspect(false) + ')', 'Boolean false object shows as such'); + + t.end(); +}); + +test('Date', function (t) { + var now = new Date(); + t.equal(inspect(now), String(now), 'Date shows properly'); + t.equal(inspect(new Date(NaN)), 'Invalid Date', 'Invalid Date shows properly'); + + t.end(); +}); + +test('RegExps', function (t) { + t.equal(inspect(/a/g), '/a/g', 'regex shows properly'); + t.equal(inspect(new RegExp('abc', 'i')), '/abc/i', 'new RegExp shows properly'); + + var match = 'abc abc'.match(/[ab]+/); + delete match.groups; // for node < 10 + t.equal(inspect(match), '[ \'ab\', index: 0, input: \'abc abc\' ]', 'RegExp match object shows properly'); + + t.end(); +}); + +test('Proxies', { skip: typeof Proxy !== 'function' || !hasToStringTag }, function (t) { + var target = { proxy: true }; + var fake = new Proxy(target, { has: function () { return false; } }); + + // needed to work around a weird difference in node v6.0 - v6.4 where non-present properties are not logged + var isNode60 = semver.satisfies(process.version, '6.0 - 6.4'); + + forEach([ + 'Boolean', + 'Number', + 'String', + 'Symbol', + 'Date' + ], function (tag) { + target[Symbol.toStringTag] = tag; + + t.equal( + inspect(fake), + '{ ' + (isNode60 ? '' : 'proxy: true, ') + '[Symbol(Symbol.toStringTag)]: \'' + tag + '\' }', + 'Proxy for + ' + tag + ' shows as the target, which has no slots' + ); + }); + + t.end(); +}); + +test('fakers', { skip: !hasToStringTag }, function (t) { + var target = { proxy: false }; + + forEach([ + 'Boolean', + 'Number', + 'String', + 'Symbol', + 'Date' + ], function (tag) { + target[Symbol.toStringTag] = tag; + + t.equal( + inspect(target), + '{ proxy: false, [Symbol(Symbol.toStringTag)]: \'' + tag + '\' }', + 'Object pretending to be ' + tag + ' does not trick us' + ); + }); + + t.end(); +}); diff --git a/node_modules/object-inspect/util.inspect.js b/node_modules/object-inspect/util.inspect.js new file mode 100644 index 0000000..7784fab --- /dev/null +++ b/node_modules/object-inspect/util.inspect.js @@ -0,0 +1 @@ +module.exports = require('util').inspect; diff --git a/node_modules/on-finished/HISTORY.md b/node_modules/on-finished/HISTORY.md new file mode 100644 index 0000000..1917595 --- /dev/null +++ b/node_modules/on-finished/HISTORY.md @@ -0,0 +1,98 @@ +2.4.1 / 2022-02-22 +================== + + * Fix error on early async hooks implementations + +2.4.0 / 2022-02-21 +================== + + * Prevent loss of async hooks context + +2.3.0 / 2015-05-26 +================== + + * Add defined behavior for HTTP `CONNECT` requests + * Add defined behavior for HTTP `Upgrade` requests + * deps: ee-first@1.1.1 + +2.2.1 / 2015-04-22 +================== + + * Fix `isFinished(req)` when data buffered + +2.2.0 / 2014-12-22 +================== + + * Add message object to callback arguments + +2.1.1 / 2014-10-22 +================== + + * Fix handling of pipelined requests + +2.1.0 / 2014-08-16 +================== + + * Check if `socket` is detached + * Return `undefined` for `isFinished` if state unknown + +2.0.0 / 2014-08-16 +================== + + * Add `isFinished` function + * Move to `jshttp` organization + * Remove support for plain socket argument + * Rename to `on-finished` + * Support both `req` and `res` as arguments + * deps: ee-first@1.0.5 + +1.2.2 / 2014-06-10 +================== + + * Reduce listeners added to emitters + - avoids "event emitter leak" warnings when used multiple times on same request + +1.2.1 / 2014-06-08 +================== + + * Fix returned value when already finished + +1.2.0 / 2014-06-05 +================== + + * Call callback when called on already-finished socket + +1.1.4 / 2014-05-27 +================== + + * Support node.js 0.8 + +1.1.3 / 2014-04-30 +================== + + * Make sure errors passed as instanceof `Error` + +1.1.2 / 2014-04-18 +================== + + * Default the `socket` to passed-in object + +1.1.1 / 2014-01-16 +================== + + * Rename module to `finished` + +1.1.0 / 2013-12-25 +================== + + * Call callback when called on already-errored socket + +1.0.1 / 2013-12-20 +================== + + * Actually pass the error to the callback + +1.0.0 / 2013-12-20 +================== + + * Initial release diff --git a/node_modules/on-finished/LICENSE b/node_modules/on-finished/LICENSE new file mode 100644 index 0000000..5931fd2 --- /dev/null +++ b/node_modules/on-finished/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2014 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/on-finished/README.md b/node_modules/on-finished/README.md new file mode 100644 index 0000000..8973cde --- /dev/null +++ b/node_modules/on-finished/README.md @@ -0,0 +1,162 @@ +# on-finished + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Execute a callback when a HTTP request closes, finishes, or errors. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install on-finished +``` + +## API + +```js +var onFinished = require('on-finished') +``` + +### onFinished(res, listener) + +Attach a listener to listen for the response to finish. The listener will +be invoked only once when the response finished. If the response finished +to an error, the first argument will contain the error. If the response +has already finished, the listener will be invoked. + +Listening to the end of a response would be used to close things associated +with the response, like open files. + +Listener is invoked as `listener(err, res)`. + + + +```js +onFinished(res, function (err, res) { + // clean up open fds, etc. + // err contains the error if request error'd +}) +``` + +### onFinished(req, listener) + +Attach a listener to listen for the request to finish. The listener will +be invoked only once when the request finished. If the request finished +to an error, the first argument will contain the error. If the request +has already finished, the listener will be invoked. + +Listening to the end of a request would be used to know when to continue +after reading the data. + +Listener is invoked as `listener(err, req)`. + + + +```js +var data = '' + +req.setEncoding('utf8') +req.on('data', function (str) { + data += str +}) + +onFinished(req, function (err, req) { + // data is read unless there is err +}) +``` + +### onFinished.isFinished(res) + +Determine if `res` is already finished. This would be useful to check and +not even start certain operations if the response has already finished. + +### onFinished.isFinished(req) + +Determine if `req` is already finished. This would be useful to check and +not even start certain operations if the request has already finished. + +## Special Node.js requests + +### HTTP CONNECT method + +The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: + +> The CONNECT method requests that the recipient establish a tunnel to +> the destination origin server identified by the request-target and, +> if successful, thereafter restrict its behavior to blind forwarding +> of packets, in both directions, until the tunnel is closed. Tunnels +> are commonly used to create an end-to-end virtual connection, through +> one or more proxies, which can then be secured using TLS (Transport +> Layer Security, [RFC5246]). + +In Node.js, these request objects come from the `'connect'` event on +the HTTP server. + +When this module is used on a HTTP `CONNECT` request, the request is +considered "finished" immediately, **due to limitations in the Node.js +interface**. This means if the `CONNECT` request contains a request entity, +the request will be considered "finished" even before it has been read. + +There is no such thing as a response object to a `CONNECT` request in +Node.js, so there is no support for one. + +### HTTP Upgrade request + +The meaning of the `Upgrade` header from RFC 7230, section 6.1: + +> The "Upgrade" header field is intended to provide a simple mechanism +> for transitioning from HTTP/1.1 to some other protocol on the same +> connection. + +In Node.js, these request objects come from the `'upgrade'` event on +the HTTP server. + +When this module is used on a HTTP request with an `Upgrade` header, the +request is considered "finished" immediately, **due to limitations in the +Node.js interface**. This means if the `Upgrade` request contains a request +entity, the request will be considered "finished" even before it has been +read. + +There is no such thing as a response object to a `Upgrade` request in +Node.js, so there is no support for one. + +## Example + +The following code ensures that file descriptors are always closed +once the response finishes. + +```js +var destroy = require('destroy') +var fs = require('fs') +var http = require('http') +var onFinished = require('on-finished') + +http.createServer(function onRequest (req, res) { + var stream = fs.createReadStream('package.json') + stream.pipe(res) + onFinished(res, function () { + destroy(stream) + }) +}) +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/on-finished/master?label=ci +[ci-url]: https://github.com/jshttp/on-finished/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/on-finished/master +[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master +[node-image]: https://badgen.net/npm/node/on-finished +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/on-finished +[npm-url]: https://npmjs.org/package/on-finished +[npm-version-image]: https://badgen.net/npm/v/on-finished diff --git a/node_modules/on-finished/index.js b/node_modules/on-finished/index.js new file mode 100644 index 0000000..e68df7b --- /dev/null +++ b/node_modules/on-finished/index.js @@ -0,0 +1,234 @@ +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = onFinished +module.exports.isFinished = isFinished + +/** + * Module dependencies. + * @private + */ + +var asyncHooks = tryRequireAsyncHooks() +var first = require('ee-first') + +/** + * Variables. + * @private + */ + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) } + +/** + * Invoke callback when the response has finished, useful for + * cleaning up resources afterwards. + * + * @param {object} msg + * @param {function} listener + * @return {object} + * @public + */ + +function onFinished (msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg) + return msg + } + + // attach the listener to the message + attachListener(msg, wrap(listener)) + + return msg +} + +/** + * Determine if message is already finished. + * + * @param {object} msg + * @return {boolean} + * @public + */ + +function isFinished (msg) { + var socket = msg.socket + + if (typeof msg.finished === 'boolean') { + // OutgoingMessage + return Boolean(msg.finished || (socket && !socket.writable)) + } + + if (typeof msg.complete === 'boolean') { + // IncomingMessage + return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) + } + + // don't know + return undefined +} + +/** + * Attach a finished listener to the message. + * + * @param {object} msg + * @param {function} callback + * @private + */ + +function attachFinishedListener (msg, callback) { + var eeMsg + var eeSocket + var finished = false + + function onFinish (error) { + eeMsg.cancel() + eeSocket.cancel() + + finished = true + callback(error) + } + + // finished on first message event + eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) + + function onSocket (socket) { + // remove listener + msg.removeListener('socket', onSocket) + + if (finished) return + if (eeMsg !== eeSocket) return + + // finished on first socket event + eeSocket = first([[socket, 'error', 'close']], onFinish) + } + + if (msg.socket) { + // socket already assigned + onSocket(msg.socket) + return + } + + // wait for socket to be assigned + msg.on('socket', onSocket) + + if (msg.socket === undefined) { + // istanbul ignore next: node.js 0.8 patch + patchAssignSocket(msg, onSocket) + } +} + +/** + * Attach the listener to the message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function attachListener (msg, listener) { + var attached = msg.__onFinished + + // create a private single listener with queue + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg) + attachFinishedListener(msg, attached) + } + + attached.queue.push(listener) +} + +/** + * Create listener on message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function createListener (msg) { + function listener (err) { + if (msg.__onFinished === listener) msg.__onFinished = null + if (!listener.queue) return + + var queue = listener.queue + listener.queue = null + + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg) + } + } + + listener.queue = [] + + return listener +} + +/** + * Patch ServerResponse.prototype.assignSocket for node.js 0.8. + * + * @param {ServerResponse} res + * @param {function} callback + * @private + */ + +// istanbul ignore next: node.js 0.8 patch +function patchAssignSocket (res, callback) { + var assignSocket = res.assignSocket + + if (typeof assignSocket !== 'function') return + + // res.on('socket', callback) is broken in 0.8 + res.assignSocket = function _assignSocket (socket) { + assignSocket.call(this, socket) + callback(socket) + } +} + +/** + * Try to require async_hooks + * @private + */ + +function tryRequireAsyncHooks () { + try { + return require('async_hooks') + } catch (e) { + return {} + } +} + +/** + * Wrap function with async resource, if possible. + * AsyncResource.bind static method backported. + * @private + */ + +function wrap (fn) { + var res + + // create anonymous resource + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn') + } + + // incompatible node.js + if (!res || !res.runInAsyncScope) { + return fn + } + + // return bound function + return res.runInAsyncScope.bind(res, fn, null) +} diff --git a/node_modules/on-finished/package.json b/node_modules/on-finished/package.json new file mode 100644 index 0000000..644cd81 --- /dev/null +++ b/node_modules/on-finished/package.json @@ -0,0 +1,39 @@ +{ + "name": "on-finished", + "description": "Execute a callback when a request closes, finishes, or errors", + "version": "2.4.1", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/on-finished", + "dependencies": { + "ee-first": "1.1.1" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.1", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/parseurl/HISTORY.md b/node_modules/parseurl/HISTORY.md new file mode 100644 index 0000000..8e40954 --- /dev/null +++ b/node_modules/parseurl/HISTORY.md @@ -0,0 +1,58 @@ +1.3.3 / 2019-04-15 +================== + + * Fix Node.js 0.8 return value inconsistencies + +1.3.2 / 2017-09-09 +================== + + * perf: reduce overhead for full URLs + * perf: unroll the "fast-path" `RegExp` + +1.3.1 / 2016-01-17 +================== + + * perf: enable strict mode + +1.3.0 / 2014-08-09 +================== + + * Add `parseurl.original` for parsing `req.originalUrl` with fallback + * Return `undefined` if `req.url` is `undefined` + +1.2.0 / 2014-07-21 +================== + + * Cache URLs based on original value + * Remove no-longer-needed URL mis-parse work-around + * Simplify the "fast-path" `RegExp` + +1.1.3 / 2014-07-08 +================== + + * Fix typo + +1.1.2 / 2014-07-08 +================== + + * Seriously fix Node.js 0.8 compatibility + +1.1.1 / 2014-07-08 +================== + + * Fix Node.js 0.8 compatibility + +1.1.0 / 2014-07-08 +================== + + * Incorporate URL href-only parse fast-path + +1.0.1 / 2014-03-08 +================== + + * Add missing `require` + +1.0.0 / 2014-03-08 +================== + + * Genesis from `connect` diff --git a/node_modules/parseurl/LICENSE b/node_modules/parseurl/LICENSE new file mode 100644 index 0000000..27653d3 --- /dev/null +++ b/node_modules/parseurl/LICENSE @@ -0,0 +1,24 @@ + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/parseurl/README.md b/node_modules/parseurl/README.md new file mode 100644 index 0000000..443e716 --- /dev/null +++ b/node_modules/parseurl/README.md @@ -0,0 +1,133 @@ +# parseurl + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse a URL with memoization. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install parseurl +``` + +## API + +```js +var parseurl = require('parseurl') +``` + +### parseurl(req) + +Parse the URL of the given request object (looks at the `req.url` property) +and return the result. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.url` does +not change will return a cached parsed object, rather than parsing again. + +### parseurl.original(req) + +Parse the original URL of the given request object and return the result. +This works by trying to parse `req.originalUrl` if it is a string, otherwise +parses `req.url`. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.originalUrl` +does not change will return a cached parsed object, rather than parsing again. + +## Benchmark + +```bash +$ npm run-script bench + +> parseurl@1.3.3 bench nodejs-parseurl +> node benchmark/index.js + + http_parser@2.8.0 + node@10.6.0 + v8@6.7.288.46-node.13 + uv@1.21.0 + zlib@1.2.11 + ares@1.14.0 + modules@64 + nghttp2@1.32.0 + napi@3 + openssl@1.1.0h + icu@61.1 + unicode@10.0 + cldr@33.0 + tz@2018c + +> node benchmark/fullurl.js + + Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 2,207,842 ops/sec ±3.76% (184 runs sampled) + nativeurl - legacy x 507,180 ops/sec ±0.82% (191 runs sampled) + nativeurl - whatwg x 290,044 ops/sec ±1.96% (189 runs sampled) + parseurl x 488,907 ops/sec ±2.13% (192 runs sampled) + +> node benchmark/pathquery.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 3,812,564 ops/sec ±3.15% (188 runs sampled) + nativeurl - legacy x 2,651,631 ops/sec ±1.68% (189 runs sampled) + nativeurl - whatwg x 161,837 ops/sec ±2.26% (189 runs sampled) + parseurl x 4,166,338 ops/sec ±2.23% (184 runs sampled) + +> node benchmark/samerequest.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object + + 4 tests completed. + + fasturl x 3,821,651 ops/sec ±2.42% (185 runs sampled) + nativeurl - legacy x 2,651,162 ops/sec ±1.90% (187 runs sampled) + nativeurl - whatwg x 175,166 ops/sec ±1.44% (188 runs sampled) + parseurl x 14,912,606 ops/sec ±3.59% (183 runs sampled) + +> node benchmark/simplepath.js + + Parsing URL "/foo/bar" + + 4 tests completed. + + fasturl x 12,421,765 ops/sec ±2.04% (191 runs sampled) + nativeurl - legacy x 7,546,036 ops/sec ±1.41% (188 runs sampled) + nativeurl - whatwg x 198,843 ops/sec ±1.83% (189 runs sampled) + parseurl x 24,244,006 ops/sec ±0.51% (194 runs sampled) + +> node benchmark/slash.js + + Parsing URL "/" + + 4 tests completed. + + fasturl x 17,159,456 ops/sec ±3.25% (188 runs sampled) + nativeurl - legacy x 11,635,097 ops/sec ±3.79% (184 runs sampled) + nativeurl - whatwg x 240,693 ops/sec ±0.83% (189 runs sampled) + parseurl x 42,279,067 ops/sec ±0.55% (190 runs sampled) +``` + +## License + + [MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/parseurl/master +[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master +[node-image]: https://badgen.net/npm/node/parseurl +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/parseurl +[npm-url]: https://npmjs.org/package/parseurl +[npm-version-image]: https://badgen.net/npm/v/parseurl +[travis-image]: https://badgen.net/travis/pillarjs/parseurl/master +[travis-url]: https://travis-ci.org/pillarjs/parseurl diff --git a/node_modules/parseurl/index.js b/node_modules/parseurl/index.js new file mode 100644 index 0000000..ece7223 --- /dev/null +++ b/node_modules/parseurl/index.js @@ -0,0 +1,158 @@ +/*! + * parseurl + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var url = require('url') +var parse = url.parse +var Url = url.Url + +/** + * Module exports. + * @public + */ + +module.exports = parseurl +module.exports.original = originalurl + +/** + * Parse the `req` url with memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function parseurl (req) { + var url = req.url + + if (url === undefined) { + // URL is undefined + return undefined + } + + var parsed = req._parsedUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedUrl = parsed) +}; + +/** + * Parse the `req` original url with fallback and memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function originalurl (req) { + var url = req.originalUrl + + if (typeof url !== 'string') { + // Fallback + return parseurl(req) + } + + var parsed = req._parsedOriginalUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedOriginalUrl = parsed) +}; + +/** + * Parse the `str` url with fast-path short-cut. + * + * @param {string} str + * @return {Object} + * @private + */ + +function fastparse (str) { + if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) { + return parse(str) + } + + var pathname = str + var query = null + var search = null + + // This takes the regexp from https://github.com/joyent/node/pull/7878 + // Which is /^(\/[^?#\s]*)(\?[^#\s]*)?$/ + // And unrolls it into a for loop + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 0x3f: /* ? */ + if (search === null) { + pathname = str.substring(0, i) + query = str.substring(i + 1) + search = str.substring(i) + } + break + case 0x09: /* \t */ + case 0x0a: /* \n */ + case 0x0c: /* \f */ + case 0x0d: /* \r */ + case 0x20: /* */ + case 0x23: /* # */ + case 0xa0: + case 0xfeff: + return parse(str) + } + } + + var url = Url !== undefined + ? new Url() + : {} + + url.path = str + url.href = str + url.pathname = pathname + + if (search !== null) { + url.query = query + url.search = search + } + + return url +} + +/** + * Determine if parsed is still fresh for url. + * + * @param {string} url + * @param {object} parsedUrl + * @return {boolean} + * @private + */ + +function fresh (url, parsedUrl) { + return typeof parsedUrl === 'object' && + parsedUrl !== null && + (Url === undefined || parsedUrl instanceof Url) && + parsedUrl._raw === url +} diff --git a/node_modules/parseurl/package.json b/node_modules/parseurl/package.json new file mode 100644 index 0000000..6b443ca --- /dev/null +++ b/node_modules/parseurl/package.json @@ -0,0 +1,40 @@ +{ + "name": "parseurl", + "description": "parse a url with memoization", + "version": "1.3.3", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "repository": "pillarjs/parseurl", + "license": "MIT", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.1", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "fast-url-parser": "1.1.3", + "istanbul": "0.4.5", + "mocha": "6.1.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --check-leaks --bail --reporter spec test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" + } +} diff --git a/node_modules/path-to-regexp/LICENSE b/node_modules/path-to-regexp/LICENSE new file mode 100644 index 0000000..983fbe8 --- /dev/null +++ b/node_modules/path-to-regexp/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/path-to-regexp/Readme.md b/node_modules/path-to-regexp/Readme.md new file mode 100644 index 0000000..95452a6 --- /dev/null +++ b/node_modules/path-to-regexp/Readme.md @@ -0,0 +1,35 @@ +# Path-to-RegExp + +Turn an Express-style path string such as `/user/:name` into a regular expression. + +**Note:** This is a legacy branch. You should upgrade to `1.x`. + +## Usage + +```javascript +var pathToRegexp = require('path-to-regexp'); +``` + +### pathToRegexp(path, keys, options) + + - **path** A string in the express format, an array of such strings, or a regular expression + - **keys** An array to be populated with the keys present in the url. Once the function completes, this will be an array of strings. + - **options** + - **options.sensitive** Defaults to false, set this to true to make routes case sensitive + - **options.strict** Defaults to false, set this to true to make the trailing slash matter. + - **options.end** Defaults to true, set this to false to only match the prefix of the URL. + +```javascript +var keys = []; +var exp = pathToRegexp('/foo/:bar', keys); +//keys = ['bar'] +//exp = /^\/foo\/(?:([^\/]+?))\/?$/i +``` + +## Live Demo + +You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/). + +## License + + MIT diff --git a/node_modules/path-to-regexp/index.js b/node_modules/path-to-regexp/index.js new file mode 100644 index 0000000..95d2f4b --- /dev/null +++ b/node_modules/path-to-regexp/index.js @@ -0,0 +1,156 @@ +/** + * Expose `pathToRegexp`. + */ + +module.exports = pathToRegexp; + +/** + * Match matching groups in a regular expression. + */ +var MATCHING_GROUP_REGEXP = /\\.|\((?:\?<(.*?)>)?(?!\?)/g; + +/** + * Normalize the given path string, + * returning a regular expression. + * + * An empty array should be passed, + * which will contain the placeholder + * key names. For example "/user/:id" will + * then contain ["id"]. + * + * @param {String|RegExp|Array} path + * @param {Array} keys + * @param {Object} options + * @return {RegExp} + * @api private + */ + +function pathToRegexp(path, keys, options) { + options = options || {}; + keys = keys || []; + var strict = options.strict; + var end = options.end !== false; + var flags = options.sensitive ? '' : 'i'; + var lookahead = options.lookahead !== false; + var extraOffset = 0; + var keysOffset = keys.length; + var i = 0; + var name = 0; + var pos = 0; + var backtrack = ''; + var m; + + if (path instanceof RegExp) { + while (m = MATCHING_GROUP_REGEXP.exec(path.source)) { + if (m[0][0] === '\\') continue; + + keys.push({ + name: m[1] || name++, + optional: false, + offset: m.index + }); + } + + return path; + } + + if (Array.isArray(path)) { + // Map array parts into regexps and return their source. We also pass + // the same keys and options instance into every generation to get + // consistent matching groups before we join the sources together. + path = path.map(function (value) { + return pathToRegexp(value, keys, options).source; + }); + + return new RegExp(path.join('|'), flags); + } + + if (typeof path !== 'string') { + throw new TypeError('path must be a string, array of strings, or regular expression'); + } + + path = path.replace( + /\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g, + function (match, slash, format, key, capture, star, optional, offset) { + if (match[0] === '\\') { + backtrack += match; + pos += 2; + return match; + } + + if (match === '.') { + backtrack += '\\.'; + extraOffset += 1; + pos += 1; + return '\\.'; + } + + if (slash || format) { + backtrack = ''; + } else { + backtrack += path.slice(pos, offset); + } + + pos = offset + match.length; + + if (match === '*') { + extraOffset += 3; + return '(.*)'; + } + + if (match === '/(') { + backtrack += '/'; + extraOffset += 2; + return '/(?:'; + } + + slash = slash || ''; + format = format ? '\\.' : ''; + optional = optional || ''; + capture = capture ? + capture.replace(/\\.|\*/, function (m) { return m === '*' ? '(.*)' : m; }) : + (backtrack ? '((?:(?!/|' + backtrack + ').)+?)' : '([^/' + format + ']+?)'); + + keys.push({ + name: key, + optional: !!optional, + offset: offset + extraOffset + }); + + var result = '(?:' + + format + slash + capture + + (star ? '((?:[/' + format + '].+?)?)' : '') + + ')' + + optional; + + extraOffset += result.length - match.length; + + return result; + }); + + // This is a workaround for handling unnamed matching groups. + while (m = MATCHING_GROUP_REGEXP.exec(path)) { + if (m[0][0] === '\\') continue; + + if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) { + keys.splice(keysOffset + i, 0, { + name: name++, // Unnamed matching groups must be consistently linear. + optional: false, + offset: m.index + }); + } + + i++; + } + + path += strict ? '' : path[path.length - 1] === '/' ? '?' : '/?'; + + // If the path is non-ending, match until the end or a slash. + if (end) { + path += '$'; + } else if (path[path.length - 1] !== '/') { + path += lookahead ? '(?=/|$)' : '(?:/|$)'; + } + + return new RegExp('^' + path, flags); +}; diff --git a/node_modules/path-to-regexp/package.json b/node_modules/path-to-regexp/package.json new file mode 100644 index 0000000..23b4b6a --- /dev/null +++ b/node_modules/path-to-regexp/package.json @@ -0,0 +1,30 @@ +{ + "name": "path-to-regexp", + "description": "Express style path to RegExp utility", + "version": "0.1.12", + "files": [ + "index.js", + "LICENSE" + ], + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "keywords": [ + "express", + "regexp" + ], + "component": { + "scripts": { + "path-to-regexp": "index.js" + } + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/pillarjs/path-to-regexp.git" + }, + "devDependencies": { + "mocha": "^1.17.1", + "istanbul": "^0.2.6" + } +} diff --git a/node_modules/picomatch/CHANGELOG.md b/node_modules/picomatch/CHANGELOG.md new file mode 100644 index 0000000..8ccc6c1 --- /dev/null +++ b/node_modules/picomatch/CHANGELOG.md @@ -0,0 +1,136 @@ +# Release history + +**All notable changes to this project will be documented in this file.** + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## 2.3.1 (2022-01-02) + +### Fixed + +* Fixes bug when a pattern containing an expression after the closing parenthesis (`/!(*.d).{ts,tsx}`) was incorrectly converted to regexp ([9f241ef](https://github.com/micromatch/picomatch/commit/9f241ef)). + +### Changed + +* Some documentation improvements ([f81d236](https://github.com/micromatch/picomatch/commit/f81d236), [421e0e7](https://github.com/micromatch/picomatch/commit/421e0e7)). + +## 2.3.0 (2021-05-21) + +### Fixed + +* Fixes bug where file names with two dots were not being matched consistently with negation extglobs containing a star ([56083ef](https://github.com/micromatch/picomatch/commit/56083ef)) + +## 2.2.3 (2021-04-10) + +### Fixed + +* Do not skip pattern seperator for square brackets ([fb08a30](https://github.com/micromatch/picomatch/commit/fb08a30)). +* Set negatedExtGlob also if it does not span the whole pattern ([032e3f5](https://github.com/micromatch/picomatch/commit/032e3f5)). + +## 2.2.2 (2020-03-21) + +### Fixed + +* Correctly handle parts of the pattern after parentheses in the `scan` method ([e15b920](https://github.com/micromatch/picomatch/commit/e15b920)). + +## 2.2.1 (2020-01-04) + +* Fixes [#49](https://github.com/micromatch/picomatch/issues/49), so that braces with no sets or ranges are now propertly treated as literals. + +## 2.2.0 (2020-01-04) + +* Disable fastpaths mode for the parse method ([5b8d33f](https://github.com/micromatch/picomatch/commit/5b8d33f)) +* Add `tokens`, `slashes`, and `parts` to the object returned by `picomatch.scan()`. + +## 2.1.0 (2019-10-31) + +* add benchmarks for scan ([4793b92](https://github.com/micromatch/picomatch/commit/4793b92)) +* Add eslint object-curly-spacing rule ([707c650](https://github.com/micromatch/picomatch/commit/707c650)) +* Add prefer-const eslint rule ([5c7501c](https://github.com/micromatch/picomatch/commit/5c7501c)) +* Add support for nonegate in scan API ([275c9b9](https://github.com/micromatch/picomatch/commit/275c9b9)) +* Change lets to consts. Move root import up. ([4840625](https://github.com/micromatch/picomatch/commit/4840625)) +* closes https://github.com/micromatch/picomatch/issues/21 ([766bcb0](https://github.com/micromatch/picomatch/commit/766bcb0)) +* Fix "Extglobs" table in readme ([eb19da8](https://github.com/micromatch/picomatch/commit/eb19da8)) +* fixes https://github.com/micromatch/picomatch/issues/20 ([9caca07](https://github.com/micromatch/picomatch/commit/9caca07)) +* fixes https://github.com/micromatch/picomatch/issues/26 ([fa58f45](https://github.com/micromatch/picomatch/commit/fa58f45)) +* Lint test ([d433a34](https://github.com/micromatch/picomatch/commit/d433a34)) +* lint unit tests ([0159b55](https://github.com/micromatch/picomatch/commit/0159b55)) +* Make scan work with noext ([6c02e03](https://github.com/micromatch/picomatch/commit/6c02e03)) +* minor linting ([c2a2b87](https://github.com/micromatch/picomatch/commit/c2a2b87)) +* minor parser improvements ([197671d](https://github.com/micromatch/picomatch/commit/197671d)) +* remove eslint since it... ([07876fa](https://github.com/micromatch/picomatch/commit/07876fa)) +* remove funding file ([8ebe96d](https://github.com/micromatch/picomatch/commit/8ebe96d)) +* Remove unused funks ([cbc6d54](https://github.com/micromatch/picomatch/commit/cbc6d54)) +* Run eslint during pretest, fix existing eslint findings ([0682367](https://github.com/micromatch/picomatch/commit/0682367)) +* support `noparen` in scan ([3d37569](https://github.com/micromatch/picomatch/commit/3d37569)) +* update changelog ([7b34e77](https://github.com/micromatch/picomatch/commit/7b34e77)) +* update travis ([777f038](https://github.com/micromatch/picomatch/commit/777f038)) +* Use eslint-disable-next-line instead of eslint-disable ([4e7c1fd](https://github.com/micromatch/picomatch/commit/4e7c1fd)) + +## 2.0.7 (2019-05-14) + +* 2.0.7 ([9eb9a71](https://github.com/micromatch/picomatch/commit/9eb9a71)) +* supports lookbehinds ([1f63f7e](https://github.com/micromatch/picomatch/commit/1f63f7e)) +* update .verb.md file with typo change ([2741279](https://github.com/micromatch/picomatch/commit/2741279)) +* fix: typo in README ([0753e44](https://github.com/micromatch/picomatch/commit/0753e44)) + +## 2.0.4 (2019-04-10) + +### Fixed + +- Readme link [fixed](https://github.com/micromatch/picomatch/pull/13/commits/a96ab3aa2b11b6861c23289964613d85563b05df) by @danez. +- `options.capture` now works as expected when fastpaths are enabled. See https://github.com/micromatch/picomatch/pull/12/commits/26aefd71f1cfaf95c37f1c1fcab68a693b037304. Thanks to @DrPizza. + +## 2.0.0 (2019-04-10) + +### Added + +- Adds support for `options.onIgnore`. See the readme for details +- Adds support for `options.onResult`. See the readme for details + +### Breaking changes + +- The unixify option was renamed to `windows` +- caching and all related options and methods have been removed + +## 1.0.0 (2018-11-05) + +- adds `.onMatch` option +- improvements to `.scan` method +- numerous improvements and optimizations for matching and parsing +- better windows path handling + +## 0.1.0 - 2017-04-13 + +First release. + + +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog diff --git a/node_modules/picomatch/LICENSE b/node_modules/picomatch/LICENSE new file mode 100644 index 0000000..3608dca --- /dev/null +++ b/node_modules/picomatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-present, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/picomatch/README.md b/node_modules/picomatch/README.md new file mode 100644 index 0000000..b0526e2 --- /dev/null +++ b/node_modules/picomatch/README.md @@ -0,0 +1,708 @@ +

Picomatch

+ +

+ +version + + +test status + + +coverage status + + +downloads + +

+ +
+
+ +

+Blazing fast and accurate glob matcher written in JavaScript.
+No dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions. +

+ +
+
+ +## Why picomatch? + +* **Lightweight** - No dependencies +* **Minimal** - Tiny API surface. Main export is a function that takes a glob pattern and returns a matcher function. +* **Fast** - Loads in about 2ms (that's several times faster than a [single frame of a HD movie](http://www.endmemo.com/sconvert/framespersecondframespermillisecond.php) at 60fps) +* **Performant** - Use the returned matcher function to speed up repeat matching (like when watching files) +* **Accurate matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories, [advanced globbing](#advanced-globbing) with extglobs, braces, and POSIX brackets, and support for escaping special characters with `\` or quotes. +* **Well tested** - Thousands of unit tests + +See the [library comparison](#library-comparisons) to other libraries. + +
+
+ +## Table of Contents + +
Click to expand + +- [Install](#install) +- [Usage](#usage) +- [API](#api) + * [picomatch](#picomatch) + * [.test](#test) + * [.matchBase](#matchbase) + * [.isMatch](#ismatch) + * [.parse](#parse) + * [.scan](#scan) + * [.compileRe](#compilere) + * [.makeRe](#makere) + * [.toRegex](#toregex) +- [Options](#options) + * [Picomatch options](#picomatch-options) + * [Scan Options](#scan-options) + * [Options Examples](#options-examples) +- [Globbing features](#globbing-features) + * [Basic globbing](#basic-globbing) + * [Advanced globbing](#advanced-globbing) + * [Braces](#braces) + * [Matching special characters as literals](#matching-special-characters-as-literals) +- [Library Comparisons](#library-comparisons) +- [Benchmarks](#benchmarks) +- [Philosophies](#philosophies) +- [About](#about) + * [Author](#author) + * [License](#license) + +_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ + +
+ +
+
+ +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +npm install --save picomatch +``` + +
+ +## Usage + +The main export is a function that takes a glob pattern and an options object and returns a function for matching strings. + +```js +const pm = require('picomatch'); +const isMatch = pm('*.js'); + +console.log(isMatch('abcd')); //=> false +console.log(isMatch('a.js')); //=> true +console.log(isMatch('a.md')); //=> false +console.log(isMatch('a/b.js')); //=> false +``` + +
+ +## API + +### [picomatch](lib/picomatch.js#L32) + +Creates a matcher function from one or more glob patterns. The returned function takes a string to match as its first argument, and returns true if the string is a match. The returned matcher function also takes a boolean as the second argument that, when true, returns an object with additional information. + +**Params** + +* `globs` **{String|Array}**: One or more glob patterns. +* `options` **{Object=}** +* `returns` **{Function=}**: Returns a matcher function. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch(glob[, options]); + +const isMatch = picomatch('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.test](lib/picomatch.js#L117) + +Test `input` with the given `regex`. This is used by the main `picomatch()` function to test the input string. + +**Params** + +* `input` **{String}**: String to test. +* `regex` **{RegExp}** +* `returns` **{Object}**: Returns an object with matching info. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.test(input, regex[, options]); + +console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); +// { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } +``` + +### [.matchBase](lib/picomatch.js#L161) + +Match the basename of a filepath. + +**Params** + +* `input` **{String}**: String to test. +* `glob` **{RegExp|String}**: Glob pattern or regex created by [.makeRe](#makeRe). +* `returns` **{Boolean}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.matchBase(input, glob[, options]); +console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true +``` + +### [.isMatch](lib/picomatch.js#L183) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* **{String|Array}**: str The string to test. +* **{String|Array}**: patterns One or more glob patterns to use for matching. +* **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.isMatch(string, patterns[, options]); + +console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(picomatch.isMatch('a.a', 'b.*')); //=> false +``` + +### [.parse](lib/picomatch.js#L199) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as a regex source string. + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.parse(pattern[, options]); +``` + +### [.scan](lib/picomatch.js#L231) + +Scan a glob pattern to separate the pattern into segments. + +**Params** + +* `input` **{String}**: Glob pattern to scan. +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.scan(input[, options]); + +const result = picomatch.scan('!./foo/*.js'); +console.log(result); +{ prefix: '!./', + input: '!./foo/*.js', + start: 3, + base: 'foo', + glob: '*.js', + isBrace: false, + isBracket: false, + isGlob: true, + isExtglob: false, + isGlobstar: false, + negated: true } +``` + +### [.compileRe](lib/picomatch.js#L245) + +Compile a regular expression from the `state` object returned by the +[parse()](#parse) method. + +**Params** + +* `state` **{Object}** +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Intended for implementors, this argument allows you to return the raw output from the parser. +* `returnState` **{Boolean}**: Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. +* `returns` **{RegExp}** + +### [.makeRe](lib/picomatch.js#L286) + +Create a regular expression from a parsed glob pattern. + +**Params** + +* `state` **{String}**: The object returned from the `.parse` method. +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. +* `returnState` **{Boolean}**: Implementors may use this argument to return the state from the parsed glob with the returned regular expression. +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const picomatch = require('picomatch'); +const state = picomatch.parse('*.js'); +// picomatch.compileRe(state[, options]); + +console.log(picomatch.compileRe(state)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +### [.toRegex](lib/picomatch.js#L321) + +Create a regular expression from the given regex source string. + +**Params** + +* `source` **{String}**: Regular expression source string. +* `options` **{Object}** +* `returns` **{RegExp}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.toRegex(source[, options]); + +const { output } = picomatch.parse('*.js'); +console.log(picomatch.toRegex(output)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +
+ +## Options + +### Picomatch options + +The following options may be used with the main `picomatch()` function or any of the methods on the picomatch API. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Enable dotfile matching. By default, dotfiles are ignored unless a `.` is explicitly defined in the pattern, or `options.dot` is true | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. | +| `failglob` | `boolean` | `false` | Throws an error if no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `string` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Make matching case-insensitive. Equivalent to the regex `i` flag. Note that this option is overridden by the `flags` option. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with extglobs (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support POSIX character classes ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `boolean` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove backslashes preceding escaped characters in the glob pattern. By default, backslashes are retained. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatibility. | + +picomatch has automatic detection for regex positive and negative lookbehinds. If the pattern contains a negative lookbehind, you must be using Node.js >= 8.10 or else picomatch will throw an error. + +### Scan Options + +In addition to the main [picomatch options](#picomatch-options), the following options may also be used with the [.scan](#scan) method. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `tokens` | `boolean` | `false` | When `true`, the returned object will include an array of tokens (objects), representing each path "segment" in the scanned glob pattern | +| `parts` | `boolean` | `false` | When `true`, the returned object will include an array of strings representing each path "segment" in the scanned glob pattern. This is automatically enabled when `options.tokens` is true | + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.scan('!./foo/*.js', { tokens: true }); +console.log(result); +// { +// prefix: '!./', +// input: '!./foo/*.js', +// start: 3, +// base: 'foo', +// glob: '*.js', +// isBrace: false, +// isBracket: false, +// isGlob: true, +// isExtglob: false, +// isGlobstar: false, +// negated: true, +// maxDepth: 2, +// tokens: [ +// { value: '!./', depth: 0, isGlob: false, negated: true, isPrefix: true }, +// { value: 'foo', depth: 1, isGlob: false }, +// { value: '*.js', depth: 1, isGlob: true } +// ], +// slashes: [ 2, 6 ], +// parts: [ 'foo', '*.js' ] +// } +``` + +
+ +### Options Examples + +#### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a folder + +```js +const fill = require('fill-range'); +const regex = pm.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex); +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +#### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')); //=> true +``` + +#### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onMatch }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +
+
+ +## Globbing features + +* [Basic globbing](#basic-globbing) (Wildcard matching) +* [Advanced globbing](#advanced-globbing) (extglobs, posix brackets, brace matching) + +### Basic globbing + +| **Character** | **Description** | +| --- | --- | +| `*` | Matches any character zero or more times, excluding path separators. Does _not match_ path separators or hidden files or directories ("dotfiles"), unless explicitly enabled by setting the `dot` option to `true`. | +| `**` | Matches any character zero or more times, including path separators. Note that `**` will only match path separators (`/`, and `\\` on Windows) when they are the only characters in a path segment. Thus, `foo**/bar` is equivalent to `foo*/bar`, and `foo/a**b/bar` is equivalent to `foo/a*b/bar`, and _more than two_ consecutive stars in a glob path segment are regarded as _a single star_. Thus, `foo/***/bar` is equivalent to `foo/*/bar`. | +| `?` | Matches any character excluding path separators one time. Does _not match_ path separators or leading dots. | +| `[abc]` | Matches any characters inside the brackets. For example, `[abc]` would match the characters `a`, `b` or `c`, and nothing else. | + +#### Matching behavior vs. Bash + +Picomatch's matching features and expected results in unit tests are based on Bash's unit tests and the Bash 4.3 specification, with the following exceptions: + +* Bash will match `foo/bar/baz` with `*`. Picomatch only matches nested directories with `**`. +* Bash greedily matches with negated extglobs. For example, Bash 4.3 says that `!(foo)*` should match `foo` and `foobar`, since the trailing `*` bracktracks to match the preceding pattern. This is very memory-inefficient, and IMHO, also incorrect. Picomatch would return `false` for both `foo` and `foobar`. + +
+ +### Advanced globbing + +* [extglobs](#extglobs) +* [POSIX brackets](#posix-brackets) +* [Braces](#brace-expansion) + +#### Extglobs + +| **Pattern** | **Description** | +| --- | --- | +| `@(pattern)` | Match _only one_ consecutive occurrence of `pattern` | +| `*(pattern)` | Match _zero or more_ consecutive occurrences of `pattern` | +| `+(pattern)` | Match _one or more_ consecutive occurrences of `pattern` | +| `?(pattern)` | Match _zero or **one**_ consecutive occurrences of `pattern` | +| `!(pattern)` | Match _anything but_ `pattern` | + +**Examples** + +```js +const pm = require('picomatch'); + +// *(pattern) matches ZERO or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// +(pattern) matches ONE or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// supports multiple extglobs +console.log(pm.isMatch('foo.bar', '!(foo).!(bar)')); // false + +// supports nested extglobs +console.log(pm.isMatch('foo.bar', '!(!(foo)).!(!(bar))')); // true +``` + +#### POSIX brackets + +POSIX classes are disabled by default. Enable this feature by setting the `posix` option to true. + +**Enable POSIX bracket support** + +```js +console.log(pm.makeRe('[[:word:]]+', { posix: true })); +//=> /^(?:(?=.)[A-Za-z0-9_]+\/?)$/ +``` + +**Supported POSIX classes** + +The following named POSIX bracket expressions are supported: + +* `[:alnum:]` - Alphanumeric characters, equ `[a-zA-Z0-9]` +* `[:alpha:]` - Alphabetical characters, equivalent to `[a-zA-Z]`. +* `[:ascii:]` - ASCII characters, equivalent to `[\\x00-\\x7F]`. +* `[:blank:]` - Space and tab characters, equivalent to `[ \\t]`. +* `[:cntrl:]` - Control characters, equivalent to `[\\x00-\\x1F\\x7F]`. +* `[:digit:]` - Numerical digits, equivalent to `[0-9]`. +* `[:graph:]` - Graph characters, equivalent to `[\\x21-\\x7E]`. +* `[:lower:]` - Lowercase letters, equivalent to `[a-z]`. +* `[:print:]` - Print characters, equivalent to `[\\x20-\\x7E ]`. +* `[:punct:]` - Punctuation and symbols, equivalent to `[\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~]`. +* `[:space:]` - Extended space characters, equivalent to `[ \\t\\r\\n\\v\\f]`. +* `[:upper:]` - Uppercase letters, equivalent to `[A-Z]`. +* `[:word:]` - Word characters (letters, numbers and underscores), equivalent to `[A-Za-z0-9_]`. +* `[:xdigit:]` - Hexadecimal digits, equivalent to `[A-Fa-f0-9]`. + +See the [Bash Reference Manual](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html) for more information. + +### Braces + +Picomatch does not do brace expansion. For [brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) and advanced matching with braces, use [micromatch](https://github.com/micromatch/micromatch) instead. Picomatch has very basic support for braces. + +### Matching special characters as literals + +If you wish to match the following special characters in a filepath, and you want to use these characters in your glob pattern, they must be escaped with backslashes or quotes: + +**Special Characters** + +Some characters that are used for matching in regular expressions are also regarded as valid file path characters on some platforms. + +To match any of the following characters as literals: `$^*+?()[] + +Examples: + +```js +console.log(pm.makeRe('foo/bar \\(1\\)')); +console.log(pm.makeRe('foo/bar \\(1\\)')); +``` + +
+
+ +## Library Comparisons + +The following table shows which features are supported by [minimatch](https://github.com/isaacs/minimatch), [micromatch](https://github.com/micromatch/micromatch), [picomatch](https://github.com/micromatch/picomatch), [nanomatch](https://github.com/micromatch/nanomatch), [extglob](https://github.com/micromatch/extglob), [braces](https://github.com/micromatch/braces), and [expand-brackets](https://github.com/micromatch/expand-brackets). + +| **Feature** | `minimatch` | `micromatch` | `picomatch` | `nanomatch` | `extglob` | `braces` | `expand-brackets` | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Wildcard matching (`*?+`) | ✔ | ✔ | ✔ | ✔ | - | - | - | +| Advancing globbing | ✔ | ✔ | ✔ | - | - | - | - | +| Brace _matching_ | ✔ | ✔ | ✔ | - | - | ✔ | - | +| Brace _expansion_ | ✔ | ✔ | - | - | - | ✔ | - | +| Extglobs | partial | ✔ | ✔ | - | ✔ | - | - | +| Posix brackets | - | ✔ | ✔ | - | - | - | ✔ | +| Regular expression syntax | - | ✔ | ✔ | ✔ | ✔ | - | ✔ | +| File system operations | - | - | - | - | - | - | - | + +
+
+ +## Benchmarks + +Performance comparison of picomatch and minimatch. + +``` +# .makeRe star + picomatch x 1,993,050 ops/sec ±0.51% (91 runs sampled) + minimatch x 627,206 ops/sec ±1.96% (87 runs sampled)) + +# .makeRe star; dot=true + picomatch x 1,436,640 ops/sec ±0.62% (91 runs sampled) + minimatch x 525,876 ops/sec ±0.60% (88 runs sampled) + +# .makeRe globstar + picomatch x 1,592,742 ops/sec ±0.42% (90 runs sampled) + minimatch x 962,043 ops/sec ±1.76% (91 runs sampled)d) + +# .makeRe globstars + picomatch x 1,615,199 ops/sec ±0.35% (94 runs sampled) + minimatch x 477,179 ops/sec ±1.33% (91 runs sampled) + +# .makeRe with leading star + picomatch x 1,220,856 ops/sec ±0.40% (92 runs sampled) + minimatch x 453,564 ops/sec ±1.43% (94 runs sampled) + +# .makeRe - basic braces + picomatch x 392,067 ops/sec ±0.70% (90 runs sampled) + minimatch x 99,532 ops/sec ±2.03% (87 runs sampled)) +``` + +
+
+ +## Philosophies + +The goal of this library is to be blazing fast, without compromising on accuracy. + +**Accuracy** + +The number one of goal of this library is accuracy. However, it's not unusual for different glob implementations to have different rules for matching behavior, even with simple wildcard matching. It gets increasingly more complicated when combinations of different features are combined, like when extglobs are combined with globstars, braces, slashes, and so on: `!(**/{a,b,*/c})`. + +Thus, given that there is no canonical glob specification to use as a single source of truth when differences of opinion arise regarding behavior, sometimes we have to implement our best judgement and rely on feedback from users to make improvements. + +**Performance** + +Although this library performs well in benchmarks, and in most cases it's faster than other popular libraries we benchmarked against, we will always choose accuracy over performance. It's not helpful to anyone if our library is faster at returning the wrong answer. + +
+
+ +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2017-present, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). diff --git a/node_modules/picomatch/index.js b/node_modules/picomatch/index.js new file mode 100644 index 0000000..d2f2bc5 --- /dev/null +++ b/node_modules/picomatch/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./lib/picomatch'); diff --git a/node_modules/picomatch/lib/constants.js b/node_modules/picomatch/lib/constants.js new file mode 100644 index 0000000..a62ef38 --- /dev/null +++ b/node_modules/picomatch/lib/constants.js @@ -0,0 +1,179 @@ +'use strict'; + +const path = require('path'); +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; + +/** + * Posix glob regex + */ + +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; + +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; + +/** + * Windows glob regex + */ + +const WINDOWS_CHARS = { + ...POSIX_CHARS, + + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}; + +/** + * POSIX Bracket Regex + */ + +const POSIX_REGEX_SOURCE = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; + +module.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ + + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ + + CHAR_ASTERISK: 42, /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + + SEP: path.sep, + + /** + * Create EXTGLOB_CHARS + */ + + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, + + /** + * Create GLOB_CHARS + */ + + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } +}; diff --git a/node_modules/picomatch/lib/parse.js b/node_modules/picomatch/lib/parse.js new file mode 100644 index 0000000..58269d0 --- /dev/null +++ b/node_modules/picomatch/lib/parse.js @@ -0,0 +1,1091 @@ +'use strict'; + +const constants = require('./constants'); +const utils = require('./utils'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants; + +/** + * Helpers + */ + +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } + + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils.escapeRegex(v)).join('..'); + } + + return value; +}; + +/** + * Create the message for a syntax error + */ + +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; + +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ + +const parse = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + input = REPLACEMENTS[input] || input; + + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; + + const capture = opts.capture ? '' : '?:'; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; + } + + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + + input = utils.removePrefix(input, state); + len = input.length; + + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + + /** + * Tokenizing helpers + */ + + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ''; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; + + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + + const negate = () => { + let count = 1; + + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } + + if (count % 2 === 0) { + return false; + } + + state.negated = true; + state.start++; + return true; + }; + + const increment = type => { + state[type]++; + stack.push(type); + }; + + const decrement = type => { + state[type]--; + stack.pop(); + }; + + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ + + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } + + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; + } + + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; + } + + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; + + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; + + if (token.type === 'negate') { + let extglobStar = star; + + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); + } + + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis. + // In this case, we need to parse the string and use it in the output of the original pattern. + // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`. + // + // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`. + const expression = parse(rest, { ...options, fastpaths: false }).output; + + output = token.close = `)${expression})${extglobStar})`; + } + + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } + } + + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; + + /** + * Fast paths + */ + + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } + + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } + + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } + } + + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + + state.output = utils.wrapOutput(output, state, options); + return state; + } + + /** + * Tokenize input until we reach end-of-string + */ + + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; + } + + /** + * Escaped characters + */ + + if (value === '\\') { + const next = peek(); + + if (next === '/' && opts.bash !== true) { + continue; + } + + if (next === '.' || next === ';') { + continue; + } + + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } + + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; + + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } + + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } + + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ + + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; + + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } + + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } + + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } + + prev.value += value; + append({ value }); + continue; + } + + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ + + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } + + /** + * Double quotes + */ + + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } + + /** + * Parentheses + */ + + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } + + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } + + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; + } + + /** + * Square brackets + */ + + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); + } + + value = `\\${value}`; + } else { + increment('brackets'); + } + + push({ type: 'bracket', value }); + continue; + } + + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); + } + + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + decrement('brackets'); + + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } + + prev.value += value; + append({ value }); + + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + + /** + * Braces + */ + + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + + braces.push(open); + push(open); + continue; + } + + if (value === '}') { + const brace = braces[braces.length - 1]; + + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } + + let output = ')'; + + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; + } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } + + output = expandRange(range, opts); + state.backtrack = true; + } + + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); + } + } + + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; + } + + /** + * Pipes + */ + + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; + } + + /** + * Commas + */ + + if (value === ',') { + let output = value; + + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } + + push({ type: 'comma', value, output }); + continue; + } + + /** + * Slashes + */ + + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } + + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } + + /** + * Dots + */ + + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } + + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } + + /** + * Question marks + */ + + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } + + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; + + if (next === '<' && !utils.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } + + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } + + push({ type: 'text', value, output }); + continue; + } + + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } + + push({ type: 'qmark', value, output: QMARK }); + continue; + } + + /** + * Exclamation + */ + + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } + + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + + /** + * Plus + */ + + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } + + if ((prev && prev.value === '(') || opts.regex === false) { + push({ type: 'plus', value, output: PLUS_LITERAL }); + continue; + } + + if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { + push({ type: 'plus', value }); + continue; + } + + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } + + /** + * Plain text + */ + + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Plain text + */ + + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } + + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Stars + */ + + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } + + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } + + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; + } + + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; + } + + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; + } + rest = rest.slice(3); + consume('/**', 3); + } + + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + + state.output += prior.output + prev.output; + state.globstar = true; + + consume(value + advance()); + + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); + + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; + + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + + const token = { type: 'star', value, output: star }; + + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } + push(token); + continue; + } + + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } + + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + + } else { + state.output += nodot; + prev.output += nodot; + } + + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + + push(token); + } + + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils.escapeLast(state.output, '['); + decrement('brackets'); + } + + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils.escapeLast(state.output, '('); + decrement('parens'); + } + + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils.escapeLast(state.output, '{'); + decrement('braces'); + } + + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); + } + + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; + + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + + if (token.suffix) { + state.output += token.suffix; + } + } + } + + return state; +}; + +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ + +parse.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; + + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + + case '**': + return nodot + globstar(opts); + + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + + const source = create(match[1]); + if (!source) return; + + return source + DOT_LITERAL + match[2]; + } + } + }; + + const output = utils.removePrefix(input, state); + let source = create(output); + + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + + return source; +}; + +module.exports = parse; diff --git a/node_modules/picomatch/lib/picomatch.js b/node_modules/picomatch/lib/picomatch.js new file mode 100644 index 0000000..782d809 --- /dev/null +++ b/node_modules/picomatch/lib/picomatch.js @@ -0,0 +1,342 @@ +'use strict'; + +const path = require('path'); +const scan = require('./scan'); +const parse = require('./parse'); +const utils = require('./utils'); +const constants = require('./constants'); +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); + +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ + +const picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } + + const isState = isObject(glob) && glob.tokens && glob.input; + + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } + + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState + ? picomatch.compileRe(glob, options) + : picomatch.makeRe(glob, options, false, true); + + const state = regex.state; + delete regex.state; + + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; + + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } + + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + + if (returnState) { + matcher.state = state; + } + + return matcher; +}; + +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ + +picomatch.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } + + if (input === '') { + return { isMatch: false, output: '' }; + } + + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; + + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + + return { isMatch: Boolean(match), match, output }; +}; + +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ + +picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); +}; + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ + +picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); + return parse(pattern, { ...options, fastpaths: false }); +}; + +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +picomatch.scan = (input, options) => scan(input, options); + +/** + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public + */ + +picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } + + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + + return regex; +}; + +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } + + let parsed = { negated: false, fastpaths: true }; + + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse.fastpaths(input, options); + } + + if (!parsed.output) { + parsed = parse(input, options); + } + + return picomatch.compileRe(parsed, options, returnOutput, returnState); +}; + +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; + +/** + * Picomatch constants. + * @return {Object} + */ + +picomatch.constants = constants; + +/** + * Expose "picomatch" + */ + +module.exports = picomatch; diff --git a/node_modules/picomatch/lib/scan.js b/node_modules/picomatch/lib/scan.js new file mode 100644 index 0000000..e59cd7a --- /dev/null +++ b/node_modules/picomatch/lib/scan.js @@ -0,0 +1,391 @@ +'use strict'; + +const utils = require('./utils'); +const { + CHAR_ASTERISK, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET /* ] */ +} = require('./constants'); + +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } +}; + +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ + +const scan = (input, options) => { + const opts = options || {}; + + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; + + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + + while (index < length) { + code = advance(); + let next; + + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; + + if (finished === true) continue; + if (prev === CHAR_DOT && index === (start + 1)) { + start += 2; + continue; + } + + lastIndex = index + 1; + continue; + } + + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; + + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + + if (isGlob === true) { + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + } + + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + + let base = str; + let prefix = ''; + let glob = ''; + + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } + + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + + if (opts.unescape === true) { + if (glob) glob = utils.removeBackslashes(glob); + + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== '') { + parts.push(value); + } + prevIndex = i; + } + + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + + state.slashes = slashes; + state.parts = parts; + } + + return state; +}; + +module.exports = scan; diff --git a/node_modules/picomatch/lib/utils.js b/node_modules/picomatch/lib/utils.js new file mode 100644 index 0000000..c3ca766 --- /dev/null +++ b/node_modules/picomatch/lib/utils.js @@ -0,0 +1,64 @@ +'use strict'; + +const path = require('path'); +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = require('./constants'); + +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; + +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; + } + return false; +}; + +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } + return win32 === true || path.sep === '\\'; +}; + +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; + +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } + return output; +}; + +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; +}; diff --git a/node_modules/picomatch/package.json b/node_modules/picomatch/package.json new file mode 100644 index 0000000..3db22d4 --- /dev/null +++ b/node_modules/picomatch/package.json @@ -0,0 +1,81 @@ +{ + "name": "picomatch", + "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", + "version": "2.3.1", + "homepage": "https://github.com/micromatch/picomatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "funding": "https://github.com/sponsors/jonschlinkert", + "repository": "micromatch/picomatch", + "bugs": { + "url": "https://github.com/micromatch/picomatch/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --reporter dot", + "test": "npm run lint && npm run mocha", + "test:ci": "npm run test:cover", + "test:cover": "nyc npm run mocha" + }, + "devDependencies": { + "eslint": "^6.8.0", + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "glob", + "match", + "picomatch" + ], + "nyc": { + "reporter": [ + "html", + "lcov", + "text-summary" + ] + }, + "verb": { + "toc": { + "render": true, + "method": "preWrite", + "maxdepth": 3 + }, + "layout": "empty", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "micromatch" + ] + }, + "reflinks": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "micromatch", + "minimatch", + "nanomatch", + "picomatch" + ] + } +} diff --git a/node_modules/proxy-addr/HISTORY.md b/node_modules/proxy-addr/HISTORY.md new file mode 100644 index 0000000..8480242 --- /dev/null +++ b/node_modules/proxy-addr/HISTORY.md @@ -0,0 +1,161 @@ +2.0.7 / 2021-05-31 +================== + + * deps: forwarded@0.2.0 + - Use `req.socket` over deprecated `req.connection` + +2.0.6 / 2020-02-24 +================== + + * deps: ipaddr.js@1.9.1 + +2.0.5 / 2019-04-16 +================== + + * deps: ipaddr.js@1.9.0 + +2.0.4 / 2018-07-26 +================== + + * deps: ipaddr.js@1.8.0 + +2.0.3 / 2018-02-19 +================== + + * deps: ipaddr.js@1.6.0 + +2.0.2 / 2017-09-24 +================== + + * deps: forwarded@~0.1.2 + - perf: improve header parsing + - perf: reduce overhead when no `X-Forwarded-For` header + +2.0.1 / 2017-09-10 +================== + + * deps: forwarded@~0.1.1 + - Fix trimming leading / trailing OWS + - perf: hoist regular expression + * deps: ipaddr.js@1.5.2 + +2.0.0 / 2017-08-08 +================== + + * Drop support for Node.js below 0.10 + +1.1.5 / 2017-07-25 +================== + + * Fix array argument being altered + * deps: ipaddr.js@1.4.0 + +1.1.4 / 2017-03-24 +================== + + * deps: ipaddr.js@1.3.0 + +1.1.3 / 2017-01-14 +================== + + * deps: ipaddr.js@1.2.0 + +1.1.2 / 2016-05-29 +================== + + * deps: ipaddr.js@1.1.1 + - Fix IPv6-mapped IPv4 validation edge cases + +1.1.1 / 2016-05-03 +================== + + * Fix regression matching mixed versions against multiple subnets + +1.1.0 / 2016-05-01 +================== + + * Fix accepting various invalid netmasks + - IPv4 netmasks must be contingous + - IPv6 addresses cannot be used as a netmask + * deps: ipaddr.js@1.1.0 + +1.0.10 / 2015-12-09 +=================== + + * deps: ipaddr.js@1.0.5 + - Fix regression in `isValid` with non-string arguments + +1.0.9 / 2015-12-01 +================== + + * deps: ipaddr.js@1.0.4 + - Fix accepting some invalid IPv6 addresses + - Reject CIDRs with negative or overlong masks + * perf: enable strict mode + +1.0.8 / 2015-05-10 +================== + + * deps: ipaddr.js@1.0.1 + +1.0.7 / 2015-03-16 +================== + + * deps: ipaddr.js@0.1.9 + - Fix OOM on certain inputs to `isValid` + +1.0.6 / 2015-02-01 +================== + + * deps: ipaddr.js@0.1.8 + +1.0.5 / 2015-01-08 +================== + + * deps: ipaddr.js@0.1.6 + +1.0.4 / 2014-11-23 +================== + + * deps: ipaddr.js@0.1.5 + - Fix edge cases with `isValid` + +1.0.3 / 2014-09-21 +================== + + * Use `forwarded` npm module + +1.0.2 / 2014-09-18 +================== + + * Fix a global leak when multiple subnets are trusted + * Support Node.js 0.6 + * deps: ipaddr.js@0.1.3 + +1.0.1 / 2014-06-03 +================== + + * Fix links in npm package + +1.0.0 / 2014-05-08 +================== + + * Add `trust` argument to determine proxy trust on + * Accepts custom function + * Accepts IPv4/IPv6 address(es) + * Accepts subnets + * Accepts pre-defined names + * Add optional `trust` argument to `proxyaddr.all` to + stop at first untrusted + * Add `proxyaddr.compile` to pre-compile `trust` function + to make subsequent calls faster + +0.0.1 / 2014-05-04 +================== + + * Fix bad npm publish + +0.0.0 / 2014-05-04 +================== + + * Initial release diff --git a/node_modules/proxy-addr/LICENSE b/node_modules/proxy-addr/LICENSE new file mode 100644 index 0000000..cab251c --- /dev/null +++ b/node_modules/proxy-addr/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/proxy-addr/README.md b/node_modules/proxy-addr/README.md new file mode 100644 index 0000000..69c0b63 --- /dev/null +++ b/node_modules/proxy-addr/README.md @@ -0,0 +1,139 @@ +# proxy-addr + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Determine address of proxied request + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install proxy-addr +``` + +## API + +```js +var proxyaddr = require('proxy-addr') +``` + +### proxyaddr(req, trust) + +Return the address of the request, using the given `trust` parameter. + +The `trust` argument is a function that returns `true` if you trust +the address, `false` if you don't. The closest untrusted address is +returned. + +```js +proxyaddr(req, function (addr) { return addr === '127.0.0.1' }) +proxyaddr(req, function (addr, i) { return i < 1 }) +``` + +The `trust` arugment may also be a single IP address string or an +array of trusted addresses, as plain IP addresses, CIDR-formatted +strings, or IP/netmask strings. + +```js +proxyaddr(req, '127.0.0.1') +proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8']) +proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0']) +``` + +This module also supports IPv6. Your IPv6 addresses will be normalized +automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`). + +```js +proxyaddr(req, '::1') +proxyaddr(req, ['::1/128', 'fe80::/10']) +``` + +This module will automatically work with IPv4-mapped IPv6 addresses +as well to support node.js in IPv6-only mode. This means that you do +not have to specify both `::ffff:a00:1` and `10.0.0.1`. + +As a convenience, this module also takes certain pre-defined names +in addition to IP addresses, which expand into IP addresses: + +```js +proxyaddr(req, 'loopback') +proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64']) +``` + + * `loopback`: IPv4 and IPv6 loopback addresses (like `::1` and + `127.0.0.1`). + * `linklocal`: IPv4 and IPv6 link-local addresses (like + `fe80::1:1:1:1` and `169.254.0.1`). + * `uniquelocal`: IPv4 private addresses and IPv6 unique-local + addresses (like `fc00:ac:1ab5:fff::1` and `192.168.0.1`). + +When `trust` is specified as a function, it will be called for each +address to determine if it is a trusted address. The function is +given two arguments: `addr` and `i`, where `addr` is a string of +the address to check and `i` is a number that represents the distance +from the socket address. + +### proxyaddr.all(req, [trust]) + +Return all the addresses of the request, optionally stopping at the +first untrusted. This array is ordered from closest to furthest +(i.e. `arr[0] === req.connection.remoteAddress`). + +```js +proxyaddr.all(req) +``` + +The optional `trust` argument takes the same arguments as `trust` +does in `proxyaddr(req, trust)`. + +```js +proxyaddr.all(req, 'loopback') +``` + +### proxyaddr.compile(val) + +Compiles argument `val` into a `trust` function. This function takes +the same arguments as `trust` does in `proxyaddr(req, trust)` and +returns a function suitable for `proxyaddr(req, trust)`. + +```js +var trust = proxyaddr.compile('loopback') +var addr = proxyaddr(req, trust) +``` + +This function is meant to be optimized for use against every request. +It is recommend to compile a trust function up-front for the trusted +configuration and pass that to `proxyaddr(req, trust)` for each request. + +## Testing + +```sh +$ npm test +``` + +## Benchmarks + +```sh +$ npm run-script bench +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/proxy-addr/master?label=ci +[ci-url]: https://github.com/jshttp/proxy-addr/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/proxy-addr/master +[coveralls-url]: https://coveralls.io/r/jshttp/proxy-addr?branch=master +[node-image]: https://badgen.net/npm/node/proxy-addr +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/proxy-addr +[npm-url]: https://npmjs.org/package/proxy-addr +[npm-version-image]: https://badgen.net/npm/v/proxy-addr diff --git a/node_modules/proxy-addr/index.js b/node_modules/proxy-addr/index.js new file mode 100644 index 0000000..a909b05 --- /dev/null +++ b/node_modules/proxy-addr/index.js @@ -0,0 +1,327 @@ +/*! + * proxy-addr + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = proxyaddr +module.exports.all = alladdrs +module.exports.compile = compile + +/** + * Module dependencies. + * @private + */ + +var forwarded = require('forwarded') +var ipaddr = require('ipaddr.js') + +/** + * Variables. + * @private + */ + +var DIGIT_REGEXP = /^[0-9]+$/ +var isip = ipaddr.isValid +var parseip = ipaddr.parse + +/** + * Pre-defined IP ranges. + * @private + */ + +var IP_RANGES = { + linklocal: ['169.254.0.0/16', 'fe80::/10'], + loopback: ['127.0.0.1/8', '::1/128'], + uniquelocal: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', 'fc00::/7'] +} + +/** + * Get all addresses in the request, optionally stopping + * at the first untrusted. + * + * @param {Object} request + * @param {Function|Array|String} [trust] + * @public + */ + +function alladdrs (req, trust) { + // get addresses + var addrs = forwarded(req) + + if (!trust) { + // Return all addresses + return addrs + } + + if (typeof trust !== 'function') { + trust = compile(trust) + } + + for (var i = 0; i < addrs.length - 1; i++) { + if (trust(addrs[i], i)) continue + + addrs.length = i + 1 + } + + return addrs +} + +/** + * Compile argument into trust function. + * + * @param {Array|String} val + * @private + */ + +function compile (val) { + if (!val) { + throw new TypeError('argument is required') + } + + var trust + + if (typeof val === 'string') { + trust = [val] + } else if (Array.isArray(val)) { + trust = val.slice() + } else { + throw new TypeError('unsupported trust argument') + } + + for (var i = 0; i < trust.length; i++) { + val = trust[i] + + if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) { + continue + } + + // Splice in pre-defined range + val = IP_RANGES[val] + trust.splice.apply(trust, [i, 1].concat(val)) + i += val.length - 1 + } + + return compileTrust(compileRangeSubnets(trust)) +} + +/** + * Compile `arr` elements into range subnets. + * + * @param {Array} arr + * @private + */ + +function compileRangeSubnets (arr) { + var rangeSubnets = new Array(arr.length) + + for (var i = 0; i < arr.length; i++) { + rangeSubnets[i] = parseipNotation(arr[i]) + } + + return rangeSubnets +} + +/** + * Compile range subnet array into trust function. + * + * @param {Array} rangeSubnets + * @private + */ + +function compileTrust (rangeSubnets) { + // Return optimized function based on length + var len = rangeSubnets.length + return len === 0 + ? trustNone + : len === 1 + ? trustSingle(rangeSubnets[0]) + : trustMulti(rangeSubnets) +} + +/** + * Parse IP notation string into range subnet. + * + * @param {String} note + * @private + */ + +function parseipNotation (note) { + var pos = note.lastIndexOf('/') + var str = pos !== -1 + ? note.substring(0, pos) + : note + + if (!isip(str)) { + throw new TypeError('invalid IP address: ' + str) + } + + var ip = parseip(str) + + if (pos === -1 && ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) { + // Store as IPv4 + ip = ip.toIPv4Address() + } + + var max = ip.kind() === 'ipv6' + ? 128 + : 32 + + var range = pos !== -1 + ? note.substring(pos + 1, note.length) + : null + + if (range === null) { + range = max + } else if (DIGIT_REGEXP.test(range)) { + range = parseInt(range, 10) + } else if (ip.kind() === 'ipv4' && isip(range)) { + range = parseNetmask(range) + } else { + range = null + } + + if (range <= 0 || range > max) { + throw new TypeError('invalid range on address: ' + note) + } + + return [ip, range] +} + +/** + * Parse netmask string into CIDR range. + * + * @param {String} netmask + * @private + */ + +function parseNetmask (netmask) { + var ip = parseip(netmask) + var kind = ip.kind() + + return kind === 'ipv4' + ? ip.prefixLengthFromSubnetMask() + : null +} + +/** + * Determine address of proxied request. + * + * @param {Object} request + * @param {Function|Array|String} trust + * @public + */ + +function proxyaddr (req, trust) { + if (!req) { + throw new TypeError('req argument is required') + } + + if (!trust) { + throw new TypeError('trust argument is required') + } + + var addrs = alladdrs(req, trust) + var addr = addrs[addrs.length - 1] + + return addr +} + +/** + * Static trust function to trust nothing. + * + * @private + */ + +function trustNone () { + return false +} + +/** + * Compile trust function for multiple subnets. + * + * @param {Array} subnets + * @private + */ + +function trustMulti (subnets) { + return function trust (addr) { + if (!isip(addr)) return false + + var ip = parseip(addr) + var ipconv + var kind = ip.kind() + + for (var i = 0; i < subnets.length; i++) { + var subnet = subnets[i] + var subnetip = subnet[0] + var subnetkind = subnetip.kind() + var subnetrange = subnet[1] + var trusted = ip + + if (kind !== subnetkind) { + if (subnetkind === 'ipv4' && !ip.isIPv4MappedAddress()) { + // Incompatible IP addresses + continue + } + + if (!ipconv) { + // Convert IP to match subnet IP kind + ipconv = subnetkind === 'ipv4' + ? ip.toIPv4Address() + : ip.toIPv4MappedAddress() + } + + trusted = ipconv + } + + if (trusted.match(subnetip, subnetrange)) { + return true + } + } + + return false + } +} + +/** + * Compile trust function for single subnet. + * + * @param {Object} subnet + * @private + */ + +function trustSingle (subnet) { + var subnetip = subnet[0] + var subnetkind = subnetip.kind() + var subnetisipv4 = subnetkind === 'ipv4' + var subnetrange = subnet[1] + + return function trust (addr) { + if (!isip(addr)) return false + + var ip = parseip(addr) + var kind = ip.kind() + + if (kind !== subnetkind) { + if (subnetisipv4 && !ip.isIPv4MappedAddress()) { + // Incompatible IP addresses + return false + } + + // Convert IP to match subnet IP kind + ip = subnetisipv4 + ? ip.toIPv4Address() + : ip.toIPv4MappedAddress() + } + + return ip.match(subnetip, subnetrange) + } +} diff --git a/node_modules/proxy-addr/package.json b/node_modules/proxy-addr/package.json new file mode 100644 index 0000000..24ba8f7 --- /dev/null +++ b/node_modules/proxy-addr/package.json @@ -0,0 +1,47 @@ +{ + "name": "proxy-addr", + "description": "Determine address of proxied request", + "version": "2.0.7", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "ip", + "proxy", + "x-forwarded-for" + ], + "repository": "jshttp/proxy-addr", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "devDependencies": { + "benchmark": "2.1.4", + "beautify-benchmark": "0.2.4", + "deep-equal": "1.0.1", + "eslint": "7.26.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-markdown": "2.2.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "8.4.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.10" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/pstree.remy/.travis.yml b/node_modules/pstree.remy/.travis.yml new file mode 100644 index 0000000..5bf093e --- /dev/null +++ b/node_modules/pstree.remy/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +cache: + directories: + - ~/.npm +notifications: + email: false +node_js: + - '8' diff --git a/node_modules/pstree.remy/LICENSE b/node_modules/pstree.remy/LICENSE new file mode 100644 index 0000000..e83bea6 --- /dev/null +++ b/node_modules/pstree.remy/LICENSE @@ -0,0 +1,7 @@ +The MIT License (MIT) +Copyright © 2019 Remy Sharp, https://remysharp.com +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/pstree.remy/README.md b/node_modules/pstree.remy/README.md new file mode 100644 index 0000000..5f44c62 --- /dev/null +++ b/node_modules/pstree.remy/README.md @@ -0,0 +1,26 @@ +# pstree.remy + +> Cross platform ps-tree (including unix flavours without ps) + +## Installation + +```shel +npm install pstree.remy +``` + +## Usage + +```js +const psTree = psTree require('pstree.remy'); + +psTree(PID, (err, pids) => { + if (err) { + console.error(err); + } + console.log(pids) +}); + +console.log(psTree.hasPS + ? "This platform has the ps shell command" + : "This platform does not have the ps shell command"); +``` diff --git a/node_modules/pstree.remy/lib/index.js b/node_modules/pstree.remy/lib/index.js new file mode 100644 index 0000000..743e997 --- /dev/null +++ b/node_modules/pstree.remy/lib/index.js @@ -0,0 +1,37 @@ +const exec = require('child_process').exec; +const tree = require('./tree'); +const utils = require('./utils'); +var hasPS = true; + +// discover if the OS has `ps`, and therefore can use psTree +exec('ps', (error) => { + module.exports.hasPS = hasPS = !error; +}); + +module.exports = function main(pid, callback) { + if (typeof pid === 'number') { + pid = pid.toString(); + } + + if (hasPS && !process.env.NO_PS) { + return tree(pid, callback); + } + + utils + .getStat() + .then(utils.tree) + .then((tree) => utils.pidsForTree(tree, pid)) + .then((res) => + callback( + null, + res.map((p) => p.PID) + ) + ) + .catch((error) => callback(error)); +}; + +if (!module.parent) { + module.exports(process.argv[2], (e, pids) => console.log(pids)); +} + +module.exports.hasPS = hasPS; diff --git a/node_modules/pstree.remy/lib/tree.js b/node_modules/pstree.remy/lib/tree.js new file mode 100644 index 0000000..bac7cce --- /dev/null +++ b/node_modules/pstree.remy/lib/tree.js @@ -0,0 +1,37 @@ +const spawn = require('child_process').spawn; + +module.exports = function (rootPid, callback) { + const pidsOfInterest = new Set([parseInt(rootPid, 10)]); + var output = ''; + + // *nix + const ps = spawn('ps', ['-A', '-o', 'ppid,pid']); + ps.stdout.on('data', (data) => { + output += data.toString('ascii'); + }); + + ps.on('close', () => { + try { + const res = output + .split('\n') + .slice(1) + .map((_) => _.trim()) + .reduce((acc, line) => { + const pids = line.split(/\s+/); + const ppid = parseInt(pids[0], 10); + + if (pidsOfInterest.has(ppid)) { + const pid = parseInt(pids[1], 10); + acc.push(pid); + pidsOfInterest.add(pid); + } + + return acc; + }, []); + + callback(null, res); + } catch (e) { + callback(e, null); + } + }); +}; diff --git a/node_modules/pstree.remy/lib/utils.js b/node_modules/pstree.remy/lib/utils.js new file mode 100644 index 0000000..8fa5719 --- /dev/null +++ b/node_modules/pstree.remy/lib/utils.js @@ -0,0 +1,53 @@ +const spawn = require('child_process').spawn; + +module.exports = { tree, pidsForTree, getStat }; + +function getStat() { + return new Promise((resolve) => { + const command = `ls /proc | grep -E '^[0-9]+$' | xargs -I{} cat /proc/{}/stat`; + const spawned = spawn('sh', ['-c', command], { + stdio: ['pipe', 'pipe', 'pipe'], + }); + + var res = ''; + spawned.stdout.on('data', (data) => (res += data)); + spawned.on('close', () => resolve(res)); + }); +} + +function template(s) { + var stat = null; + // 'pid', 'comm', 'state', 'ppid', 'pgrp' + // %d (%s) %c %d %d + s.replace( + /(\d+) \((.*?)\)\s(.+?)\s(\d+)\s/g, + (all, PID, COMMAND, STAT, PPID) => { + stat = { PID, COMMAND, PPID, STAT }; + } + ); + + return stat; +} + +function tree(stats) { + const processes = stats.split('\n').map(template).filter(Boolean); + + return processes; +} + +function pidsForTree(tree, pid) { + if (typeof pid === 'number') { + pid = pid.toString(); + } + const parents = [pid]; + const pids = []; + + tree.forEach((proc) => { + if (parents.indexOf(proc.PPID) !== -1) { + parents.push(proc.PID); + pids.push(proc); + } + }); + + return pids; +} diff --git a/node_modules/pstree.remy/package.json b/node_modules/pstree.remy/package.json new file mode 100644 index 0000000..35c7068 --- /dev/null +++ b/node_modules/pstree.remy/package.json @@ -0,0 +1,33 @@ +{ + "name": "pstree.remy", + "version": "1.1.8", + "main": "lib/index.js", + "prettier": { + "trailingComma": "es5", + "semi": true, + "singleQuote": true + }, + "scripts": { + "test": "tap tests/*.test.js", + "_prepublish": "npm test" + }, + "keywords": [ + "ps", + "pstree", + "ps tree" + ], + "author": "Remy Sharp", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/remy/pstree.git" + }, + "devDependencies": { + "tap": "^11.0.0" + }, + "directories": { + "test": "tests" + }, + "dependencies": {}, + "description": "Collects the full tree of processes from /proc" +} diff --git a/node_modules/pstree.remy/tests/fixtures/index.js b/node_modules/pstree.remy/tests/fixtures/index.js new file mode 100644 index 0000000..4cdbcb1 --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/index.js @@ -0,0 +1,13 @@ +const spawn = require('child_process').spawn; +function run() { + spawn( + 'sh', + ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], + { + stdio: 'pipe', + } + ); +} + +var runCallCount = process.argv[2] || 1; +for (var i = 0; i < runCallCount; i++) run(); diff --git a/node_modules/pstree.remy/tests/fixtures/out1 b/node_modules/pstree.remy/tests/fixtures/out1 new file mode 100644 index 0000000..abfe581 --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/out1 @@ -0,0 +1,10 @@ +1 (npm) S 0 1 1 34816 1 4210944 11112 0 0 0 45 8 0 0 20 0 10 0 330296 1089871872 11809 18446744073709551615 4194304 29343848 140726436642896 0 0 0 0 4096 2072112895 0 0 0 17 0 0 0 0 0 0 31441000 31537208 37314560 140726436650815 140726436650847 140726436650847 140726436650986 0 +15 (sh) S 1 1 1 34816 1 4210688 115 0 0 0 0 0 0 0 20 0 1 0 330372 4399104 187 18446744073709551615 94374393548800 94374393655428 140722913272992 0 0 0 0 0 65538 0 0 0 17 0 0 0 0 0 0 94374395756424 94374395761184 94374404673536 140722913278928 140722913278959 140722913278959 140722913284080 0 +16 (node) S 15 1 1 34816 1 4210688 6930 103 0 0 32 2 0 0 20 0 10 0 330373 1068478464 8412 18446744073709551615 4194304 29343848 140727228046064 0 0 0 0 4096 134300162 0 0 0 17 1 0 0 1 0 0 31441000 31537208 52584448 140727228050313 140727228050383 140727228050383 140727228055530 0 +27 (sh) S 16 1 1 34816 1 4210688 111 0 0 0 0 0 0 0 20 0 1 0 330410 4399104 193 18446744073709551615 94848235986944 94848236093572 140727019991184 0 0 0 0 0 65538 0 0 0 17 1 0 0 0 0 0 94848238194568 94848238199328 94848261660672 140727019998122 140727019998165 140727019998165 140727020003312 0 +28 (node) S 27 1 1 34816 1 4210688 3576 268 0 0 12 2 0 0 20 0 10 0 330411 930213888 6760 18446744073709551615 4194304 29343848 140726559664992 0 0 0 0 4096 134300162 0 0 0 17 1 0 0 0 0 0 31441000 31537208 32591872 140726559669117 140726559669199 140726559669199 140726559674346 0 +39 (node) S 28 1 1 34816 1 4210688 47517 0 0 0 151 9 0 0 20 0 6 0 330427 985739264 31859 18446744073709551615 4194304 29343848 140737324503920 0 0 0 0 4096 134234626 0 0 0 17 0 0 0 0 0 0 31441000 31537208 51585024 140737324510060 140737324510159 140737324510159 140737324515306 0 +45 (bash) S 0 45 45 34817 50 4210944 752 256 0 0 2 0 0 0 20 0 1 0 331039 18628608 789 18446744073709551615 4194304 5242124 140724425887696 0 0 0 65536 3670020 1266777851 0 0 0 17 1 0 0 0 0 0 7341384 7388228 30310400 140724425891678 140724425891683 140724425891683 140724425891822 0 +cat: /proc/50/stat: No such file or directory +cat: /proc/51/stat: No such file or directory +52 (xargs) S 45 50 45 34817 50 4210688 179 661 0 0 0 0 0 0 20 0 1 0 331544 4608000 346 18446744073709551615 94587588550656 94587588614028 140735223856048 0 0 0 0 0 2560 0 0 0 17 1 0 0 0 0 0 94587590711464 94587590713504 94587603169280 140735223861006 140735223861035 140735223861035 140735223861225 0 diff --git a/node_modules/pstree.remy/tests/fixtures/out2 b/node_modules/pstree.remy/tests/fixtures/out2 new file mode 100644 index 0000000..3b31137 --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/out2 @@ -0,0 +1,29 @@ +cat: /proc/4087/stat: No such file or directory +cat: /proc/4088/stat: No such file or directory +1 (init) S 0 1 1 0 -1 4210944 9227 55994 29 319 7 5 68 16 20 0 1 0 1286281 33660928 855 18446744073709551615 1 1 0 0 0 0 0 4096 536962595 0 0 0 17 4 0 0 3 0 0 0 0 0 0 0 0 0 0 +1032 (ntpd) S 1 1032 1032 0 -1 4211008 178 0 1 0 0 0 0 0 20 0 1 0 1287033 25743360 1058 18446744073709551615 1 1 0 0 0 0 0 4096 27207 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +126 (irqbalance) S 1 126 126 0 -1 1077952832 1217 0 0 0 1 6 0 0 20 0 1 0 1286749 20189184 647 18446744073709551615 1 1 0 0 0 0 0 0 3 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +181 (mysqld) S 1 181 181 0 -1 4210944 6399 0 46 0 8 6 0 0 20 0 22 0 1286761 748453888 14476 18446744073709551615 1 1 0 0 0 0 552967 4096 26345 0 0 0 17 4 0 0 10 0 0 0 0 0 0 0 0 0 0 +194 (memcached) S 1 187 187 0 -1 4210944 252 0 4 0 0 0 0 0 20 0 6 0 1286766 333221888 648 18446744073709551615 1 1 0 0 0 0 0 4096 2 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +243 (dbus-daemon) S 1 243 243 0 -1 4211008 67 0 0 0 0 0 0 0 20 0 1 0 1286779 40087552 598 18446744073709551615 1 1 0 0 0 0 0 0 16385 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +254 (rsyslogd) S 1 254 254 0 -1 4211008 107 0 0 0 2 2 0 0 20 0 3 0 1286782 186601472 696 18446744073709551615 1 1 0 0 0 0 0 16781830 1133601 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +265 (systemd-logind) S 1 265 265 0 -1 4210944 276 0 2 0 0 0 0 0 20 0 1 0 1286786 35880960 720 18446744073709551615 1 1 0 0 0 0 0 0 0 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +333 (postgres) S 1 303 303 0 -1 4210688 3169 3466 15 18 0 1 1 1 20 0 1 0 1286817 156073984 5002 18446744073709551615 1 1 0 0 0 0 0 19935232 84487 0 0 0 17 5 0 0 1 0 0 0 0 0 0 0 0 0 0 +359 (postgres) S 333 359 359 0 -1 4210752 90 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16805888 2567 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +360 (postgres) S 333 360 360 0 -1 4210752 119 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16791554 16901 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +361 (postgres) S 333 361 361 0 -1 4210752 87 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16791552 16903 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +362 (postgres) S 333 362 362 0 -1 4210752 292 0 3 0 0 0 0 0 20 0 1 0 1286822 156930048 1373 18446744073709551615 1 1 0 0 0 0 0 19927040 27271 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +363 (postgres) S 333 363 363 0 -1 4210752 82 0 0 0 0 0 0 0 20 0 1 0 1286822 115924992 887 18446744073709551615 1 1 0 0 0 0 0 16808450 5 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +4050 (npm) S 50 50 50 34817 50 4210688 5109 0 0 0 36 3 0 0 20 0 10 0 1292968 738025472 10051 18446744073709551615 4194304 33165900 140723623956256 0 0 0 0 4096 134300162 0 0 0 17 4 0 0 0 0 0 35263056 35370992 48369664 140723623964237 140723623964294 140723623964294 140723623968712 0 +4060 (sh) S 4050 50 50 34817 50 4210688 121 0 0 0 0 0 0 0 20 0 1 0 1293007 4579328 174 18446744073709551615 94347643936768 94347644049516 140735136055088 0 0 0 0 0 65538 1 0 0 17 5 0 0 0 0 0 94347646148008 94347646153216 94347660038144 140735136063095 140735136063129 140735136063129 140735136071664 0 +4061 (node) S 4060 50 50 34817 50 4210688 6501 0 0 0 42 2 0 0 20 0 6 0 1293008 705769472 10211 18446744073709551615 4194304 33165900 140730532686288 0 0 0 0 4096 2072111671 0 0 0 17 5 0 0 0 0 0 35263056 35370992 45867008 140730532695579 140730532695657 140730532695657 140730532704200 0 +4067 (node) S 4061 50 50 34817 50 4210688 6746 221 0 0 38 3 0 0 20 0 10 0 1293051 738910208 10527 18446744073709551615 4194304 33165900 140724824971632 0 0 0 0 4096 2072111671 0 0 0 17 4 0 0 0 0 0 35263056 35370992 68595712 140724824980995 140724824981063 140724824981063 140724824989640 0 +4079 (sh) S 4067 50 50 34817 50 4210688 118 0 0 0 0 0 0 0 20 0 1 0 1293092 4579328 194 18446744073709551615 94573702131712 94573702244460 140724712357120 0 0 0 0 0 65538 1 0 0 17 4 0 0 0 0 0 94573704342952 94573704348160 94573718511616 140724712361487 140724712361583 140724712361583 140724712370160 0 +4080 (node) S 4079 50 50 34817 50 4210688 2428 0 0 0 8 1 0 0 20 0 6 0 1293093 693059584 7251 18446744073709551615 4194304 33165900 140726023392816 0 0 0 0 4096 134234626 0 0 0 17 5 0 0 0 0 0 35263056 35370992 55226368 140726023396847 140726023396935 140726023396935 140726023405512 0 +4086 (sh) S 4067 50 50 34817 50 4210688 131 244 0 0 0 0 0 0 20 0 1 0 1293143 4579328 200 18446744073709551615 94347550273536 94347550386284 140737219399136 0 0 0 0 0 65538 1 0 0 17 5 0 0 0 0 0 94347552484776 94347552489984 94347554299904 140737219403308 140737219403375 140737219403375 140737219411952 0 +4089 (xargs) S 4086 50 50 34817 50 4210688 333 1924 0 0 0 0 0 0 20 0 1 0 1293143 17600512 477 18446744073709551615 4194304 4232732 140721633759248 0 0 0 0 0 0 1 0 0 17 5 0 0 0 0 0 6331920 6332980 32182272 140721633762891 140721633762920 140721633762920 140721633771497 0 +50 (bash) S 0 50 50 34817 50 4210944 43914 1032463 9 705 44 21 4213 818 20 0 1 0 1286336 42266624 3599 18446744073709551615 4194304 5173404 140732749083280 0 0 0 65536 4 1132560123 1 0 0 17 4 0 0 410 0 0 7273968 7310504 21196800 140732749086490 140732749086517 140732749086517 140732749086702 0 +79 (acpid) S 1 79 79 0 -1 4210752 46 0 0 0 0 0 0 0 20 0 1 0 1286717 4493312 407 18446744073709551615 1 1 0 0 0 0 0 4096 16391 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +83 (sshd) S 1 83 83 0 -1 4210944 354 0 27 0 0 0 0 0 20 0 1 0 1286718 62873600 1290 18446744073709551615 1 1 0 0 0 0 0 4096 81925 0 0 0 17 4 0 0 30 0 0 0 0 0 0 0 0 0 0 +94 (cron) S 1 94 94 0 -1 1077952576 103 449 0 1 0 0 0 0 20 0 1 0 1286743 24240128 559 18446744073709551615 1 1 0 0 0 0 0 0 65537 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +95 (atd) S 1 95 95 0 -1 1077952576 28 0 0 0 0 0 0 0 20 0 1 0 1286743 19615744 41 18446744073709551615 1 1 0 0 0 0 0 0 81923 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/node_modules/pstree.remy/tests/index.test.js b/node_modules/pstree.remy/tests/index.test.js new file mode 100644 index 0000000..50096b9 --- /dev/null +++ b/node_modules/pstree.remy/tests/index.test.js @@ -0,0 +1,51 @@ +const tap = require('tap'); +const test = tap.test; +const readFile = require('fs').readFileSync; +const spawn = require('child_process').spawn; +const pstree = require('../'); +const { tree, pidsForTree, getStat } = require('../lib/utils'); + +if (process.platform !== 'darwin') { + test('reads from /proc', async (t) => { + const ps = await getStat(); + t.ok(ps.split('\n').length > 1); + }); +} + +test('tree for live env', async (t) => { + const pid = 4079; + const fixture = readFile(__dirname + '/fixtures/out2', 'utf8'); + const ps = await tree(fixture); + t.deepEqual( + pidsForTree(ps, pid).map((_) => _.PID), + ['4080'] + ); +}); + +function testTree(t, runCallCount) { + const sub = spawn('node', [`${__dirname}/fixtures/index.js`, runCallCount], { + stdio: 'pipe', + }); + setTimeout(() => { + const pid = sub.pid; + + pstree(pid, (error, pids) => { + pids.concat([pid]).forEach((p) => { + spawn('kill', ['-s', 'SIGTERM', p]); + }); + + // the fixture launches `sh` which launches node which is why we + // are looking for two processes. + // Important: IDKW but MacOS seems to skip the `sh` process. no idea. + t.equal(pids.length, runCallCount * 2); + t.end(); + }); + }, 1000); +} + +test('can read full process tree', (t) => { + testTree(t, 1); +}); +test('can read full process tree with multiple processes', (t) => { + testTree(t, 2); +}); diff --git a/node_modules/qs/.editorconfig b/node_modules/qs/.editorconfig new file mode 100644 index 0000000..6adecfb --- /dev/null +++ b/node_modules/qs/.editorconfig @@ -0,0 +1,46 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 160 +quote_type = single + +[test/*] +max_line_length = off + +[LICENSE.md] +indent_size = off + +[*.md] +max_line_length = off + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[LICENSE] +indent_size = 2 +max_line_length = off + +[coverage/**/*] +indent_size = off +indent_style = off +indent = off +max_line_length = off + +[.nycrc] +indent_style = tab + +[tea.yaml] +indent_size = 2 diff --git a/node_modules/qs/.eslintrc b/node_modules/qs/.eslintrc new file mode 100644 index 0000000..b692761 --- /dev/null +++ b/node_modules/qs/.eslintrc @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "ignorePatterns": [ + "dist/", + ], + + "rules": { + "complexity": 0, + "consistent-return": 1, + "func-name-matching": 0, + "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], + "indent": [2, 4], + "max-lines-per-function": [2, { "max": 150 }], + "max-params": [2, 18], + "max-statements": [2, 100], + "multiline-comment-style": 0, + "no-continue": 1, + "no-magic-numbers": 0, + "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "function-paren-newline": 0, + "max-lines-per-function": 0, + "max-statements": 0, + "no-buffer-constructor": 0, + "no-extend-native": 0, + "no-throw-literal": 0, + }, + }, + ], +} diff --git a/node_modules/qs/.github/FUNDING.yml b/node_modules/qs/.github/FUNDING.yml new file mode 100644 index 0000000..0355f4f --- /dev/null +++ b/node_modules/qs/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/qs +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/qs/.nycrc b/node_modules/qs/.nycrc new file mode 100644 index 0000000..1d57cab --- /dev/null +++ b/node_modules/qs/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "dist" + ] +} diff --git a/node_modules/qs/CHANGELOG.md b/node_modules/qs/CHANGELOG.md new file mode 100644 index 0000000..02a6b50 --- /dev/null +++ b/node_modules/qs/CHANGELOG.md @@ -0,0 +1,600 @@ +## **6.13.0** +- [New] `parse`: add `strictDepth` option (#511) +- [Tests] use `npm audit` instead of `aud` + +## **6.12.3** +- [Fix] `parse`: properly account for `strictNullHandling` when `allowEmptyArrays` +- [meta] fix changelog indentation + +## **6.12.2** +- [Fix] `parse`: parse encoded square brackets (#506) +- [readme] add CII best practices badge + +## **6.12.1** +- [Fix] `parse`: Disable `decodeDotInKeys` by default to restore previous behavior (#501) +- [Performance] `utils`: Optimize performance under large data volumes, reduce memory usage, and speed up processing (#502) +- [Refactor] `utils`: use `+=` +- [Tests] increase coverage + +## **6.12.0** + +- [New] `parse`/`stringify`: add `decodeDotInKeys`/`encodeDotKeys` options (#488) +- [New] `parse`: add `duplicates` option +- [New] `parse`/`stringify`: add `allowEmptyArrays` option to allow [] in object values (#487) +- [Refactor] `parse`/`stringify`: move allowDots config logic to its own variable +- [Refactor] `stringify`: move option-handling code into `normalizeStringifyOptions` +- [readme] update readme, add logos (#484) +- [readme] `stringify`: clarify default `arrayFormat` behavior +- [readme] fix line wrapping +- [readme] remove dead badges +- [Deps] update `side-channel` +- [meta] make the dist build 50% smaller +- [meta] add `sideEffects` flag +- [meta] run build in prepack, not prepublish +- [Tests] `parse`: remove useless tests; add coverage +- [Tests] `stringify`: increase coverage +- [Tests] use `mock-property` +- [Tests] `stringify`: improve coverage +- [Dev Deps] update `@ljharb/eslint-config `, `aud`, `has-override-mistake`, `has-property-descriptors`, `mock-property`, `npmignore`, `object-inspect`, `tape` +- [Dev Deps] pin `glob`, since v10.3.8+ requires a broken `jackspeak` +- [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 + +## **6.11.2** +- [Fix] `parse`: Fix parsing when the global Object prototype is frozen (#473) +- [Tests] add passing test cases with empty keys (#473) + +## **6.11.1** +- [Fix] `stringify`: encode comma values more consistently (#463) +- [readme] add usage of `filter` option for injecting custom serialization, i.e. of custom types (#447) +- [meta] remove extraneous code backticks (#457) +- [meta] fix changelog markdown +- [actions] update checkout action +- [actions] restrict action permissions +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` + +## **6.11.0** +- [New] [Fix] `stringify`: revert 0e903c0; add `commaRoundTrip` option (#442) +- [readme] fix version badge + +## **6.10.5** +- [Fix] `stringify`: with `arrayFormat: comma`, properly include an explicit `[]` on a single-item array (#434) + +## **6.10.4** +- [Fix] `stringify`: with `arrayFormat: comma`, include an explicit `[]` on a single-item array (#441) +- [meta] use `npmignore` to autogenerate an npmignore file +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbol`, `object-inspect`, `tape` + +## **6.10.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [actions] reuse common workflows +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `tape` + +## **6.10.2** +- [Fix] `stringify`: actually fix cyclic references (#426) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [actions] update codecov uploader +- [actions] update workflows +- [Tests] clean up stringify tests slightly +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `safe-publish-latest`, `tape` + +## **6.10.1** +- [Fix] `stringify`: avoid exception on repeated object values (#402) + +## **6.10.0** +- [New] `stringify`: throw on cycles, instead of an infinite loop (#395, #394, #393) +- [New] `parse`: add `allowSparse` option for collapsing arrays with missing indices (#312) +- [meta] fix README.md (#399) +- [meta] only run `npm run dist` in publish, not install +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `tape` +- [Tests] fix tests on node v0.6 +- [Tests] use `ljharb/actions/node/install` instead of `ljharb/actions/node/run` +- [Tests] Revert "[meta] ignore eclint transitive audit warning" + +## **6.9.7** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [Tests] clean up stringify tests slightly +- [meta] fix README.md (#399) +- Revert "[meta] ignore eclint transitive audit warning" +- [actions] backport actions from main +- [Dev Deps] backport updates from main + +## **6.9.6** +- [Fix] restore `dist` dir; mistakenly removed in d4f6c32 + +## **6.9.5** +- [Fix] `stringify`: do not encode parens for RFC1738 +- [Fix] `stringify`: fix arrayFormat comma with empty array/objects (#350) +- [Refactor] `format`: remove `util.assign` call +- [meta] add "Allow Edits" workflow; update rebase workflow +- [actions] switch Automatic Rebase workflow to `pull_request_target` event +- [Tests] `stringify`: add tests for #378 +- [Tests] migrate tests to Github Actions +- [Tests] run `nyc` on all tests; use `tape` runner +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `mkdirp`, `object-inspect`, `tape`; add `aud` + +## **6.9.4** +- [Fix] `stringify`: when `arrayFormat` is `comma`, respect `serializeDate` (#364) +- [Refactor] `stringify`: reduce branching (part of #350) +- [Refactor] move `maybeMap` to `utils` +- [Dev Deps] update `browserify`, `tape` + +## **6.9.3** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.9.2** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [meta] ignore eclint transitive audit warning +- [meta] fix indentation in package.json +- [meta] add tidelift marketing copy +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `has-symbols`, `tape`, `mkdirp`, `iconv-lite` +- [actions] add automatic rebasing / merge commit blocking + +## **6.9.1** +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [Fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` +- [Tests] use shared travis-ci config + +## **6.9.0** +- [New] `parse`/`stringify`: Pass extra key/value argument to `decoder` (#333) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `evalmd` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] add `posttest` using `npx aud` to run `npm audit` without a lockfile +- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16` +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray + +## **6.8.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Tests] clean up stringify tests slightly +- [Docs] add note and links for coercing primitive values (#408) +- [meta] fix README.md (#399) +- [actions] backport actions from main +- [Dev Deps] backport updates from main +- [Refactor] `stringify`: reduce branching +- [meta] do not publish workflow files + +## **6.8.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.8.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `has-symbols`, `iconv-lite`, `mkdirp`, `object-inspect` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [actions] add automatic rebasing / merge commit blocking + +## **6.8.0** +- [New] add `depth=false` to preserve the original key; [Fix] `depth=0` should preserve the original key (#326) +- [New] [Fix] stringify symbols and bigints +- [Fix] ensure node 0.12 can stringify Symbols +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `safe-publish-latest`, `iconv-lite`, `tape` +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended (#326) +- [Tests] use `eclint` instead of `editorconfig-tools` +- [docs] readme: add security note +- [meta] add github sponsorship +- [meta] add FUNDING.yml +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause + +## **6.7.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [meta] fix README.md (#399) +- [meta] do not publish workflow files +- [actions] backport actions from main +- [Dev Deps] backport updates from main +- [Tests] use `nyc` for coverage +- [Tests] clean up stringify tests slightly + +## **6.7.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.7.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- readme: add security note +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [meta] add FUNDING.yml +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `iconv-lite`, `mkdirp`, `object-inspect`, `browserify` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended +- [Tests] use `eclint` instead of `editorconfig-tools` +- [actions] add automatic rebasing / merge commit blocking + +## **6.7.0** +- [New] `stringify`/`parse`: add `comma` as an `arrayFormat` option (#276, #219) +- [Fix] correctly parse nested arrays (#212) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source, also with an array source +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] `stringify`/`utils`: cache `Array.isArray` +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] temporarily allow coverage to fail + +## **6.6.1** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] correctly parse nested arrays +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `formats`: tiny bit of cleanup. +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor]: `stringify`/`utils`: cache `Array.isArray` +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] do not publish workflow files +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [meta] Fixes typo in CHANGELOG.md +- [actions] backport actions from main +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] always use `String(x)` over `x.toString()` +- [Dev Deps] backport from main + +## **6.6.0** +- [New] Add support for iso-8859-1, utf8 "sentinel" and numeric entities (#268) +- [New] move two-value combine to a `utils` function (#189) +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` (#260) +- [Fix] `stringify`: do not crash in an obscure combo of `interpretNumericEntities`, a bad custom `decoder`, & `iso-8859-1` +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Refactor] `parse`/`stringify`: clean up `charset` options checking; fix defaults +- [Refactor] add missing defaults +- [Refactor] `parse`: one less `concat` call +- [Refactor] `utils`: `compactQueue`: make it explicitly side-effecting +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape` +- [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS + +## **6.5.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] correctly parse nested arrays +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clean up license text so it’s properly detected as BSD-3-Clause +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.5.2** +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) +- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` + +## **6.5.1** +- [Fix] Fix parsing & compacting very deep objects (#224) +- [Refactor] name utils functions +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` +- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node +- [Tests] Use precise dist for Node.js 0.6 runtime (#225) +- [Tests] make 0.6 required, now that it’s passing +- [Tests] on `node` `v8.2`; fix npm on node 0.6 + +## **6.5.0** +- [New] add `utils.assign` +- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) +- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) +- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) +- [Fix] do not mutate `options` argument (#207) +- [Refactor] `parse`: cache index to reuse in else statement (#182) +- [Docs] add various badges to readme (#208) +- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` +- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 +- [Tests] add `editorconfig-tools` + +## **6.4.1** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.4.0** +- [New] `qs.stringify`: add `encodeValuesOnly` option +- [Fix] follow `allowPrototypes` option during merge (#201, #201) +- [Fix] support keys starting with brackets (#202, #200) +- [Fix] chmod a-x +- [Dev Deps] update `eslint` +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds +- [eslint] reduce warnings + +## **6.3.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] use `safer-buffer` instead of `Buffer` constructor +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.3.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Dev Deps] update `eslint` +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.3.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` +- [Tests] on all node minors; improve test matrix +- [Docs] document stringify option `allowDots` (#195) +- [Docs] add empty object and array values example (#195) +- [Docs] Fix minor inconsistency/typo (#192) +- [Docs] document stringify option `sort` (#191) +- [Refactor] `stringify`: throw faster with an invalid encoder +- [Refactor] remove unnecessary escapes (#184) +- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) + +## **6.3.0** +- [New] Add support for RFC 1738 (#174, #173) +- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) +- [Fix] ensure `utils.merge` handles merging two arrays +- [Refactor] only constructors should be capitalized +- [Refactor] capitalized var names are for constructors only +- [Refactor] avoid using a sparse array +- [Robustness] `formats`: cache `String#replace` +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` +- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix +- [Tests] flesh out arrayLimit/arrayFormat tests (#107) +- [Tests] skip Object.create tests when null objects are not available +- [Tests] Turn on eslint for test files (#175) + +## **6.2.4** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] use `safer-buffer` instead of `Buffer` constructor +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.2.3** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.2.2** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## **6.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values +- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` +- [Tests] remove `parallelshell` since it does not reliably report failures +- [Tests] up to `node` `v6.3`, `v5.12` +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` + +## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) +- [New] pass Buffers to the encoder/decoder directly (#161) +- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) +- [Fix] fix compacting of nested sparse arrays (#150) + +## **6.1.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.1.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) +- [New] allowDots option for `stringify` (#151) +- [Fix] "sort" option should work at a depth of 3 or more (#151) +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## **6.0.4** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.0.3** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) +- Revert ES6 requirement and restore support for node down to v0.8. + +## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) +- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json + +## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) +- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 + +## **5.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values + +## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) +- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string + +## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) +- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional +- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify + +## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) +- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false +- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm + +## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) +- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional + +## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) +- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" + +## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) +- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties +- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost +- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing +- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object +- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option +- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. +- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 +- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 +- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign +- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute + +## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) +- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function + +## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) +- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option + +## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) +- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 +- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader + +## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) +- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object + +## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) +- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". + +## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) +- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 + +## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) +- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? +- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 +- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 + +## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) +- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number + +## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) +- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array +- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x + +## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) +- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value +- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty +- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? + +## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) +- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 +- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects + +## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) +- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present +- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays +- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge +- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? + +## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) +- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter + +## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) +- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? +- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit +- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 + +## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) +- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values + +## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) +- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters +- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block + +## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) +- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument +- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed + +## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) +- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted +- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null +- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README + +## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) +- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/node_modules/qs/LICENSE.md b/node_modules/qs/LICENSE.md new file mode 100644 index 0000000..fecf6b6 --- /dev/null +++ b/node_modules/qs/LICENSE.md @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/qs/README.md b/node_modules/qs/README.md new file mode 100644 index 0000000..1e0d9ad --- /dev/null +++ b/node_modules/qs/README.md @@ -0,0 +1,709 @@ +

+ qs +

+ +# qs [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/9058/badge)](https://bestpractices.coreinfrastructure.org/projects/9058) + +[![npm badge][npm-badge-png]][package-url] + +A querystring parsing and stringifying library with some added security. + +Lead Maintainer: [Jordan Harband](https://github.com/ljharb) + +The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). + +## Usage + +```javascript +var qs = require('qs'); +var assert = require('assert'); + +var obj = qs.parse('a=c'); +assert.deepEqual(obj, { a: 'c' }); + +var str = qs.stringify(obj); +assert.equal(str, 'a=c'); +``` + +### Parsing Objects + +[](#preventEval) +```javascript +qs.parse(string, [options]); +``` + +**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. +For example, the string `'foo[bar]=baz'` converts to: + +```javascript +assert.deepEqual(qs.parse('foo[bar]=baz'), { + foo: { + bar: 'baz' + } +}); +``` + +When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: + +```javascript +var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); +assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); +``` + +By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. +*WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. +Always be careful with this option. + +```javascript +var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); +assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); +``` + +URI encoded strings work too: + +```javascript +assert.deepEqual(qs.parse('a%5Bb%5D=c'), { + a: { b: 'c' } +}); +``` + +You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: + +```javascript +assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { + foo: { + bar: { + baz: 'foobarbaz' + } + } +}); +``` + +By default, when nesting objects **qs** will only parse up to 5 children deep. +This means if you attempt to parse a string like `'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: + +```javascript +var expected = { + a: { + b: { + c: { + d: { + e: { + f: { + '[g][h][i]': 'j' + } + } + } + } + } + } +}; +var string = 'a[b][c][d][e][f][g][h][i]=j'; +assert.deepEqual(qs.parse(string), expected); +``` + +This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: + +```javascript +var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); +assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); +``` + +You can configure **qs** to throw an error when parsing nested input beyond this depth using the `strictDepth` option (defaulted to false): + +```javascript +try { + qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true }); +} catch (err) { + assert(err instanceof RangeError); + assert.strictEqual(err.message, 'Input depth exceeded depth option of 1 and strictDepth is true'); +} +``` + +The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. The strictDepth option adds a layer of protection by throwing an error when the limit is exceeded, allowing you to catch and handle such cases. + +For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: + +```javascript +var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); +assert.deepEqual(limited, { a: 'b' }); +``` + +To bypass the leading question mark, use `ignoreQueryPrefix`: + +```javascript +var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); +assert.deepEqual(prefixed, { a: 'b', c: 'd' }); +``` + +An optional delimiter can also be passed: + +```javascript +var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); +assert.deepEqual(delimited, { a: 'b', c: 'd' }); +``` + +Delimiters can be a regular expression too: + +```javascript +var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); +assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); +``` + +Option `allowDots` can be used to enable dot notation: + +```javascript +var withDots = qs.parse('a.b=c', { allowDots: true }); +assert.deepEqual(withDots, { a: { b: 'c' } }); +``` + +Option `decodeDotInKeys` can be used to decode dots in keys +Note: it implies `allowDots`, so `parse` will error if you set `decodeDotInKeys` to `true`, and `allowDots` to `false`. + +```javascript +var withDots = qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { decodeDotInKeys: true }); +assert.deepEqual(withDots, { 'name.obj': { first: 'John', last: 'Doe' }}); +``` + +Option `allowEmptyArrays` can be used to allowing empty array values in object +```javascript +var withEmptyArrays = qs.parse('foo[]&bar=baz', { allowEmptyArrays: true }); +assert.deepEqual(withEmptyArrays, { foo: [], bar: 'baz' }); +``` + +Option `duplicates` can be used to change the behavior when duplicate keys are encountered +```javascript +assert.deepEqual(qs.parse('foo=bar&foo=baz'), { foo: ['bar', 'baz'] }); +assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }), { foo: ['bar', 'baz'] }); +assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'first' }), { foo: 'bar' }); +assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'last' }), { foo: 'baz' }); +``` + +If you have to deal with legacy browsers or services, there's also support for decoding percent-encoded octets as iso-8859-1: + +```javascript +var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' }); +assert.deepEqual(oldCharset, { a: '§' }); +``` + +Some services add an initial `utf8=✓` value to forms so that old Internet Explorer versions are more likely to submit the form as utf-8. +Additionally, the server can check the value against wrong encodings of the checkmark character and detect that a query string or `application/x-www-form-urlencoded` body was *not* sent as utf-8, eg. if the form had an `accept-charset` parameter or the containing page had a different character set. + +**qs** supports this mechanism via the `charsetSentinel` option. +If specified, the `utf8` parameter will be omitted from the returned object. +It will be used to switch to `iso-8859-1`/`utf-8` mode depending on how the checkmark is encoded. + +**Important**: When you specify both the `charset` option and the `charsetSentinel` option, the `charset` will be overridden when the request contains a `utf8` parameter from which the actual charset can be deduced. +In that sense the `charset` will behave as the default charset rather than the authoritative charset. + +```javascript +var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', { + charset: 'iso-8859-1', + charsetSentinel: true +}); +assert.deepEqual(detectedAsUtf8, { a: 'ø' }); + +// Browsers encode the checkmark as ✓ when submitting as iso-8859-1: +var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', { + charset: 'utf-8', + charsetSentinel: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: 'ø' }); +``` + +If you want to decode the `&#...;` syntax to the actual character, you can specify the `interpretNumericEntities` option as well: + +```javascript +var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', { + charset: 'iso-8859-1', + interpretNumericEntities: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: '☺' }); +``` + +It also works when the charset has been detected in `charsetSentinel` mode. + +### Parsing Arrays + +**qs** can also parse arrays using a similar `[]` notation: + +```javascript +var withArray = qs.parse('a[]=b&a[]=c'); +assert.deepEqual(withArray, { a: ['b', 'c'] }); +``` + +You may specify an index as well: + +```javascript +var withIndexes = qs.parse('a[1]=c&a[0]=b'); +assert.deepEqual(withIndexes, { a: ['b', 'c'] }); +``` + +Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number to create an array. +When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving their order: + +```javascript +var noSparse = qs.parse('a[1]=b&a[15]=c'); +assert.deepEqual(noSparse, { a: ['b', 'c'] }); +``` + +You may also use `allowSparse` option to parse sparse arrays: + +```javascript +var sparseArray = qs.parse('a[1]=2&a[3]=5', { allowSparse: true }); +assert.deepEqual(sparseArray, { a: [, '2', , '5'] }); +``` + +Note that an empty string is also a value, and will be preserved: + +```javascript +var withEmptyString = qs.parse('a[]=&a[]=b'); +assert.deepEqual(withEmptyString, { a: ['', 'b'] }); + +var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); +assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); +``` + +**qs** will also limit specifying indices in an array to a maximum index of `20`. +Any array members with an index of greater than `20` will instead be converted to an object with the index as the key. +This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array. + +```javascript +var withMaxIndex = qs.parse('a[100]=b'); +assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); +``` + +This limit can be overridden by passing an `arrayLimit` option: + +```javascript +var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); +assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); +``` + +To disable array parsing entirely, set `parseArrays` to `false`. + +```javascript +var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); +assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); +``` + +If you mix notations, **qs** will merge the two items into an object: + +```javascript +var mixedNotation = qs.parse('a[0]=b&a[b]=c'); +assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); +``` + +You can also create arrays of objects: + +```javascript +var arraysOfObjects = qs.parse('a[][b]=c'); +assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); +``` + +Some people use comma to join array, **qs** can parse it: +```javascript +var arraysOfObjects = qs.parse('a=b,c', { comma: true }) +assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] }) +``` +(_this cannot convert nested objects, such as `a={b:1},{c:d}`_) + +### Parsing primitive/scalar values (numbers, booleans, null, etc) + +By default, all values are parsed as strings. +This behavior will not change and is explained in [issue #91](https://github.com/ljharb/qs/issues/91). + +```javascript +var primitiveValues = qs.parse('a=15&b=true&c=null'); +assert.deepEqual(primitiveValues, { a: '15', b: 'true', c: 'null' }); +``` + +If you wish to auto-convert values which look like numbers, booleans, and other values into their primitive counterparts, you can use the [query-types Express JS middleware](https://github.com/xpepermint/query-types) which will auto-convert all request query parameters. + +### Stringifying + +[](#preventEval) +```javascript +qs.stringify(object, [options]); +``` + +When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: + +```javascript +assert.equal(qs.stringify({ a: 'b' }), 'a=b'); +assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); +``` + +This encoding can be disabled by setting the `encode` option to `false`: + +```javascript +var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); +assert.equal(unencoded, 'a[b]=c'); +``` + +Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: +```javascript +var encodedValues = qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } +); +assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); +``` + +This encoding can also be replaced by a custom encoding method set as `encoder` option: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { + // Passed in values `a`, `b`, `c` + return // Return encoded string +}}) +``` + +_(Note: the `encoder` option does not apply if `encode` is `false`)_ + +Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str) { + // Passed in values `x`, `z` + return // Return decoded string +}}) +``` + +You can encode keys and values using different logic by using the type argument provided to the encoder: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return // Encoded key + } else if (type === 'value') { + return // Encoded value + } +}}) +``` + +The type argument is also provided to the decoder: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return // Decoded key + } else if (type === 'value') { + return // Decoded value + } +}}) +``` + +Examples beyond this point will be shown as though the output is not URI encoded for clarity. +Please note that the return values in these cases *will* be URI encoded during real usage. + +When arrays are stringified, they follow the `arrayFormat` option, which defaults to `indices`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }); +// 'a[0]=b&a[1]=c&a[2]=d' +``` + +You may override this by setting the `indices` option to `false`, or to be more explicit, the `arrayFormat` option to `repeat`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); +// 'a=b&a=c&a=d' +``` + +You may use the `arrayFormat` option to specify the format of the output array: + +```javascript +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) +// 'a[0]=b&a[1]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) +// 'a[]=b&a[]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) +// 'a=b&a=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' }) +// 'a=b,c' +``` + +Note: when using `arrayFormat` set to `'comma'`, you can also pass the `commaRoundTrip` option set to `true` or `false`, to append `[]` on single-item arrays, so that they can round trip through a parse. + +When objects are stringified, by default they use bracket notation: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); +// 'a[b][c]=d&a[b][e]=f' +``` + +You may override this to use dot notation by setting the `allowDots` option to `true`: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); +// 'a.b.c=d&a.b.e=f' +``` + +You may encode the dot notation in the keys of object with option `encodeDotInKeys` by setting it to `true`: +Note: it implies `allowDots`, so `stringify` will error if you set `decodeDotInKeys` to `true`, and `allowDots` to `false`. +Caveat: when `encodeValuesOnly` is `true` as well as `encodeDotInKeys`, only dots in keys and nothing else will be encoded. +```javascript +qs.stringify({ "name.obj": { "first": "John", "last": "Doe" } }, { allowDots: true, encodeDotInKeys: true }) +// 'name%252Eobj.first=John&name%252Eobj.last=Doe' +``` + +You may allow empty array values by setting the `allowEmptyArrays` option to `true`: +```javascript +qs.stringify({ foo: [], bar: 'baz' }, { allowEmptyArrays: true }); +// 'foo[]&bar=baz' +``` + +Empty strings and null values will omit the value, but the equals sign (=) remains in place: + +```javascript +assert.equal(qs.stringify({ a: '' }), 'a='); +``` + +Key with no values (such as an empty object or array) will return nothing: + +```javascript +assert.equal(qs.stringify({ a: [] }), ''); +assert.equal(qs.stringify({ a: {} }), ''); +assert.equal(qs.stringify({ a: [{}] }), ''); +assert.equal(qs.stringify({ a: { b: []} }), ''); +assert.equal(qs.stringify({ a: { b: {}} }), ''); +``` + +Properties that are set to `undefined` will be omitted entirely: + +```javascript +assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); +``` + +The query string may optionally be prepended with a question mark: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); +``` + +The delimiter may be overridden with stringify as well: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); +``` + +If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: + +```javascript +var date = new Date(7); +assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); +assert.equal( + qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), + 'a=7' +); +``` + +You may use the `sort` option to affect the order of parameter keys: + +```javascript +function alphabeticalSort(a, b) { + return a.localeCompare(b); +} +assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); +``` + +Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. +If you pass a function, it will be called for each key to obtain the replacement value. +Otherwise, if you pass an array, it will be used to select properties and array indices for stringification: + +```javascript +function filterFunc(prefix, value) { + if (prefix == 'b') { + // Return an `undefined` value to omit a property. + return; + } + if (prefix == 'e[f]') { + return value.getTime(); + } + if (prefix == 'e[g][0]') { + return value * 2; + } + return value; +} +qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); +// 'a=b&c=d&e[f]=123&e[g][0]=4' +qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); +// 'a=b&e=f' +qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); +// 'a[0]=b&a[2]=d' +``` + +You could also use `filter` to inject custom serialization for user defined types. +Consider you're working with some api that expects query strings of the format for ranges: + +``` +https://domain.com/endpoint?range=30...70 +``` + +For which you model as: + +```javascript +class Range { + constructor(from, to) { + this.from = from; + this.to = to; + } +} +``` + +You could _inject_ a custom serializer to handle values of this type: + +```javascript +qs.stringify( + { + range: new Range(30, 70), + }, + { + filter: (prefix, value) => { + if (value instanceof Range) { + return `${value.from}...${value.to}`; + } + // serialize the usual way + return value; + }, + } +); +// range=30...70 +``` + +### Handling of `null` values + +By default, `null` values are treated like empty strings: + +```javascript +var withNull = qs.stringify({ a: null, b: '' }); +assert.equal(withNull, 'a=&b='); +``` + +Parsing does not distinguish between parameters with and without equal signs. +Both are converted to empty strings. + +```javascript +var equalsInsensitive = qs.parse('a&b='); +assert.deepEqual(equalsInsensitive, { a: '', b: '' }); +``` + +To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` +values have no `=` sign: + +```javascript +var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); +assert.equal(strictNull, 'a&b='); +``` + +To parse values without `=` back to `null` use the `strictNullHandling` flag: + +```javascript +var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); +assert.deepEqual(parsedStrictNull, { a: null, b: '' }); +``` + +To completely skip rendering keys with `null` values, use the `skipNulls` flag: + +```javascript +var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); +assert.equal(nullsSkipped, 'a=b'); +``` + +If you're communicating with legacy systems, you can switch to `iso-8859-1` using the `charset` option: + +```javascript +var iso = qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }); +assert.equal(iso, '%E6=%E6'); +``` + +Characters that don't exist in `iso-8859-1` will be converted to numeric entities, similar to what browsers do: + +```javascript +var numeric = qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }); +assert.equal(numeric, 'a=%26%239786%3B'); +``` + +You can use the `charsetSentinel` option to announce the character by including an `utf8=✓` parameter with the proper encoding if the checkmark, similar to what Ruby on Rails and others do when submitting forms. + +```javascript +var sentinel = qs.stringify({ a: '☺' }, { charsetSentinel: true }); +assert.equal(sentinel, 'utf8=%E2%9C%93&a=%E2%98%BA'); + +var isoSentinel = qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }); +assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6'); +``` + +### Dealing with special character sets + +By default the encoding and decoding of characters is done in `utf-8`, and `iso-8859-1` support is also built in via the `charset` parameter. + +If you wish to encode querystrings to a different character set (i.e. +[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the +[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: + +```javascript +var encoder = require('qs-iconv/encoder')('shift_jis'); +var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); +assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); +``` + +This also works for decoding of query strings: + +```javascript +var decoder = require('qs-iconv/decoder')('shift_jis'); +var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); +assert.deepEqual(obj, { a: 'こんにちは!' }); +``` + +### RFC 3986 and RFC 1738 space encoding + +RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. +In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. + +``` +assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); +``` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +## qs for enterprise + +Available as part of the Tidelift Subscription + +The maintainers of qs and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. +Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. +[Learn more.](https://tidelift.com/subscription/pkg/npm-qs?utm_source=npm-qs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +[package-url]: https://npmjs.org/package/qs +[npm-version-svg]: https://versionbadg.es/ljharb/qs.svg +[deps-svg]: https://david-dm.org/ljharb/qs.svg +[deps-url]: https://david-dm.org/ljharb/qs +[dev-deps-svg]: https://david-dm.org/ljharb/qs/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/qs#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/qs.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/qs.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/qs.svg +[downloads-url]: https://npm-stat.com/charts.html?package=qs +[codecov-image]: https://codecov.io/gh/ljharb/qs/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/qs/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/qs +[actions-url]: https://github.com/ljharb/qs/actions + +## Acknowledgements + +qs logo by [NUMI](https://github.com/numi-hq/open-design): + +[NUMI Logo](https://numi.tech/?ref=qs) diff --git a/node_modules/qs/dist/qs.js b/node_modules/qs/dist/qs.js new file mode 100644 index 0000000..154e72e --- /dev/null +++ b/node_modules/qs/dist/qs.js @@ -0,0 +1,90 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function parseQueryStringValues(e,t){var r={__proto__:null},a=t.ignoreQueryPrefix?e.replace(/^\?/,""):e;a=a.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i,o=t.parameterLimit===1/0?void 0:t.parameterLimit,l=a.split(t.delimiter,o),s=-1,n=t.charset;if(t.charsetSentinel)for(i=0;i-1&&(c=isArray(c)?[c]:c);var y=has.call(r,p);y&&"combine"===t.duplicates?r[p]=utils.combine(r[p],c):y&&"last"!==t.duplicates||(r[p]=c)}return r},parseObject=function(e,t,r,a){for(var i=a?t:parseArrayValue(t,r),o=e.length-1;o>=0;--o){var l,s=e[o];if("[]"===s&&r.parseArrays)l=r.allowEmptyArrays&&(""===i||r.strictNullHandling&&null===i)?[]:[].concat(i);else{l=r.plainObjects?Object.create(null):{};var n="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,p=r.decodeDotInKeys?n.replace(/%2E/g,"."):n,c=parseInt(p,10);r.parseArrays||""!==p?!isNaN(c)&&s!==p&&String(c)===p&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(l=[])[c]=i:"__proto__"!==p&&(l[p]=i):l={0:i}}i=l}return i},parseKeys=function parseQueryStringKeys(e,t,r,a){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,l=r.depth>0&&/(\[[^[\]]*])/.exec(i),s=l?i.slice(0,l.index):i,n=[];if(s){if(!r.plainObjects&&has.call(Object.prototype,s)&&!r.allowPrototypes)return;n.push(s)}for(var p=0;r.depth>0&&null!==(l=o.exec(i))&&p0?w.join(",")||null:void 0}];else if(isArray(f))E=f;else{var S=Object.keys(w);E=u?S.sort(u):S}var O=l?r.replace(/\./g,"%2E"):r,T=o&&isArray(w)&&1===w.length?O+"[]":O;if(a&&isArray(w)&&0===w.length)return T+"[]";for(var k=0;k0?y+d:""}; + +},{"1":1,"29":29,"5":5}],5:[function(require,module,exports){ +"use strict";var formats=require(1),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,hexTable=function(){for(var e=[],r=0;r<256;++r)e.push("%"+((r<16?"0":"")+r.toString(16)).toUpperCase());return e}(),compactQueue=function compactQueue(e){for(;e.length>1;){var r=e.pop(),t=r.obj[r.prop];if(isArray(t)){for(var o=[],n=0;n=limit?a.slice(i,i+limit):a,p=[],s=0;s=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||n===formats.RFC1738&&(40===f||41===f)?p[p.length]=u.charAt(s):f<128?p[p.length]=hexTable[f]:f<2048?p[p.length]=hexTable[192|f>>6]+hexTable[128|63&f]:f<55296||f>=57344?p[p.length]=hexTable[224|f>>12]+hexTable[128|f>>6&63]+hexTable[128|63&f]:(s+=1,f=65536+((1023&f)<<10|1023&u.charCodeAt(s)),p[p.length]=hexTable[240|f>>18]+hexTable[128|f>>12&63]+hexTable[128|f>>6&63]+hexTable[128|63&f])}c+=p.join("")}return c},compact=function compact(e){for(var r=[{obj:{o:e},prop:"o"}],t=[],o=0;o-1?callBind(t):t}; + +},{"20":20,"8":8}],20:[function(require,module,exports){ +"use strict";var undefined,$Error=require(12),$EvalError=require(11),$RangeError=require(13),$ReferenceError=require(14),$SyntaxError=require(15),$TypeError=require(16),$URIError=require(17),$Function=Function,getEvalledConstructor=function(r){try{return $Function('"use strict"; return ('+r+").constructor;")()}catch(r){}},$gOPD=Object.getOwnPropertyDescriptor;if($gOPD)try{$gOPD({},"")}catch(r){$gOPD=null}var throwTypeError=function(){throw new $TypeError},ThrowTypeError=$gOPD?function(){try{return throwTypeError}catch(r){try{return $gOPD(arguments,"callee").get}catch(r){return throwTypeError}}}():throwTypeError,hasSymbols=require(24)(),hasProto=require(23)(),getProto=Object.getPrototypeOf||(hasProto?function(r){return r.__proto__}:null),needsEval={},TypedArray="undefined"!=typeof Uint8Array&&getProto?getProto(Uint8Array):undefined,INTRINSICS={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?undefined:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?undefined:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined,"%AsyncFromSyncIteratorPrototype%":undefined,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":"undefined"==typeof Atomics?undefined:Atomics,"%BigInt%":"undefined"==typeof BigInt?undefined:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?undefined:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?undefined:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?undefined:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":"undefined"==typeof Float32Array?undefined:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?undefined:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?undefined:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":"undefined"==typeof Int8Array?undefined:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?undefined:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?undefined:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined,"%JSON%":"object"==typeof JSON?JSON:undefined,"%Map%":"undefined"==typeof Map?undefined:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&hasSymbols&&getProto?getProto((new Map)[Symbol.iterator]()):undefined,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?undefined:Promise,"%Proxy%":"undefined"==typeof Proxy?undefined:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":"undefined"==typeof Reflect?undefined:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?undefined:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&hasSymbols&&getProto?getProto((new Set)[Symbol.iterator]()):undefined,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?undefined:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined,"%Symbol%":hasSymbols?Symbol:undefined,"%SyntaxError%":$SyntaxError,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError,"%Uint8Array%":"undefined"==typeof Uint8Array?undefined:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?undefined:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?undefined:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?undefined:Uint32Array,"%URIError%":$URIError,"%WeakMap%":"undefined"==typeof WeakMap?undefined:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?undefined:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?undefined:WeakSet};if(getProto)try{null.error}catch(r){var errorProto=getProto(getProto(r));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function doEval(r){var e;if("%AsyncFunction%"===r)e=getEvalledConstructor("async function () {}");else if("%GeneratorFunction%"===r)e=getEvalledConstructor("function* () {}");else if("%AsyncGeneratorFunction%"===r)e=getEvalledConstructor("async function* () {}");else if("%AsyncGenerator%"===r){var t=doEval("%AsyncGeneratorFunction%");t&&(e=t.prototype)}else if("%AsyncIteratorPrototype%"===r){var o=doEval("%AsyncGenerator%");o&&getProto&&(e=getProto(o.prototype))}return INTRINSICS[r]=e,e},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=require(19),hasOwn=require(26),$concat=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function stringToPath(r){var e=$strSlice(r,0,1),t=$strSlice(r,-1);if("%"===e&&"%"!==t)throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");if("%"===t&&"%"!==e)throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");var o=[];return $replace(r,rePropName,(function(r,e,t,n){o[o.length]=t?$replace(n,reEscapeChar,"$1"):e||r})),o},getBaseIntrinsic=function getBaseIntrinsic(r,e){var t,o=r;if(hasOwn(LEGACY_ALIASES,o)&&(o="%"+(t=LEGACY_ALIASES[o])[0]+"%"),hasOwn(INTRINSICS,o)){var n=INTRINSICS[o];if(n===needsEval&&(n=doEval(o)),void 0===n&&!e)throw new $TypeError("intrinsic "+r+" exists, but is not available. Please file an issue!");return{alias:t,name:o,value:n}}throw new $SyntaxError("intrinsic "+r+" does not exist!")};module.exports=function GetIntrinsic(r,e){if("string"!=typeof r||0===r.length)throw new $TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new $TypeError('"allowMissing" argument must be a boolean');if(null===$exec(/^%?[^%]*%?$/,r))throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=stringToPath(r),o=t.length>0?t[0]:"",n=getBaseIntrinsic("%"+o+"%",e),a=n.name,y=n.value,i=!1,p=n.alias;p&&(o=p[0],$spliceApply(t,$concat([0,1],p)));for(var d=1,s=!0;d=t.length){var c=$gOPD(y,f);y=(s=!!c)&&"get"in c&&!("originalValue"in c.get)?c.get:y[f]}else s=hasOwn(y,f),y=y[f];s&&!i&&(INTRINSICS[a]=y)}}return y}; + +},{"11":11,"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"19":19,"23":23,"24":24,"26":26}],8:[function(require,module,exports){ +"use strict";var bind=require(19),GetIntrinsic=require(20),setFunctionLength=require(28),$TypeError=require(16),$apply=GetIntrinsic("%Function.prototype.apply%"),$call=GetIntrinsic("%Function.prototype.call%"),$reflectApply=GetIntrinsic("%Reflect.apply%",!0)||bind.call($call,$apply),$defineProperty=require(10),$max=GetIntrinsic("%Math.max%");module.exports=function callBind(e){if("function"!=typeof e)throw new $TypeError("a function is required");var n=$reflectApply(bind,$call,arguments);return setFunctionLength(n,1+$max(0,e.length-(arguments.length-1)),!0)};var applyBind=function applyBind(){return $reflectApply(bind,$apply,arguments)};$defineProperty?$defineProperty(module.exports,"apply",{value:applyBind}):module.exports.apply=applyBind; + +},{"10":10,"16":16,"19":19,"20":20,"28":28}],16:[function(require,module,exports){ +"use strict";module.exports=TypeError; + +},{}],19:[function(require,module,exports){ +"use strict";var implementation=require(18);module.exports=Function.prototype.bind||implementation; + +},{"18":18}],10:[function(require,module,exports){ +"use strict";var GetIntrinsic=require(20),$defineProperty=GetIntrinsic("%Object.defineProperty%",!0)||!1;if($defineProperty)try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=!1}module.exports=$defineProperty; + +},{"20":20}],28:[function(require,module,exports){ +"use strict";var GetIntrinsic=require(20),define=require(9),hasDescriptors=require(22)(),gOPD=require(21),$TypeError=require(16),$floor=GetIntrinsic("%Math.floor%");module.exports=function setFunctionLength(e,r){if("function"!=typeof e)throw new $TypeError("`fn` is not a function");if("number"!=typeof r||r<0||r>4294967295||$floor(r)!==r)throw new $TypeError("`length` must be a positive 32-bit integer");var t=arguments.length>2&&!!arguments[2],i=!0,n=!0;if("length"in e&&gOPD){var o=gOPD(e,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(n=!1)}return(i||n||!t)&&(hasDescriptors?define(e,"length",r,!0,!0):define(e,"length",r)),e}; + +},{"16":16,"20":20,"21":21,"22":22,"9":9}],9:[function(require,module,exports){ +"use strict";var $defineProperty=require(10),$SyntaxError=require(15),$TypeError=require(16),gopd=require(21);module.exports=function defineDataProperty(e,r,o){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new $TypeError("`obj` must be an object or a function`");if("string"!=typeof r&&"symbol"!=typeof r)throw new $TypeError("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new $TypeError("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new $TypeError("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,t=arguments.length>5?arguments[5]:null,i=arguments.length>6&&arguments[6],a=!!gopd&&gopd(e,r);if($defineProperty)$defineProperty(e,r,{configurable:null===t&&a?a.configurable:!t,enumerable:null===n&&a?a.enumerable:!n,value:o,writable:null===l&&a?a.writable:!l});else{if(!i&&(n||l||t))throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[r]=o}}; + +},{"10":10,"15":15,"16":16,"21":21}],15:[function(require,module,exports){ +"use strict";module.exports=SyntaxError; + +},{}],21:[function(require,module,exports){ +"use strict";var GetIntrinsic=require(20),$gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch(t){$gOPD=null}module.exports=$gOPD; + +},{"20":20}],11:[function(require,module,exports){ +"use strict";module.exports=EvalError; + +},{}],12:[function(require,module,exports){ +"use strict";module.exports=Error; + +},{}],13:[function(require,module,exports){ +"use strict";module.exports=RangeError; + +},{}],14:[function(require,module,exports){ +"use strict";module.exports=ReferenceError; + +},{}],17:[function(require,module,exports){ +"use strict";module.exports=URIError; + +},{}],18:[function(require,module,exports){ +"use strict";var ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function concatty(t,n){for(var r=[],o=0;o-1e3&&t<1e3||$test.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-$floor(-t):$floor(t);if(n!==t){var o=String(n),i=$slice.call(e,o.length+1);return $replace.call(o,r,"$&_")+"."+$replace.call($replace.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(e,r,"$&_")}var utilInspect=require(6),inspectCustom=utilInspect.custom,inspectSymbol=isSymbol(inspectCustom)?inspectCustom:null;function wrapQuotes(t,e,r){var n="double"===(r.quoteStyle||e)?'"':"'";return n+t+n}function quote(t){return $replace.call(String(t),/"/g,""")}function isArray(t){return!("[object Array]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isDate(t){return!("[object Date]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isRegExp(t){return!("[object RegExp]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isError(t){return!("[object Error]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isString(t){return!("[object String]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isNumber(t){return!("[object Number]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isBoolean(t){return!("[object Boolean]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isSymbol(t){if(hasShammedSymbols)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!symToString)return!1;try{return symToString.call(t),!0}catch(t){}return!1}function isBigInt(t){if(!t||"object"!=typeof t||!bigIntValueOf)return!1;try{return bigIntValueOf.call(t),!0}catch(t){}return!1}module.exports=function inspect_(t,e,r,n){var o=e||{};if(has(o,"quoteStyle")&&"single"!==o.quoteStyle&&"double"!==o.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has(o,"maxStringLength")&&("number"==typeof o.maxStringLength?o.maxStringLength<0&&o.maxStringLength!==1/0:null!==o.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var i=!has(o,"customInspect")||o.customInspect;if("boolean"!=typeof i&&"symbol"!==i)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has(o,"indent")&&null!==o.indent&&"\t"!==o.indent&&!(parseInt(o.indent,10)===o.indent&&o.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has(o,"numericSeparator")&&"boolean"!=typeof o.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=o.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,o);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var c=String(t);return a?addNumericSeparator(t,c):c}if("bigint"==typeof t){var l=String(t)+"n";return a?addNumericSeparator(t,l):l}var p=void 0===o.depth?5:o.depth;if(void 0===r&&(r=0),r>=p&&p>0&&"object"==typeof t)return isArray(t)?"[Array]":"[Object]";var u=getIndent(o,r);if(void 0===n)n=[];else if(indexOf(n,t)>=0)return"[Circular]";function inspect(t,e,i){if(e&&(n=$arrSlice.call(n)).push(e),i){var a={depth:o.depth};return has(o,"quoteStyle")&&(a.quoteStyle=o.quoteStyle),inspect_(t,a,r+1,n)}return inspect_(t,o,r+1,n)}if("function"==typeof t&&!isRegExp(t)){var f=nameOf(t),s=arrObjKeys(t,inspect);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(s.length>0?" { "+$join.call(s,", ")+" }":"")}if(isSymbol(t)){var y=hasShammedSymbols?$replace.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?y:markBoxed(y)}if(isElement(t)){for(var S="<"+$toLowerCase.call(String(t.nodeName)),g=t.attributes||[],b=0;b"}if(isArray(t)){if(0===t.length)return"[]";var m=arrObjKeys(t,inspect);return u&&!singleLineValues(m)?"["+indentedJoin(m,u)+"]":"[ "+$join.call(m,", ")+" ]"}if(isError(t)){var h=arrObjKeys(t,inspect);return"cause"in Error.prototype||!("cause"in t)||isEnumerable.call(t,"cause")?0===h.length?"["+String(t)+"]":"{ ["+String(t)+"] "+$join.call(h,", ")+" }":"{ ["+String(t)+"] "+$join.call($concat.call("[cause]: "+inspect(t.cause),h),", ")+" }"}if("object"==typeof t&&i){if(inspectSymbol&&"function"==typeof t[inspectSymbol]&&utilInspect)return utilInspect(t,{depth:p-r});if("symbol"!==i&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var d=[];return mapForEach&&mapForEach.call(t,(function(e,r){d.push(inspect(r,t,!0)+" => "+inspect(e,t))})),collectionOf("Map",mapSize.call(t),d,u)}if(isSet(t)){var j=[];return setForEach&&setForEach.call(t,(function(e){j.push(inspect(e,t))})),collectionOf("Set",setSize.call(t),j,u)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(inspect(Number(t)));if(isBigInt(t))return markBoxed(inspect(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(inspect(String(t)));if("undefined"!=typeof window&&t===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&t===globalThis||"undefined"!=typeof global&&t===global)return"{ [object globalThis] }";if(!isDate(t)&&!isRegExp(t)){var O=arrObjKeys(t,inspect),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",k=!w&&toStringTag&&Object(t)===t&&toStringTag in t?$slice.call(toStr(t),8,-1):$?"Object":"",v=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(k||$?"["+$join.call($concat.call([],k||[],$||[]),": ")+"] ":"");return 0===O.length?v+"{}":u?v+"{"+indentedJoin(O,u)+"}":v+"{ "+$join.call(O,", ")+" }"}return String(t)};var hasOwn=Object.prototype.hasOwnProperty||function(t){return t in this};function has(t,e){return hasOwn.call(t,e)}function toStr(t){return objectToString.call(t)}function nameOf(t){if(t.name)return t.name;var e=$match.call(functionToString.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function indexOf(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString($slice.call(t,0,e.maxStringLength),e)+n}return wrapQuotes($replace.call($replace.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte),"single",e)}function lowbyte(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+$toUpperCase.call(e.toString(16))}function markBoxed(t){return"Object("+t+")"}function weakCollectionOf(t){return t+" { ? }"}function collectionOf(t,e,r,n){return t+" ("+e+") {"+(n?indentedJoin(r,n):$join.call(r,", "))+"}"}function singleLineValues(t){for(var e=0;e=0)return!1;return!0}function getIndent(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=$join.call(Array(t.indent+1)," ")}return{base:r,prev:$join.call(Array(e+1),r)}}function indentedJoin(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+$join.call(t,","+r)+"\n"+e.prev}function arrObjKeys(t,e){var r=isArray(t),n=[];if(r){n.length=t.length;for(var o=0;o -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']'); + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + var existing = has.call(obj, key); + if (existing && options.duplicates === 'combine') { + obj[key] = utils.combine(obj[key], val); + } else if (!existing || options.duplicates === 'last') { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null)) + ? [] + : [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot; + var index = parseInt(decodedRoot, 10); + if (!options.parseArrays && decodedRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== decodedRoot + && String(index) === decodedRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (decodedRoot !== '__proto__') { + obj[decodedRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, check strictDepth option for throw, else just add whatever is left + + if (segment) { + if (options.strictDepth === true) { + throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true'); + } + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') { + throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided'); + } + + if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') { + throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided'); + } + + if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates; + + if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') { + throw new TypeError('The duplicates option must be either combine, first, or last'); + } + + var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + + return { + allowDots: allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + duplicates: duplicates, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + if (options.allowSparse === true) { + return obj; + } + + return utils.compact(obj); +}; diff --git a/node_modules/qs/lib/stringify.js b/node_modules/qs/lib/stringify.js new file mode 100644 index 0000000..9b934d6 --- /dev/null +++ b/node_modules/qs/lib/stringify.js @@ -0,0 +1,351 @@ +'use strict'; + +var getSideChannel = require('side-channel'); +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + allowEmptyArrays: false, + arrayFormat: 'indices', + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encodeDotInKeys: false, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var sentinel = {}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + sideChannel +) { + var obj = object; + + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) { + // Where object last appeared in the ref tree + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== 'undefined') { + if (pos === step) { + throw new RangeError('Cyclic object value'); + } else { + findFlag = true; // Break while + } + } + if (typeof tmpSc.get(sentinel) === 'undefined') { + step = 0; + } + } + + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, encoder); + } + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, '%2E') : prefix; + + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix; + + if (allowEmptyArrays && isArray(obj) && obj.length === 0) { + return adjustedPrefix + '[]'; + } + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, '%2E') : key; + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix + : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']'); + + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') { + throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided'); + } + + if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') { + throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided'); + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + var arrayFormat; + if (opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if ('indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = defaults.arrayFormat; + } + + if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') { + throw new TypeError('`commaRoundTrip` must be a boolean, or absent'); + } + + var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + arrayFormat: arrayFormat, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + commaRoundTrip: opts.commaRoundTrip, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat]; + var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + commaRoundTrip, + options.allowEmptyArrays, + options.strictNullHandling, + options.skipNulls, + options.encodeDotInKeys, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; diff --git a/node_modules/qs/lib/utils.js b/node_modules/qs/lib/utils.js new file mode 100644 index 0000000..7c860f1 --- /dev/null +++ b/node_modules/qs/lib/utils.js @@ -0,0 +1,265 @@ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var limit = 1024; + +/* eslint operator-linebreak: [2, "before"] */ + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var j = 0; j < string.length; j += limit) { + var segment = string.length >= limit ? string.slice(j, j + limit) : string; + var arr = []; + + for (var i = 0; i < segment.length; ++i) { + var c = segment.charCodeAt(i); + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + arr[arr.length] = segment.charAt(i); + continue; + } + + if (c < 0x80) { + arr[arr.length] = hexTable[c]; + continue; + } + + if (c < 0x800) { + arr[arr.length] = hexTable[0xC0 | (c >> 6)] + + hexTable[0x80 | (c & 0x3F)]; + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + arr[arr.length] = hexTable[0xE0 | (c >> 12)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF)); + + arr[arr.length] = hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + out += arr.join(''); + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; diff --git a/node_modules/qs/package.json b/node_modules/qs/package.json new file mode 100644 index 0000000..6dae052 --- /dev/null +++ b/node_modules/qs/package.json @@ -0,0 +1,91 @@ +{ + "name": "qs", + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "homepage": "https://github.com/ljharb/qs", + "version": "6.13.0", + "repository": { + "type": "git", + "url": "https://github.com/ljharb/qs.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "main": "lib/index.js", + "sideEffects": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "keywords": [ + "querystring", + "qs", + "query", + "url", + "parse", + "stringify" + ], + "engines": { + "node": ">=0.6" + }, + "dependencies": { + "side-channel": "^1.0.6" + }, + "devDependencies": { + "@browserify/envify": "^6.0.0", + "@browserify/uglifyify": "^6.0.0", + "@ljharb/eslint-config": "^21.1.1", + "browserify": "^16.5.2", + "bundle-collapser": "^1.4.0", + "common-shakeify": "~1.0.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "glob": "=10.3.7", + "has-override-mistake": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-symbols": "^1.0.3", + "iconv-lite": "^0.5.1", + "in-publish": "^2.0.1", + "jackspeak": "=2.1.1", + "mkdirp": "^0.5.5", + "mock-property": "^1.0.3", + "module-deps": "^6.2.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.2", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "tape": "^5.8.1", + "unassertify": "^3.0.1" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated && npm run dist", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent readme && npm run --silent lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@'>=10.2' audit --production", + "readme": "evalmd README.md", + "postlint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "lint": "eslint --ext=js,mjs .", + "dist": "mkdirp dist && browserify --standalone Qs -g unassertify -g @browserify/envify -g [@browserify/uglifyify --mangle.keep_fnames --compress.keep_fnames --format.indent_level=1 --compress.arrows=false --compress.passes=4 --compress.typeofs=false] -p common-shakeify -p bundle-collapser/plugin lib/index.js > dist/qs.js" + }, + "license": "BSD-3-Clause", + "publishConfig": { + "ignore": [ + "!dist/*", + "bower.json", + "component.json", + ".github/workflows", + "logos", + "tea.yaml" + ] + } +} diff --git a/node_modules/qs/test/empty-keys-cases.js b/node_modules/qs/test/empty-keys-cases.js new file mode 100644 index 0000000..2b1190e --- /dev/null +++ b/node_modules/qs/test/empty-keys-cases.js @@ -0,0 +1,267 @@ +'use strict'; + +module.exports = { + emptyTestCases: [ + { + input: '&', + withEmptyKeys: {}, + stringifyOutput: { + brackets: '', + indices: '', + repeat: '' + }, + noEmptyKeys: {} + }, + { + input: '&&', + withEmptyKeys: {}, + stringifyOutput: { + brackets: '', + indices: '', + repeat: '' + }, + noEmptyKeys: {} + }, + { + input: '&=', + withEmptyKeys: { '': '' }, + stringifyOutput: { + brackets: '=', + indices: '=', + repeat: '=' + }, + noEmptyKeys: {} + }, + { + input: '&=&', + withEmptyKeys: { '': '' }, + stringifyOutput: { + brackets: '=', + indices: '=', + repeat: '=' + }, + noEmptyKeys: {} + }, + { + input: '&=&=', + withEmptyKeys: { '': ['', ''] }, + stringifyOutput: { + brackets: '[]=&[]=', + indices: '[0]=&[1]=', + repeat: '=&=' + }, + noEmptyKeys: {} + }, + { + input: '&=&=&', + withEmptyKeys: { '': ['', ''] }, + stringifyOutput: { + brackets: '[]=&[]=', + indices: '[0]=&[1]=', + repeat: '=&=' + }, + noEmptyKeys: {} + }, + { + input: '=', + withEmptyKeys: { '': '' }, + noEmptyKeys: {}, + stringifyOutput: { + brackets: '=', + indices: '=', + repeat: '=' + } + }, + { + input: '=&', + withEmptyKeys: { '': '' }, + stringifyOutput: { + brackets: '=', + indices: '=', + repeat: '=' + }, + noEmptyKeys: {} + }, + { + input: '=&&&', + withEmptyKeys: { '': '' }, + stringifyOutput: { + brackets: '=', + indices: '=', + repeat: '=' + }, + noEmptyKeys: {} + }, + { + input: '=&=&=&', + withEmptyKeys: { '': ['', '', ''] }, + stringifyOutput: { + brackets: '[]=&[]=&[]=', + indices: '[0]=&[1]=&[2]=', + repeat: '=&=&=' + }, + noEmptyKeys: {} + }, + { + input: '=&a[]=b&a[1]=c', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: '=a', + withEmptyKeys: { '': 'a' }, + noEmptyKeys: {}, + stringifyOutput: { + brackets: '=a', + indices: '=a', + repeat: '=a' + } + }, + { + input: 'a==a', + withEmptyKeys: { a: '=a' }, + noEmptyKeys: { a: '=a' }, + stringifyOutput: { + brackets: 'a==a', + indices: 'a==a', + repeat: 'a==a' + } + }, + { + input: '=&a[]=b', + withEmptyKeys: { '': '', a: ['b'] }, + stringifyOutput: { + brackets: '=&a[]=b', + indices: '=&a[0]=b', + repeat: '=&a=b' + }, + noEmptyKeys: { a: ['b'] } + }, + { + input: '=&a[]=b&a[]=c&a[2]=d', + withEmptyKeys: { '': '', a: ['b', 'c', 'd'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c&a[]=d', + indices: '=&a[0]=b&a[1]=c&a[2]=d', + repeat: '=&a=b&a=c&a=d' + }, + noEmptyKeys: { a: ['b', 'c', 'd'] } + }, + { + input: '=a&=b', + withEmptyKeys: { '': ['a', 'b'] }, + stringifyOutput: { + brackets: '[]=a&[]=b', + indices: '[0]=a&[1]=b', + repeat: '=a&=b' + }, + noEmptyKeys: {} + }, + { + input: '=a&foo=b', + withEmptyKeys: { '': 'a', foo: 'b' }, + noEmptyKeys: { foo: 'b' }, + stringifyOutput: { + brackets: '=a&foo=b', + indices: '=a&foo=b', + repeat: '=a&foo=b' + } + }, + { + input: 'a[]=b&a=c&=', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: 'a[]=b&a=c&=', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: 'a[0]=b&a=c&=', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: 'a=b&a[]=c&=', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: 'a=b&a[0]=c&=', + withEmptyKeys: { '': '', a: ['b', 'c'] }, + stringifyOutput: { + brackets: '=&a[]=b&a[]=c', + indices: '=&a[0]=b&a[1]=c', + repeat: '=&a=b&a=c' + }, + noEmptyKeys: { a: ['b', 'c'] } + }, + { + input: '[]=a&[]=b& []=1', + withEmptyKeys: { '': ['a', 'b'], ' ': ['1'] }, + stringifyOutput: { + brackets: '[]=a&[]=b& []=1', + indices: '[0]=a&[1]=b& [0]=1', + repeat: '=a&=b& =1' + }, + noEmptyKeys: { 0: 'a', 1: 'b', ' ': ['1'] } + }, + { + input: '[0]=a&[1]=b&a[0]=1&a[1]=2', + withEmptyKeys: { '': ['a', 'b'], a: ['1', '2'] }, + noEmptyKeys: { 0: 'a', 1: 'b', a: ['1', '2'] }, + stringifyOutput: { + brackets: '[]=a&[]=b&a[]=1&a[]=2', + indices: '[0]=a&[1]=b&a[0]=1&a[1]=2', + repeat: '=a&=b&a=1&a=2' + } + }, + { + input: '[deep]=a&[deep]=2', + withEmptyKeys: { '': { deep: ['a', '2'] } + }, + stringifyOutput: { + brackets: '[deep][]=a&[deep][]=2', + indices: '[deep][0]=a&[deep][1]=2', + repeat: '[deep]=a&[deep]=2' + }, + noEmptyKeys: { deep: ['a', '2'] } + }, + { + input: '%5B0%5D=a&%5B1%5D=b', + withEmptyKeys: { '': ['a', 'b'] }, + stringifyOutput: { + brackets: '[]=a&[]=b', + indices: '[0]=a&[1]=b', + repeat: '=a&=b' + }, + noEmptyKeys: { 0: 'a', 1: 'b' } + } + ] +}; diff --git a/node_modules/qs/test/parse.js b/node_modules/qs/test/parse.js new file mode 100644 index 0000000..8a2f487 --- /dev/null +++ b/node_modules/qs/test/parse.js @@ -0,0 +1,1170 @@ +'use strict'; + +var test = require('tape'); +var hasPropertyDescriptors = require('has-property-descriptors')(); +var iconv = require('iconv-lite'); +var mockProperty = require('mock-property'); +var hasOverrideMistake = require('has-override-mistake')(); +var SaferBuffer = require('safer-buffer').Buffer; +var v = require('es-value-fixtures'); +var inspect = require('object-inspect'); +var emptyTestCases = require('./empty-keys-cases').emptyTestCases; + +var qs = require('../'); +var utils = require('../lib/utils'); + +test('parse()', function (t) { + t.test('parses a simple string', function (st) { + st.deepEqual(qs.parse('0=foo'), { 0: 'foo' }); + st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); + st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); + st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); + st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); + st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); + st.deepEqual(qs.parse('foo'), { foo: '' }); + st.deepEqual(qs.parse('foo='), { foo: '' }); + st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); + st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); + st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); + st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); + st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); + st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); + st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); + st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { + cht: 'p3', + chd: 't:60,40', + chs: '250x100', + chl: 'Hello|World' + }); + st.end(); + }); + + t.test('comma: false', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c'), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('comma: true', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { comma: true }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { comma: true }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { comma: true }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a=c', { comma: true }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('allows enabling dot notation', function (st) { + st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); + st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); + + st.end(); + }); + + t.test('decode dot keys correctly', function (st) { + st.deepEqual( + qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: false, decodeDotInKeys: false }), + { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' }, + 'with allowDots false and decodeDotInKeys false' + ); + st.deepEqual( + qs.parse('name.obj.first=John&name.obj.last=Doe', { allowDots: true, decodeDotInKeys: false }), + { name: { obj: { first: 'John', last: 'Doe' } } }, + 'with allowDots false and decodeDotInKeys false' + ); + st.deepEqual( + qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: false }), + { 'name%2Eobj': { first: 'John', last: 'Doe' } }, + 'with allowDots true and decodeDotInKeys false' + ); + st.deepEqual( + qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: true }), + { 'name.obj': { first: 'John', last: 'Doe' } }, + 'with allowDots true and decodeDotInKeys true' + ); + + st.deepEqual( + qs.parse( + 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe', + { allowDots: false, decodeDotInKeys: false } + ), + { 'name%2Eobj%2Esubobject.first%2Egodly%2Ename': 'John', 'name%2Eobj%2Esubobject.last': 'Doe' }, + 'with allowDots false and decodeDotInKeys false' + ); + st.deepEqual( + qs.parse( + 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe', + { allowDots: true, decodeDotInKeys: false } + ), + { name: { obj: { subobject: { first: { godly: { name: 'John' } }, last: 'Doe' } } } }, + 'with allowDots true and decodeDotInKeys false' + ); + st.deepEqual( + qs.parse( + 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe', + { allowDots: true, decodeDotInKeys: true } + ), + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + 'with allowDots true and decodeDotInKeys true' + ); + st.deepEqual( + qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe'), + { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' }, + 'with allowDots and decodeDotInKeys undefined' + ); + + st.end(); + }); + + t.test('should decode dot in key of object, and allow enabling dot notation when decodeDotInKeys is set to true and allowDots is undefined', function (st) { + st.deepEqual( + qs.parse( + 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe', + { decodeDotInKeys: true } + ), + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + 'with allowDots undefined and decodeDotInKeys true' + ); + + st.end(); + }); + + t.test('should throw when decodeDotInKeys is not of type boolean', function (st) { + st['throws']( + function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 'foobar' }); }, + TypeError + ); + + st['throws']( + function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 0 }); }, + TypeError + ); + st['throws']( + function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: NaN }); }, + TypeError + ); + + st['throws']( + function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: null }); }, + TypeError + ); + + st.end(); + }); + + t.test('allows empty arrays in obj values', function (st) { + st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: true }), { foo: [], bar: 'baz' }); + st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: false }), { foo: [''], bar: 'baz' }); + + st.end(); + }); + + t.test('should throw when allowEmptyArrays is not of type boolean', function (st) { + st['throws']( + function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 'foobar' }); }, + TypeError + ); + + st['throws']( + function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 0 }); }, + TypeError + ); + st['throws']( + function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: NaN }); }, + TypeError + ); + + st['throws']( + function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: null }); }, + TypeError + ); + + st.end(); + }); + + t.test('allowEmptyArrays + strictNullHandling', function (st) { + st.deepEqual( + qs.parse('testEmptyArray[]', { strictNullHandling: true, allowEmptyArrays: true }), + { testEmptyArray: [] } + ); + + st.end(); + }); + + t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); + t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); + t.deepEqual( + qs.parse('a[b][c][d][e][f][g][h]=i'), + { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, + 'defaults to a depth of 5' + ); + + t.test('only parses one level when depth = 1', function (st) { + st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); + st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); + st.end(); + }); + + t.test('uses original key when depth = 0', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.test('uses original key when depth = false', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); + + t.test('parses an explicit array', function (st) { + st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); + st.end(); + }); + + t.test('parses a mix of simple and explicit arrays', function (st) { + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + + st.end(); + }); + + t.test('parses a nested array', function (st) { + st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); + st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); + st.end(); + }); + + t.test('allows to specify array indices', function (st) { + st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); + st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } }); + st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); + st.end(); + }); + + t.test('limits specific array indices to arrayLimit', function (st) { + st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] }); + st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } }); + + st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] }); + st.deepEqual(qs.parse('a[21]=a'), { a: { 21: 'a' } }); + st.end(); + }); + + t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); + + t.test('supports encoded = signs', function (st) { + st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); + st.end(); + }); + + t.test('is ok with url encoded strings', function (st) { + st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); + st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); + st.end(); + }); + + t.test('allows brackets in the value', function (st) { + st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); + st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); + st.end(); + }); + + t.test('allows empty values', function (st) { + st.deepEqual(qs.parse(''), {}); + st.deepEqual(qs.parse(null), {}); + st.deepEqual(qs.parse(undefined), {}); + st.end(); + }); + + t.test('transforms arrays to objects', function (st) { + st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } }); + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } }); + st.end(); + }); + + t.test('transforms arrays to objects (dot notation)', function (st) { + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); + st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); + st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + st.end(); + }); + + t.test('correctly prunes undefined values when converting an array to an object', function (st) { + st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } }); + st.end(); + }); + + t.test('supports malformed uri characters', function (st) { + st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); + st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); + st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); + st.end(); + }); + + t.test('doesn\'t produce empty keys', function (st) { + st.deepEqual(qs.parse('_r=1&'), { _r: '1' }); + st.end(); + }); + + t.test('cannot access Object prototype', function (st) { + qs.parse('constructor[prototype][bad]=bad'); + qs.parse('bad[constructor][prototype][bad]=bad'); + st.equal(typeof Object.prototype.bad, 'undefined'); + st.end(); + }); + + t.test('parses arrays of objects', function (st) { + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); + st.end(); + }); + + t.test('allows for empty strings in arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); + + st.deepEqual( + qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 20 + array indices: null then empty string works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 0 + array brackets: null then empty string works' + ); + + st.deepEqual( + qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 20 + array indices: empty string then null works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 0 + array brackets: empty string then null works' + ); + + st.deepEqual( + qs.parse('a[]=&a[]=b&a[]=c'), + { a: ['', 'b', 'c'] }, + 'array brackets: empty strings work' + ); + st.end(); + }); + + t.test('compacts sparse arrays', function (st) { + st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] }); + st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] }); + st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] }); + st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] }); + st.end(); + }); + + t.test('parses sparse arrays', function (st) { + /* eslint no-sparse-arrays: 0 */ + st.deepEqual(qs.parse('a[4]=1&a[1]=2', { allowSparse: true }), { a: [, '2', , , '1'] }); + st.deepEqual(qs.parse('a[1][b][2][c]=1', { allowSparse: true }), { a: [, { b: [, , { c: '1' }] }] }); + st.deepEqual(qs.parse('a[1][2][3][c]=1', { allowSparse: true }), { a: [, [, , [, , , { c: '1' }]]] }); + st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { allowSparse: true }), { a: [, [, , [, , , { c: [, '1'] }]]] }); + st.end(); + }); + + t.test('parses semi-parsed strings', function (st) { + st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); + st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); + st.end(); + }); + + t.test('parses buffers correctly', function (st) { + var b = SaferBuffer.from('test'); + st.deepEqual(qs.parse({ a: b }), { a: b }); + st.end(); + }); + + t.test('parses jquery-param strings', function (st) { + // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8' + var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8'; + var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] }; + st.deepEqual(qs.parse(encoded), expected); + st.end(); + }); + + t.test('continues parsing when no parent is found', function (st) { + st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); + st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); + st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); + st.end(); + }); + + t.test('does not error when parsing a very long array', function (st) { + var str = 'a[]=a'; + while (Buffer.byteLength(str) < 128 * 1024) { + str = str + '&' + str; + } + + st.doesNotThrow(function () { + qs.parse(str); + }); + + st.end(); + }); + + t.test('should not throw when a native prototype has an enumerable property', function (st) { + st.intercept(Object.prototype, 'crash', { value: '' }); + st.intercept(Array.prototype, 'crash', { value: '' }); + + st.doesNotThrow(qs.parse.bind(null, 'a=b')); + st.deepEqual(qs.parse('a=b'), { a: 'b' }); + st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + + st.end(); + }); + + t.test('parses a string with an alternative string delimiter', function (st) { + st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('parses a string with an alternative RegExp delimiter', function (st) { + st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not use non-splittable objects as delimiters', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding parameter limit', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); + st.end(); + }); + + t.test('allows setting the parameter limit to Infinity', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding array limit', function (st) { + st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } }); + st.deepEqual(qs.parse('a[0]=b', { arrayLimit: 0 }), { a: ['b'] }); + + st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); + st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: 0 }), { a: { '-1': 'b' } }); + + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: -1 }), { a: { 0: 'b', 1: 'c' } }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } }); + + st.end(); + }); + + t.test('allows disabling array parsing', function (st) { + var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false }); + st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } }); + st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array'); + + var emptyBrackets = qs.parse('a[]=b', { parseArrays: false }); + st.deepEqual(emptyBrackets, { a: { 0: 'b' } }); + st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array'); + + st.end(); + }); + + t.test('allows for query string prefix', function (st) { + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' }); + + st.end(); + }); + + t.test('parses an object', function (st) { + var input = { + 'user[name]': { 'pop[bob]': 3 }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses string with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] }); + st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } }); + st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null }); + + // test cases inversed from from stringify tests + st.deepEqual(qs.parse('a[0]=c'), { a: ['c'] }); + st.deepEqual(qs.parse('a[]=c'), { a: ['c'] }); + st.deepEqual(qs.parse('a[]=c', { comma: true }), { a: ['c'] }); + + st.deepEqual(qs.parse('a[0]=c&a[1]=d'), { a: ['c', 'd'] }); + st.deepEqual(qs.parse('a[]=c&a[]=d'), { a: ['c', 'd'] }); + st.deepEqual(qs.parse('a=c,d', { comma: true }), { a: ['c', 'd'] }); + + st.end(); + }); + + t.test('parses values with comma as array divider', function (st) { + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' }); + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] }); + st.end(); + }); + + t.test('use number decoder, parses string that has one number with comma option enabled', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (!isNaN(Number(str))) { + return parseFloat(str); + } + return defaultDecoder(str, defaultDecoder, charset, type); + }; + + st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 }); + st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 }); + + st.end(); + }); + + t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] }); + + st.end(); + }); + + t.test('parses url-encoded brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] }); + st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=', { comma: true }), { foo: [['1', '2', '3'], ''] }); + st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] }); + st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] }); + + st.end(); + }); + + t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) { + st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' }); + st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] }); + st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] }); + + st.end(); + }); + + t.test('parses an object in dot notation', function (st) { + var input = { + 'user.name': { 'pop[bob]': 3 }, + 'user.email.': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input, { allowDots: true }); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses an object and not child values', function (st) { + var input = { + 'user[name]': { 'pop[bob]': { test: 3 } }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': { test: 3 } }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('does not blow up when Buffer global is missing', function (st) { + var restore = mockProperty(global, 'Buffer', { 'delete': true }); + + var result = qs.parse('a=b&c=d'); + + restore(); + + st.deepEqual(result, { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not crash when parsing circular references', function (st) { + var a = {}; + a.b = a; + + var parsed; + + st.doesNotThrow(function () { + parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + st.equal('bar' in parsed.foo, true); + st.equal('baz' in parsed.foo, true); + st.equal(parsed.foo.bar, 'baz'); + st.deepEqual(parsed.foo.baz, a); + st.end(); + }); + + t.test('does not crash when parsing deep objects', function (st) { + var parsed; + var str = 'foo'; + + for (var i = 0; i < 5000; i++) { + str += '[p]'; + } + + str += '=bar'; + + st.doesNotThrow(function () { + parsed = qs.parse(str, { depth: 5000 }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + + var depth = 0; + var ref = parsed.foo; + while ((ref = ref.p)) { + depth += 1; + } + + st.equal(depth, 5000, 'parsed is 5000 properties deep'); + + st.end(); + }); + + t.test('parses null objects correctly', { skip: !Object.create }, function (st) { + var a = Object.create(null); + a.b = 'c'; + + st.deepEqual(qs.parse(a), { b: 'c' }); + var result = qs.parse({ a: a }); + st.equal('a' in result, true, 'result has "a" property'); + st.deepEqual(result.a, a); + st.end(); + }); + + t.test('parses dates correctly', function (st) { + var now = new Date(); + st.deepEqual(qs.parse({ a: now }), { a: now }); + st.end(); + }); + + t.test('parses regular expressions correctly', function (st) { + var re = /^test$/; + st.deepEqual(qs.parse({ a: re }), { a: re }); + st.end(); + }); + + t.test('does not allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {}); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {}); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: false }), + {}, + 'bare "toString" results in {}' + ); + + st.end(); + }); + + t.test('can allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: true }), + { toString: '' }, + 'bare "toString" results in { toString: "" }' + ); + + st.end(); + }); + + t.test('does not crash when the global Object prototype is frozen', { skip: !hasPropertyDescriptors || !hasOverrideMistake }, function (st) { + // We can't actually freeze the global Object prototype as that will interfere with other tests, and once an object is frozen, it + // can't be unfrozen. Instead, we add a new non-writable property to simulate this. + st.teardown(mockProperty(Object.prototype, 'frozenProp', { value: 'foo', nonWritable: true, nonEnumerable: true })); + + st['throws']( + function () { + var obj = {}; + obj.frozenProp = 'bar'; + }, + // node < 6 has a different error message + /^TypeError: Cannot assign to read only property 'frozenProp' of (?:object '#'|#)/, + 'regular assignment of an inherited non-writable property throws' + ); + + var parsed; + st.doesNotThrow( + function () { + parsed = qs.parse('frozenProp', { allowPrototypes: false }); + }, + 'parsing a nonwritable Object.prototype property does not throw' + ); + + st.deepEqual(parsed, {}, 'bare "frozenProp" results in {}'); + + st.end(); + }); + + t.test('params starting with a closing bracket', function (st) { + st.deepEqual(qs.parse(']=toString'), { ']': 'toString' }); + st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' }); + st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' }); + st.end(); + }); + + t.test('params starting with a starting bracket', function (st) { + st.deepEqual(qs.parse('[=toString'), { '[': 'toString' }); + st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' }); + st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' }); + st.end(); + }); + + t.test('add keys to objects', function (st) { + st.deepEqual( + qs.parse('a[b]=c&a=d'), + { a: { b: 'c', d: true } }, + 'can add keys to objects' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString'), + { a: { b: 'c' } }, + 'can not overwrite prototype' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { allowPrototypes: true }), + { a: { b: 'c', toString: true } }, + 'can overwrite prototype with allowPrototypes true' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { plainObjects: true }), + { __proto__: null, a: { __proto__: null, b: 'c', toString: true } }, + 'can overwrite prototype with plainObjects true' + ); + + st.end(); + }); + + t.test('dunder proto is ignored', function (st) { + var payload = 'categories[__proto__]=login&categories[__proto__]&categories[length]=42'; + var result = qs.parse(payload, { allowPrototypes: true }); + + st.deepEqual( + result, + { + categories: { + length: '42' + } + }, + 'silent [[Prototype]] payload' + ); + + var plainResult = qs.parse(payload, { allowPrototypes: true, plainObjects: true }); + + st.deepEqual( + plainResult, + { + __proto__: null, + categories: { + __proto__: null, + length: '42' + } + }, + 'silent [[Prototype]] payload: plain objects' + ); + + var query = qs.parse('categories[__proto__]=cats&categories[__proto__]=dogs&categories[some][json]=toInject', { allowPrototypes: true }); + + st.notOk(Array.isArray(query.categories), 'is not an array'); + st.notOk(query.categories instanceof Array, 'is not instanceof an array'); + st.deepEqual(query.categories, { some: { json: 'toInject' } }); + st.equal(JSON.stringify(query.categories), '{"some":{"json":"toInject"}}', 'stringifies as a non-array'); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true }), + { + foo: { + bar: 'stuffs' + } + }, + 'hidden values' + ); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true, plainObjects: true }), + { + __proto__: null, + foo: { + __proto__: null, + bar: 'stuffs' + } + }, + 'hidden values: plain objects' + ); + + st.end(); + }); + + t.test('can return null objects', { skip: !Object.create }, function (st) { + var expected = Object.create(null); + expected.a = Object.create(null); + expected.a.b = 'c'; + expected.a.hasOwnProperty = 'd'; + st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); + st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); + var expectedArray = Object.create(null); + expectedArray.a = Object.create(null); + expectedArray.a[0] = 'b'; + expectedArray.a.c = 'd'; + st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); + st.end(); + }); + + t.test('can parse with custom encoding', function (st) { + st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { + decoder: function (str) { + var reg = /%([0-9A-F]{2})/ig; + var result = []; + var parts = reg.exec(str); + while (parts) { + result.push(parseInt(parts[1], 16)); + parts = reg.exec(str); + } + return String(iconv.decode(SaferBuffer.from(result), 'shift_jis')); + } + }), { 県: '大阪府' }); + st.end(); + }); + + t.test('receives the default decoder as a second argument', function (st) { + st.plan(1); + qs.parse('a', { + decoder: function (str, defaultDecoder) { + st.equal(defaultDecoder, utils.decode); + } + }); + st.end(); + }); + + t.test('throws error with wrong decoder', function (st) { + st['throws'](function () { + qs.parse({}, { decoder: 'string' }); + }, new TypeError('Decoder has to be a function.')); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.parse('a[b]=true', options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.parse('a=b', { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('parses an iso-8859-1 string if asked to', function (st) { + st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' }); + st.end(); + }); + + var urlEncodedCheckmarkInUtf8 = '%E2%9C%93'; + var urlEncodedOSlashInUtf8 = '%C3%B8'; + var urlEncodedNumCheckmark = '%26%2310003%3B'; + var urlEncodedNumSmiley = '%26%239786%3B'; + + t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' }); + st.end(); + }); + + t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) { + st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' }); + st.end(); + }); + + t.test('should ignore an utf8 sentinel with an unknown value', function (st) { + st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, { + charset: 'iso-8859-1', + decoder: function (str, defaultDecoder, charset) { + return str ? defaultDecoder(str, defaultDecoder, charset) : null; + }, + interpretNumericEntities: true + }), { foo: null, bar: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) { + st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' }); + st.end(); + }); + + t.test('allows for decoding keys and values differently', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' }); + st.end(); + }); + + t.end(); +}); + +test('parses empty keys', function (t) { + emptyTestCases.forEach(function (testCase) { + t.test('skips empty string key with ' + testCase.input, function (st) { + st.deepEqual(qs.parse(testCase.input), testCase.noEmptyKeys); + + st.end(); + }); + }); +}); + +test('`duplicates` option', function (t) { + v.nonStrings.concat('not a valid option').forEach(function (invalidOption) { + if (typeof invalidOption !== 'undefined') { + t['throws']( + function () { qs.parse('', { duplicates: invalidOption }); }, + TypeError, + 'throws on invalid option: ' + inspect(invalidOption) + ); + } + }); + + t.deepEqual( + qs.parse('foo=bar&foo=baz'), + { foo: ['bar', 'baz'] }, + 'duplicates: default, combine' + ); + + t.deepEqual( + qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }), + { foo: ['bar', 'baz'] }, + 'duplicates: combine' + ); + + t.deepEqual( + qs.parse('foo=bar&foo=baz', { duplicates: 'first' }), + { foo: 'bar' }, + 'duplicates: first' + ); + + t.deepEqual( + qs.parse('foo=bar&foo=baz', { duplicates: 'last' }), + { foo: 'baz' }, + 'duplicates: last' + ); + + t.end(); +}); + +test('qs strictDepth option - throw cases', function (t) { + t.test('throws an exception when depth exceeds the limit with strictDepth: true', function (st) { + st['throws']( + function () { + qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true }); + }, + RangeError, + 'Should throw RangeError' + ); + st.end(); + }); + + t.test('throws an exception for multiple nested arrays with strictDepth: true', function (st) { + st['throws']( + function () { + qs.parse('a[0][1][2][3][4]=b', { depth: 3, strictDepth: true }); + }, + RangeError, + 'Should throw RangeError' + ); + st.end(); + }); + + t.test('throws an exception for nested objects and arrays with strictDepth: true', function (st) { + st['throws']( + function () { + qs.parse('a[b][c][0][d][e]=f', { depth: 3, strictDepth: true }); + }, + RangeError, + 'Should throw RangeError' + ); + st.end(); + }); + + t.test('throws an exception for different types of values with strictDepth: true', function (st) { + st['throws']( + function () { + qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 3, strictDepth: true }); + }, + RangeError, + 'Should throw RangeError' + ); + st.end(); + }); + +}); + +test('qs strictDepth option - non-throw cases', function (t) { + t.test('when depth is 0 and strictDepth true, do not throw', function (st) { + st.doesNotThrow( + function () { + qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 0, strictDepth: true }); + }, + RangeError, + 'Should not throw RangeError' + ); + st.end(); + }); + + t.test('parses successfully when depth is within the limit with strictDepth: true', function (st) { + st.doesNotThrow( + function () { + var result = qs.parse('a[b]=c', { depth: 1, strictDepth: true }); + st.deepEqual(result, { a: { b: 'c' } }, 'Should parse correctly'); + } + ); + st.end(); + }); + + t.test('does not throw an exception when depth exceeds the limit with strictDepth: false', function (st) { + st.doesNotThrow( + function () { + var result = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); + st.deepEqual(result, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }, 'Should parse with depth limit'); + } + ); + st.end(); + }); + + t.test('parses successfully when depth is within the limit with strictDepth: false', function (st) { + st.doesNotThrow( + function () { + var result = qs.parse('a[b]=c', { depth: 1 }); + st.deepEqual(result, { a: { b: 'c' } }, 'Should parse correctly'); + } + ); + st.end(); + }); + + t.test('does not throw when depth is exactly at the limit with strictDepth: true', function (st) { + st.doesNotThrow( + function () { + var result = qs.parse('a[b][c]=d', { depth: 2, strictDepth: true }); + st.deepEqual(result, { a: { b: { c: 'd' } } }, 'Should parse correctly'); + } + ); + st.end(); + }); +}); diff --git a/node_modules/qs/test/stringify.js b/node_modules/qs/test/stringify.js new file mode 100644 index 0000000..12b1c71 --- /dev/null +++ b/node_modules/qs/test/stringify.js @@ -0,0 +1,1298 @@ +'use strict'; + +var test = require('tape'); +var qs = require('../'); +var utils = require('../lib/utils'); +var iconv = require('iconv-lite'); +var SaferBuffer = require('safer-buffer').Buffer; +var hasSymbols = require('has-symbols'); +var mockProperty = require('mock-property'); +var emptyTestCases = require('./empty-keys-cases').emptyTestCases; +var hasBigInt = typeof BigInt === 'function'; + +test('stringify()', function (t) { + t.test('stringifies a querystring object', function (st) { + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: 1 }), 'a=1'); + st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); + st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); + st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); + st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); + st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); + st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); + st.end(); + }); + + t.test('stringifies falsy values', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(null, { strictNullHandling: true }), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(0), ''); + st.end(); + }); + + t.test('stringifies symbols', { skip: !hasSymbols() }, function (st) { + st.equal(qs.stringify(Symbol.iterator), ''); + st.equal(qs.stringify([Symbol.iterator]), '0=Symbol%28Symbol.iterator%29'); + st.equal(qs.stringify({ a: Symbol.iterator }), 'a=Symbol%28Symbol.iterator%29'); + st.equal( + qs.stringify({ a: [Symbol.iterator] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=Symbol%28Symbol.iterator%29' + ); + st.end(); + }); + + t.test('stringifies bigints', { skip: !hasBigInt }, function (st) { + var three = BigInt(3); + var encodeWithN = function (value, defaultEncoder, charset) { + var result = defaultEncoder(value, defaultEncoder, charset); + return typeof value === 'bigint' ? result + 'n' : result; + }; + st.equal(qs.stringify(three), ''); + st.equal(qs.stringify([three]), '0=3'); + st.equal(qs.stringify([three], { encoder: encodeWithN }), '0=3n'); + st.equal(qs.stringify({ a: three }), 'a=3'); + st.equal(qs.stringify({ a: three }, { encoder: encodeWithN }), 'a=3n'); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=3' + ); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, encoder: encodeWithN, arrayFormat: 'brackets' }), + 'a[]=3n' + ); + st.end(); + }); + + t.test('encodes dot in key of object when encodeDotInKeys and allowDots is provided', function (st) { + st.equal( + qs.stringify( + { 'name.obj': { first: 'John', last: 'Doe' } }, + { allowDots: false, encodeDotInKeys: false } + ), + 'name.obj%5Bfirst%5D=John&name.obj%5Blast%5D=Doe', + 'with allowDots false and encodeDotInKeys false' + ); + st.equal( + qs.stringify( + { 'name.obj': { first: 'John', last: 'Doe' } }, + { allowDots: true, encodeDotInKeys: false } + ), + 'name.obj.first=John&name.obj.last=Doe', + 'with allowDots true and encodeDotInKeys false' + ); + st.equal( + qs.stringify( + { 'name.obj': { first: 'John', last: 'Doe' } }, + { allowDots: false, encodeDotInKeys: true } + ), + 'name%252Eobj%5Bfirst%5D=John&name%252Eobj%5Blast%5D=Doe', + 'with allowDots false and encodeDotInKeys true' + ); + st.equal( + qs.stringify( + { 'name.obj': { first: 'John', last: 'Doe' } }, + { allowDots: true, encodeDotInKeys: true } + ), + 'name%252Eobj.first=John&name%252Eobj.last=Doe', + 'with allowDots true and encodeDotInKeys true' + ); + + st.equal( + qs.stringify( + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + { allowDots: false, encodeDotInKeys: false } + ), + 'name.obj.subobject%5Bfirst.godly.name%5D=John&name.obj.subobject%5Blast%5D=Doe', + 'with allowDots false and encodeDotInKeys false' + ); + st.equal( + qs.stringify( + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + { allowDots: true, encodeDotInKeys: false } + ), + 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe', + 'with allowDots false and encodeDotInKeys false' + ); + st.equal( + qs.stringify( + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + { allowDots: false, encodeDotInKeys: true } + ), + 'name%252Eobj%252Esubobject%5Bfirst.godly.name%5D=John&name%252Eobj%252Esubobject%5Blast%5D=Doe', + 'with allowDots false and encodeDotInKeys true' + ); + st.equal( + qs.stringify( + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + { allowDots: true, encodeDotInKeys: true } + ), + 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe', + 'with allowDots true and encodeDotInKeys true' + ); + + st.end(); + }); + + t.test('should encode dot in key of object, and automatically set allowDots to `true` when encodeDotInKeys is true and allowDots in undefined', function (st) { + st.equal( + qs.stringify( + { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, + { encodeDotInKeys: true } + ), + 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe', + 'with allowDots undefined and encodeDotInKeys true' + ); + st.end(); + }); + + t.test('should encode dot in key of object when encodeDotInKeys and allowDots is provided, and nothing else when encodeValuesOnly is provided', function (st) { + st.equal( + qs.stringify({ 'name.obj': { first: 'John', last: 'Doe' } }, { + encodeDotInKeys: true, allowDots: true, encodeValuesOnly: true + }), + 'name%2Eobj.first=John&name%2Eobj.last=Doe' + ); + + st.equal( + qs.stringify({ 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, { allowDots: true, encodeDotInKeys: true, encodeValuesOnly: true }), + 'name%2Eobj%2Esubobject.first%2Egodly%2Ename=John&name%2Eobj%2Esubobject.last=Doe' + ); + + st.end(); + }); + + t.test('throws when `commaRoundTrip` is not a boolean', function (st) { + st['throws']( + function () { qs.stringify({}, { commaRoundTrip: 'not a boolean' }); }, + TypeError, + 'throws when `commaRoundTrip` is not a boolean' + ); + + st.end(); + }); + + t.test('throws when `encodeDotInKeys` is not a boolean', function (st) { + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 'foobar' }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 0 }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: NaN }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: null }); }, + TypeError + ); + + st.end(); + }); + + t.test('adds query prefix', function (st) { + st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); + st.end(); + }); + + t.test('with query prefix, outputs blank string given an empty object', function (st) { + st.equal(qs.stringify({}, { addQueryPrefix: true }), ''); + st.end(); + }); + + t.test('stringifies nested falsy values', function (st) { + st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D='); + st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D'); + st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies a nested object', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); + st.end(); + }); + + t.test('`allowDots` option: stringifies a nested object with dots notation', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); + st.end(); + }); + + t.test('stringifies an array value', function (st) { + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }), + 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma' }), + 'a=b%2Cc%2Cd', + 'comma => comma' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma', commaRoundTrip: true }), + 'a=b%2Cc%2Cd', + 'comma round trip => comma' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'default => indices' + ); + st.end(); + }); + + t.test('`skipNulls` option', function (st) { + st.equal( + qs.stringify({ a: 'b', c: null }, { skipNulls: true }), + 'a=b', + 'omits nulls when asked' + ); + + st.equal( + qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), + 'a%5Bb%5D=c', + 'omits nested nulls when asked' + ); + + st.end(); + }); + + t.test('omits array indices when asked', function (st) { + st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); + + st.end(); + }); + + t.test('omits object key/value pair when value is empty array', function (st) { + st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz'); + + st.end(); + }); + + t.test('should not omit object key/value pair when value is empty array and when asked', function (st) { + st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz'); + st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: false }), 'b=zz'); + st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: true }), 'a[]&b=zz'); + + st.end(); + }); + + t.test('should throw when allowEmptyArrays is not of type boolean', function (st) { + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 'foobar' }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 0 }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: NaN }); }, + TypeError + ); + + st['throws']( + function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: null }); }, + TypeError + ); + + st.end(); + }); + + t.test('allowEmptyArrays + strictNullHandling', function (st) { + st.equal( + qs.stringify( + { testEmptyArray: [] }, + { strictNullHandling: true, allowEmptyArrays: true } + ), + 'testEmptyArray[]' + ); + + st.end(); + }); + + t.test('stringifies an array value with one item vs multiple items', function (st) { + st.test('non-array item', function (s2t) { + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true }), 'a=c'); + + s2t.end(); + }); + + st.test('array with a single item', function (s2t) { + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a[]=c'); // so it parses back as an array + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true }), 'a[0]=c'); + + s2t.end(); + }); + + st.test('array with multiple items', function (s2t) { + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c&a[1]=d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c&a[]=d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c,d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c,d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true }), 'a[0]=c&a[1]=d'); + + s2t.end(); + }); + + st.test('array with multiple items with a comma inside', function (s2t) { + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c%2Cd,e'); + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma' }), 'a=c%2Cd%2Ce'); + + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd,e'); + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd%2Ce'); + + s2t.end(); + }); + + st.end(); + }); + + t.test('stringifies a nested array value', function (st) { + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[b][0]=c&a[b][1]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[b][]=c&a[b][]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a[b]=c,d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true }), 'a[b][0]=c&a[b][1]=d'); + st.end(); + }); + + t.test('stringifies comma and empty array values', function (st) { + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'indices' }), 'a[0]=,&a[1]=&a[2]=c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'brackets' }), 'a[]=,&a[]=&a[]=c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'comma' }), 'a=,,,c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'repeat' }), 'a=,&a=&a=c,d%'); + + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=%2C&a[1]=&a[2]=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=%2C&a[]=&a[]=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C,,c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25'); + + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a%5B0%5D=%2C&a%5B1%5D=&a%5B2%5D=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a%5B%5D=%2C&a%5B%5D=&a%5B%5D=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C%2C%2Cc%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25'); + + st.end(); + }); + + t.test('stringifies comma and empty non-array values', function (st) { + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'indices' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'brackets' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'comma' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'repeat' }), 'a=,&b=&c=c,d%'); + + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25'); + + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25'); + + st.end(); + }); + + t.test('stringifies a nested array value with dots notation', function (st) { + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'indices' } + ), + 'a.b[0]=c&a.b[1]=d', + 'indices: stringifies with dots + indices' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'brackets' } + ), + 'a.b[]=c&a.b[]=d', + 'brackets: stringifies with dots + brackets' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'comma' } + ), + 'a.b=c,d', + 'comma: stringifies with dots + comma' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true } + ), + 'a.b[0]=c&a.b[1]=d', + 'default: stringifies with dots + indices' + ); + st.end(); + }); + + t.test('stringifies an object inside an array', function (st) { + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices', encodeValuesOnly: true }), + 'a[0][b]=c', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }), + 'a[b]=c', + 'repeat => repeat' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }), + 'a[][b]=c', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { encodeValuesOnly: true }), + 'a[0][b]=c', + 'default => indices' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices', encodeValuesOnly: true }), + 'a[0][b][c][0]=1', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }), + 'a[b][c]=1', + 'repeat => repeat' + ); + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }), + 'a[][b][c][]=1', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { encodeValuesOnly: true }), + 'a[0][b][c][0]=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an array with mixed objects and primitives', function (st) { + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[][b]=1&a[]=2&a[]=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), + '???', + 'brackets => brackets', + { skip: 'TODO: figure out what this should do' } + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an object inside an array with dots notation', function (st) { + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b=c', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b=c', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false } + ), + 'a[0].b=c', + 'default => indices' + ); + + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b.c[0]=1', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b.c[]=1', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false } + ), + 'a[0].b.c[0]=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('does not omit object keys when indices = false', function (st) { + st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when indices=true', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when arrayFormat=indices', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses repeat notation for arrays when arrayFormat=repeat', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); + st.end(); + }); + + t.test('uses brackets notation for arrays when arrayFormat=brackets', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); + st.end(); + }); + + t.test('stringifies a complicated object', function (st) { + st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); + st.end(); + }); + + t.test('stringifies an empty value', function (st) { + st.equal(qs.stringify({ a: '' }), 'a='); + st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); + + st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); + st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); + + st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); + + st.end(); + }); + + t.test('stringifies an empty array in different arrayFormat', function (st) { + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false }), 'b[0]=&c=c'); + // arrayFormat default + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices' }), 'b[0]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets' }), 'b[]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat' }), 'b=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma' }), 'b=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', commaRoundTrip: true }), 'b[]=&c=c'); + // with strictNullHandling + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', strictNullHandling: true }), 'b[0]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', strictNullHandling: true }), 'b[]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', strictNullHandling: true }), 'b&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true }), 'b&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true, commaRoundTrip: true }), 'b[]&c=c'); + // with skipNulls + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', skipNulls: true }), 'c=c'); + + st.end(); + }); + + t.test('stringifies a null object', { skip: !Object.create }, function (st) { + var obj = Object.create(null); + obj.a = 'b'; + st.equal(qs.stringify(obj), 'a=b'); + st.end(); + }); + + t.test('returns an empty string for invalid input', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(''), ''); + st.end(); + }); + + t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) { + var obj = { a: Object.create(null) }; + + obj.a.b = 'c'; + st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('drops keys with a value of undefined', function (st) { + st.equal(qs.stringify({ a: undefined }), ''); + + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); + st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); + st.end(); + }); + + t.test('url encodes values', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.end(); + }); + + t.test('stringifies a date', function (st) { + var now = new Date(); + var str = 'a=' + encodeURIComponent(now.toISOString()); + st.equal(qs.stringify({ a: now }), str); + st.end(); + }); + + t.test('stringifies the weird object from qs', function (st) { + st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); + st.end(); + }); + + t.test('skips properties that are part of the object prototype', function (st) { + st.intercept(Object.prototype, 'crash', { value: 'test' }); + + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + + st.end(); + }); + + t.test('stringifies boolean values', function (st) { + st.equal(qs.stringify({ a: true }), 'a=true'); + st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); + st.equal(qs.stringify({ b: false }), 'b=false'); + st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies buffer values', function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test'); + st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test'); + st.end(); + }); + + t.test('stringifies an object using an alternative delimiter', function (st) { + st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); + st.end(); + }); + + t.test('does not blow up when Buffer global is missing', function (st) { + var restore = mockProperty(global, 'Buffer', { 'delete': true }); + + var result = qs.stringify({ a: 'b', c: 'd' }); + + restore(); + + st.equal(result, 'a=b&c=d'); + st.end(); + }); + + t.test('does not crash when parsing circular references', function (st) { + var a = {}; + a.b = a; + + st['throws']( + function () { qs.stringify({ 'foo[bar]': 'baz', 'foo[baz]': a }); }, + /RangeError: Cyclic object value/, + 'cyclic values throw' + ); + + var circular = { + a: 'value' + }; + circular.a = circular; + st['throws']( + function () { qs.stringify(circular); }, + /RangeError: Cyclic object value/, + 'cyclic values throw' + ); + + var arr = ['a']; + st.doesNotThrow( + function () { qs.stringify({ x: arr, y: arr }); }, + 'non-cyclic values do not throw' + ); + + st.end(); + }); + + t.test('non-circular duplicated references can still work', function (st) { + var hourOfDay = { + 'function': 'hour_of_day' + }; + + var p1 = { + 'function': 'gte', + arguments: [hourOfDay, 0] + }; + var p2 = { + 'function': 'lte', + arguments: [hourOfDay, 23] + }; + + st.equal( + qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }), + 'filters[$and][0][function]=gte&filters[$and][0][arguments][0][function]=hour_of_day&filters[$and][0][arguments][1]=0&filters[$and][1][function]=lte&filters[$and][1][arguments][0][function]=hour_of_day&filters[$and][1][arguments][1]=23' + ); + st.equal( + qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'filters[$and][][function]=gte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=0&filters[$and][][function]=lte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=23' + ); + st.equal( + qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), + 'filters[$and][function]=gte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=0&filters[$and][function]=lte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=23' + ); + + st.end(); + }); + + t.test('selects properties when filter=array', function (st) { + st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); + st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); + + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' } + ), + 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2] } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('supports custom representations when filter=function', function (st) { + var calls = 0; + var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; + var filterFunc = function (prefix, value) { + calls += 1; + if (calls === 1) { + st.equal(prefix, '', 'prefix is empty'); + st.equal(value, obj); + } else if (prefix === 'c') { + return void 0; + } else if (value instanceof Date) { + st.equal(prefix, 'e[f]'); + return value.getTime(); + } + return value; + }; + + st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); + st.equal(calls, 5); + st.end(); + }); + + t.test('can disable uri encoding', function (st) { + st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); + st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); + st.end(); + }); + + t.test('can sort the keys', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); + st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); + st.end(); + }); + + t.test('can sort the keys at depth 3 or more too', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: sort, encode: false } + ), + 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb' + ); + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: null, encode: false } + ), + 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b' + ); + st.end(); + }); + + t.test('can stringify with custom encoding', function (st) { + st.equal(qs.stringify({ 県: '大阪府', '': '' }, { + encoder: function (str) { + if (str.length === 0) { + return ''; + } + var buf = iconv.encode(str, 'shiftjis'); + var result = []; + for (var i = 0; i < buf.length; ++i) { + result.push(buf.readUInt8(i).toString(16)); + } + return '%' + result.join('%'); + } + }), '%8c%a7=%91%e5%8d%e3%95%7b&='); + st.end(); + }); + + t.test('receives the default encoder as a second argument', function (st) { + st.plan(8); + + qs.stringify({ a: 1, b: new Date(), c: true, d: [1] }, { + encoder: function (str) { + st.match(typeof str, /^(?:string|number|boolean)$/); + return ''; + } + }); + + st.end(); + }); + + t.test('receives the default encoder as a second argument', function (st) { + st.plan(2); + + qs.stringify({ a: 1 }, { + encoder: function (str, defaultEncoder) { + st.equal(defaultEncoder, utils.encode); + } + }); + + st.end(); + }); + + t.test('throws error with wrong encoder', function (st) { + st['throws'](function () { + qs.stringify({}, { encoder: 'string' }); + }, new TypeError('Encoder has to be a function.')); + st.end(); + }); + + t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, { + encoder: function (buffer) { + if (typeof buffer === 'string') { + return buffer; + } + return String.fromCharCode(buffer.readUInt8(0) + 97); + } + }), 'a=b'); + + st.equal(qs.stringify({ a: SaferBuffer.from('a b') }, { + encoder: function (buffer) { + return buffer; + } + }), 'a=a b'); + st.end(); + }); + + t.test('serializeDate option', function (st) { + var date = new Date(); + st.equal( + qs.stringify({ a: date }), + 'a=' + date.toISOString().replace(/:/g, '%3A'), + 'default is toISOString' + ); + + var mutatedDate = new Date(); + mutatedDate.toISOString = function () { + throw new SyntaxError(); + }; + st['throws'](function () { + mutatedDate.toISOString(); + }, SyntaxError); + st.equal( + qs.stringify({ a: mutatedDate }), + 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'), + 'toISOString works even when method is not locally present' + ); + + var specificDate = new Date(6); + st.equal( + qs.stringify( + { a: specificDate }, + { serializeDate: function (d) { return d.getTime() * 7; } } + ), + 'a=42', + 'custom serializeDate function called' + ); + + st.equal( + qs.stringify( + { a: [date] }, + { + serializeDate: function (d) { return d.getTime(); }, + arrayFormat: 'comma' + } + ), + 'a=' + date.getTime(), + 'works with arrayFormat comma' + ); + st.equal( + qs.stringify( + { a: [date] }, + { + serializeDate: function (d) { return d.getTime(); }, + arrayFormat: 'comma', + commaRoundTrip: true + } + ), + 'a%5B%5D=' + date.getTime(), + 'works with arrayFormat comma' + ); + + st.end(); + }); + + t.test('RFC 1738 serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC1738 }), 'a+b=a+b'); + + st.equal(qs.stringify({ 'foo(ref)': 'bar' }, { format: qs.formats.RFC1738 }), 'foo(ref)=bar'); + + st.end(); + }); + + t.test('RFC 3986 spaces serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC3986 }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Backward compatibility to RFC 3986', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Edge cases and unknown formats', function (st) { + ['UFO1234', false, 1234, null, {}, []].forEach(function (format) { + st['throws']( + function () { + qs.stringify({ a: 'b c' }, { format: format }); + }, + new TypeError('Unknown format option provided.') + ); + }); + st.end(); + }); + + t.test('encodeValuesOnly', function (st) { + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true, arrayFormat: 'indices' } + ), + 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h', + 'encodeValuesOnly + indices' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true, arrayFormat: 'brackets' } + ), + 'a=b&c[]=d&c[]=e%3Df&f[][]=g&f[][]=h', + 'encodeValuesOnly + brackets' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true, arrayFormat: 'repeat' } + ), + 'a=b&c=d&c=e%3Df&f=g&f=h', + 'encodeValuesOnly + repeat' + ); + + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }, + { arrayFormat: 'indices' } + ), + 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h', + 'no encodeValuesOnly + indices' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }, + { arrayFormat: 'brackets' } + ), + 'a=b&c%5B%5D=d&c%5B%5D=e&f%5B%5D%5B%5D=g&f%5B%5D%5B%5D=h', + 'no encodeValuesOnly + brackets' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }, + { arrayFormat: 'repeat' } + ), + 'a=b&c=d&c=e&f=g&f=h', + 'no encodeValuesOnly + repeat' + ); + + st.end(); + }); + + t.test('encodeValuesOnly - strictNullHandling', function (st) { + st.equal( + qs.stringify( + { a: { b: null } }, + { encodeValuesOnly: true, strictNullHandling: true } + ), + 'a[b]' + ); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.stringify({ a: 'b' }, { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('respects a charset of iso-8859-1', function (st) { + st.equal(qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }), '%E6=%E6'); + st.end(); + }); + + t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) { + st.equal(qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B'); + st.end(); + }); + + t.test('respects an explicit charset of utf-8 (the default)', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charset: 'utf-8' }), 'a=%C3%A6'); + st.end(); + }); + + t.test('`charsetSentinel` option', function (st) { + st.equal( + qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }), + 'utf8=%E2%9C%93&a=%C3%A6', + 'adds the right sentinel when instructed to and the charset is utf-8' + ); + + st.equal( + qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }), + 'utf8=%26%2310003%3B&a=%E6', + 'adds the right sentinel when instructed to and the charset is iso-8859-1' + ); + + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.stringify({}, options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('strictNullHandling works with custom filter', function (st) { + var filter = function (prefix, value) { + return value; + }; + + var options = { strictNullHandling: true, filter: filter }; + st.equal(qs.stringify({ key: null }, options), 'key'); + st.end(); + }); + + t.test('strictNullHandling works with null serializeDate', function (st) { + var serializeDate = function () { + return null; + }; + var options = { strictNullHandling: true, serializeDate: serializeDate }; + var date = new Date(); + st.equal(qs.stringify({ key: date }, options), 'key'); + st.end(); + }); + + t.test('allows for encoding keys and values differently', function (st) { + var encoder = function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return defaultEncoder(str, defaultEncoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultEncoder(str, defaultEncoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.stringify({ KeY: 'vAlUe' }, { encoder: encoder }), 'key=VALUE'); + st.end(); + }); + + t.test('objects inside arrays', function (st) { + var obj = { a: { b: { c: 'd', e: 'f' } } }; + var withArray = { a: { b: [{ c: 'd', e: 'f' }] } }; + + st.equal(qs.stringify(obj, { encode: false }), 'a[b][c]=d&a[b][e]=f', 'no array, no arrayFormat'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'brackets' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'indices' }), 'a[b][c]=d&a[b][e]=f', 'no array, indices'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'no array, repeat'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'comma' }), 'a[b][c]=d&a[b][e]=f', 'no array, comma'); + + st.equal(qs.stringify(withArray, { encode: false }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, no arrayFormat'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'brackets' }), 'a[b][][c]=d&a[b][][e]=f', 'array, bracket'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'indices' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, indices'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'array, repeat'); + st.equal( + qs.stringify(withArray, { encode: false, arrayFormat: 'comma' }), + '???', + 'array, comma', + { skip: 'TODO: figure out what this should do' } + ); + + st.end(); + }); + + t.test('stringifies sparse arrays', function (st) { + /* eslint no-sparse-arrays: 0 */ + st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1]=2&a[4]=1'); + st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=2&a[]=1'); + st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=2&a=1'); + + st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][b][2][c]=1'); + st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][b][][c]=1'); + st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[b][c]=1'); + + st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1'); + + st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c][1]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c][]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1'); + + st.end(); + }); + + t.test('encodes a very long string', function (st) { + var chars = []; + var expected = []; + for (var i = 0; i < 5e3; i++) { + chars.push(' ' + i); + + expected.push('%20' + i); + } + + var obj = { + foo: chars.join('') + }; + + st.equal( + qs.stringify(obj, { arrayFormat: 'bracket', charset: 'utf-8' }), + 'foo=' + expected.join('') + ); + + st.end(); + }); + + t.end(); +}); + +test('stringifies empty keys', function (t) { + emptyTestCases.forEach(function (testCase) { + t.test('stringifies an object with empty string key with ' + testCase.input, function (st) { + st.deepEqual( + qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'indices' }), + testCase.stringifyOutput.indices, + 'test case: ' + testCase.input + ', indices' + ); + st.deepEqual( + qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'brackets' }), + testCase.stringifyOutput.brackets, + 'test case: ' + testCase.input + ', brackets' + ); + st.deepEqual( + qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'repeat' }), + testCase.stringifyOutput.repeat, + 'test case: ' + testCase.input + ', repeat' + ); + + st.end(); + }); + }); + + t.test('edge case with object/arrays', function (st) { + st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false }), '[][0]=2&[][1]=3'); + st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false }), '[][0]=2&[][1]=3&[a]=2'); + st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3'); + st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3&[a]=2'); + + st.end(); + }); +}); diff --git a/node_modules/qs/test/utils.js b/node_modules/qs/test/utils.js new file mode 100644 index 0000000..aa84dfd --- /dev/null +++ b/node_modules/qs/test/utils.js @@ -0,0 +1,136 @@ +'use strict'; + +var test = require('tape'); +var inspect = require('object-inspect'); +var SaferBuffer = require('safer-buffer').Buffer; +var forEach = require('for-each'); +var utils = require('../lib/utils'); + +test('merge()', function (t) { + t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null'); + + t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array'); + + t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); + + var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); + t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array'); + + var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } }); + t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array'); + + var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' }); + t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array'); + + var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); + t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); + + var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar'); + t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true }); + + t.test( + 'avoids invoking array setters unnecessarily', + { skip: typeof Object.defineProperty !== 'function' }, + function (st) { + var setCount = 0; + var getCount = 0; + var observed = []; + Object.defineProperty(observed, 0, { + get: function () { + getCount += 1; + return { bar: 'baz' }; + }, + set: function () { setCount += 1; } + }); + utils.merge(observed, [null]); + st.equal(setCount, 0); + st.equal(getCount, 1); + observed[0] = observed[0]; // eslint-disable-line no-self-assign + st.equal(setCount, 1); + st.equal(getCount, 2); + st.end(); + } + ); + + t.end(); +}); + +test('assign()', function (t) { + var target = { a: 1, b: 2 }; + var source = { b: 3, c: 4 }; + var result = utils.assign(target, source); + + t.equal(result, target, 'returns the target'); + t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged'); + t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched'); + + t.end(); +}); + +test('combine()', function (t) { + t.test('both arrays', function (st) { + var a = [1]; + var b = [2]; + var combined = utils.combine(a, b); + + st.deepEqual(a, [1], 'a is not mutated'); + st.deepEqual(b, [2], 'b is not mutated'); + st.notEqual(a, combined, 'a !== combined'); + st.notEqual(b, combined, 'b !== combined'); + st.deepEqual(combined, [1, 2], 'combined is a + b'); + + st.end(); + }); + + t.test('one array, one non-array', function (st) { + var aN = 1; + var a = [aN]; + var bN = 2; + var b = [bN]; + + var combinedAnB = utils.combine(aN, b); + st.deepEqual(b, [bN], 'b is not mutated'); + st.notEqual(aN, combinedAnB, 'aN + b !== aN'); + st.notEqual(a, combinedAnB, 'aN + b !== a'); + st.notEqual(bN, combinedAnB, 'aN + b !== bN'); + st.notEqual(b, combinedAnB, 'aN + b !== b'); + st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array'); + + var combinedABn = utils.combine(a, bN); + st.deepEqual(a, [aN], 'a is not mutated'); + st.notEqual(aN, combinedABn, 'a + bN !== aN'); + st.notEqual(a, combinedABn, 'a + bN !== a'); + st.notEqual(bN, combinedABn, 'a + bN !== bN'); + st.notEqual(b, combinedABn, 'a + bN !== b'); + st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array'); + + st.end(); + }); + + t.test('neither is an array', function (st) { + var combined = utils.combine(1, 2); + st.notEqual(1, combined, '1 + 2 !== 1'); + st.notEqual(2, combined, '1 + 2 !== 2'); + st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array'); + + st.end(); + }); + + t.end(); +}); + +test('isBuffer()', function (t) { + forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) { + t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer'); + }); + + var fakeBuffer = { constructor: Buffer }; + t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer'); + + var saferBuffer = SaferBuffer.from('abc'); + t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer'); + + var buffer = Buffer.from && Buffer.alloc ? Buffer.from('abc') : new Buffer('abc'); + t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer'); + t.end(); +}); diff --git a/node_modules/range-parser/HISTORY.md b/node_modules/range-parser/HISTORY.md new file mode 100644 index 0000000..70a973d --- /dev/null +++ b/node_modules/range-parser/HISTORY.md @@ -0,0 +1,56 @@ +1.2.1 / 2019-05-10 +================== + + * Improve error when `str` is not a string + +1.2.0 / 2016-06-01 +================== + + * Add `combine` option to combine overlapping ranges + +1.1.0 / 2016-05-13 +================== + + * Fix incorrectly returning -1 when there is at least one valid range + * perf: remove internal function + +1.0.3 / 2015-10-29 +================== + + * perf: enable strict mode + +1.0.2 / 2014-09-08 +================== + + * Support Node.js 0.6 + +1.0.1 / 2014-09-07 +================== + + * Move repository to jshttp + +1.0.0 / 2013-12-11 +================== + + * Add repository to package.json + * Add MIT license + +0.0.4 / 2012-06-17 +================== + + * Change ret -1 for unsatisfiable and -2 when invalid + +0.0.3 / 2012-06-17 +================== + + * Fix last-byte-pos default to len - 1 + +0.0.2 / 2012-06-14 +================== + + * Add `.type` + +0.0.1 / 2012-06-11 +================== + + * Initial release diff --git a/node_modules/range-parser/LICENSE b/node_modules/range-parser/LICENSE new file mode 100644 index 0000000..3599954 --- /dev/null +++ b/node_modules/range-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +```js +var parseRange = require('range-parser') +``` + +### parseRange(size, header, options) + +Parse the given `header` string where `size` is the maximum size of the resource. +An array of ranges will be returned or negative numbers indicating an error parsing. + + * `-2` signals a malformed header string + * `-1` signals an unsatisfiable range + + + +```js +// parse header from request +var range = parseRange(size, req.headers.range) + +// the type of the range +if (range.type === 'bytes') { + // the ranges + range.forEach(function (r) { + // do something with r.start and r.end + }) +} +``` + +#### Options + +These properties are accepted in the options object. + +##### combine + +Specifies if overlapping & adjacent ranges should be combined, defaults to `false`. +When `true`, ranges will be combined and returned as if they were specified that +way in the header. + + + +```js +parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true }) +// => [ +// { start: 0, end: 10 }, +// { start: 50, end: 60 } +// ] +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/range-parser/master +[coveralls-url]: https://coveralls.io/r/jshttp/range-parser?branch=master +[node-image]: https://badgen.net/npm/node/range-parser +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/range-parser +[npm-url]: https://npmjs.org/package/range-parser +[npm-version-image]: https://badgen.net/npm/v/range-parser +[travis-image]: https://badgen.net/travis/jshttp/range-parser/master +[travis-url]: https://travis-ci.org/jshttp/range-parser diff --git a/node_modules/range-parser/index.js b/node_modules/range-parser/index.js new file mode 100644 index 0000000..b7dc5c0 --- /dev/null +++ b/node_modules/range-parser/index.js @@ -0,0 +1,162 @@ +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = rangeParser + +/** + * Parse "Range" header `str` relative to the given file `size`. + * + * @param {Number} size + * @param {String} str + * @param {Object} [options] + * @return {Array} + * @public + */ + +function rangeParser (size, str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string') + } + + var index = str.indexOf('=') + + if (index === -1) { + return -2 + } + + // split the range string + var arr = str.slice(index + 1).split(',') + var ranges = [] + + // add ranges type + ranges.type = str.slice(0, index) + + // parse all ranges + for (var i = 0; i < arr.length; i++) { + var range = arr[i].split('-') + var start = parseInt(range[0], 10) + var end = parseInt(range[1], 10) + + // -nnn + if (isNaN(start)) { + start = size - end + end = size - 1 + // nnn- + } else if (isNaN(end)) { + end = size - 1 + } + + // limit last-byte-pos to current length + if (end > size - 1) { + end = size - 1 + } + + // invalid or unsatisifiable + if (isNaN(start) || isNaN(end) || start > end || start < 0) { + continue + } + + // add range + ranges.push({ + start: start, + end: end + }) + } + + if (ranges.length < 1) { + // unsatisifiable + return -1 + } + + return options && options.combine + ? combineRanges(ranges) + : ranges +} + +/** + * Combine overlapping & adjacent ranges. + * @private + */ + +function combineRanges (ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart) + + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i] + var current = ordered[j] + + if (range.start > current.end + 1) { + // next range + ordered[++j] = range + } else if (range.end > current.end) { + // extend range + current.end = range.end + current.index = Math.min(current.index, range.index) + } + } + + // trim ordered array + ordered.length = j + 1 + + // generate combined range + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex) + + // copy ranges type + combined.type = ranges.type + + return combined +} + +/** + * Map function to add index value to ranges. + * @private + */ + +function mapWithIndex (range, index) { + return { + start: range.start, + end: range.end, + index: index + } +} + +/** + * Map function to remove index value from ranges. + * @private + */ + +function mapWithoutIndex (range) { + return { + start: range.start, + end: range.end + } +} + +/** + * Sort function to sort ranges by index. + * @private + */ + +function sortByRangeIndex (a, b) { + return a.index - b.index +} + +/** + * Sort function to sort ranges by start position. + * @private + */ + +function sortByRangeStart (a, b) { + return a.start - b.start +} diff --git a/node_modules/range-parser/package.json b/node_modules/range-parser/package.json new file mode 100644 index 0000000..abea6d8 --- /dev/null +++ b/node_modules/range-parser/package.json @@ -0,0 +1,44 @@ +{ + "name": "range-parser", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "description": "Range header field string parser", + "version": "1.2.1", + "contributors": [ + "Douglas Christopher Wilson ", + "James Wyatt Cready ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "keywords": [ + "range", + "parser", + "http" + ], + "repository": "jshttp/range-parser", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.1.1" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + } +} diff --git a/node_modules/raw-body/HISTORY.md b/node_modules/raw-body/HISTORY.md new file mode 100644 index 0000000..baf0e2d --- /dev/null +++ b/node_modules/raw-body/HISTORY.md @@ -0,0 +1,308 @@ +2.5.2 / 2023-02-21 +================== + + * Fix error message for non-stream argument + +2.5.1 / 2022-02-28 +================== + + * Fix error on early async hooks implementations + +2.5.0 / 2022-02-21 +================== + + * Prevent loss of async hooks context + * Prevent hanging when stream is not readable + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + +2.4.3 / 2022-02-14 +================== + + * deps: bytes@3.1.2 + +2.4.2 / 2021-11-16 +================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: setprototypeof@1.2.0 + - deps: toidentifier@1.0.1 + +2.4.1 / 2019-06-25 +================== + + * deps: http-errors@1.7.3 + - deps: inherits@2.0.4 + +2.4.0 / 2019-04-17 +================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + +2.3.3 / 2018-05-08 +================== + + * deps: http-errors@1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + +2.3.2 / 2017-09-09 +================== + + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + +2.3.1 / 2017-09-07 +================== + + * deps: bytes@3.0.0 + * deps: http-errors@1.6.2 + - deps: depd@1.1.1 + * perf: skip buffer decoding on overage chunk + +2.3.0 / 2017-08-04 +================== + + * Add TypeScript definitions + * Use `http-errors` for standard emitted errors + * deps: bytes@2.5.0 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + +2.2.0 / 2017-01-02 +================== + + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + +2.1.7 / 2016-06-19 +================== + + * deps: bytes@2.4.0 + * perf: remove double-cleanup on happy path + +2.1.6 / 2016-03-07 +================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + +2.1.5 / 2015-11-30 +================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + +2.1.4 / 2015-09-27 +================== + + * Fix masking critical errors from `iconv-lite` + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + +2.1.3 / 2015-09-12 +================== + + * Fix sync callback when attaching data listener causes sync read + - Node.js 0.10 compatibility issue + +2.1.2 / 2015-07-05 +================== + + * Fix error stack traces to skip `makeError` + * deps: iconv-lite@0.4.11 + - Add encoding CESU-8 + +2.1.1 / 2015-06-14 +================== + + * Use `unpipe` module for unpiping requests + +2.1.0 / 2015-05-28 +================== + + * deps: iconv-lite@0.4.10 + - Improved UTF-16 endianness detection + - Leading BOM is now removed when decoding + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + +2.0.2 / 2015-05-21 +================== + + * deps: bytes@2.1.0 + - Slight optimizations + +2.0.1 / 2015-05-10 +================== + + * Fix a false-positive when unpiping in Node.js 0.8 + +2.0.0 / 2015-05-08 +================== + + * Return a promise without callback instead of thunk + * deps: bytes@2.0.1 + - units no longer case sensitive when parsing + +1.3.4 / 2015-04-15 +================== + + * Fix hanging callback if request aborts during read + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + +1.3.3 / 2015-02-08 +================== + + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + +1.3.2 / 2015-01-20 +================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + +1.3.1 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + +1.3.0 / 2014-07-20 +================== + + * Fully unpipe the stream on error + - Fixes `Cannot switch to old mode now` error on Node.js 0.10+ + +1.2.3 / 2014-07-20 +================== + + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + +1.2.2 / 2014-06-19 +================== + + * Send invalid encoding error to callback + +1.2.1 / 2014-06-15 +================== + + * deps: iconv-lite@0.4.3 + - Added encodings UTF-16BE and UTF-16 with BOM + +1.2.0 / 2014-06-13 +================== + + * Passing string as `options` interpreted as encoding + * Support all encodings from `iconv-lite` + +1.1.7 / 2014-06-12 +================== + + * use `string_decoder` module from npm + +1.1.6 / 2014-05-27 +================== + + * check encoding for old streams1 + * support node.js < 0.10.6 + +1.1.5 / 2014-05-14 +================== + + * bump bytes + +1.1.4 / 2014-04-19 +================== + + * allow true as an option + * bump bytes + +1.1.3 / 2014-03-02 +================== + + * fix case when length=null + +1.1.2 / 2013-12-01 +================== + + * be less strict on state.encoding check + +1.1.1 / 2013-11-27 +================== + + * add engines + +1.1.0 / 2013-11-27 +================== + + * add err.statusCode and err.type + * allow for encoding option to be true + * pause the stream instead of dumping on error + * throw if the stream's encoding is set + +1.0.1 / 2013-11-19 +================== + + * dont support streams1, throw if dev set encoding + +1.0.0 / 2013-11-17 +================== + + * rename `expected` option to `length` + +0.2.0 / 2013-11-15 +================== + + * republish + +0.1.1 / 2013-11-15 +================== + + * use bytes + +0.1.0 / 2013-11-11 +================== + + * generator support + +0.0.3 / 2013-10-10 +================== + + * update repo + +0.0.2 / 2013-09-14 +================== + + * dump stream on bad headers + * listen to events after defining received and buffers + +0.0.1 / 2013-09-14 +================== + + * Initial release diff --git a/node_modules/raw-body/LICENSE b/node_modules/raw-body/LICENSE new file mode 100644 index 0000000..1029a7a --- /dev/null +++ b/node_modules/raw-body/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2013-2014 Jonathan Ong +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/raw-body/README.md b/node_modules/raw-body/README.md new file mode 100644 index 0000000..d9b36d6 --- /dev/null +++ b/node_modules/raw-body/README.md @@ -0,0 +1,223 @@ +# raw-body + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build status][github-actions-ci-image]][github-actions-ci-url] +[![Test coverage][coveralls-image]][coveralls-url] + +Gets the entire buffer of a stream either as a `Buffer` or a string. +Validates the stream's length against an expected length and maximum limit. +Ideal for parsing request bodies. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install raw-body +``` + +### TypeScript + +This module includes a [TypeScript](https://www.typescriptlang.org/) +declaration file to enable auto complete in compatible editors and type +information for TypeScript projects. This module depends on the Node.js +types, so install `@types/node`: + +```sh +$ npm install @types/node +``` + +## API + +```js +var getRawBody = require('raw-body') +``` + +### getRawBody(stream, [options], [callback]) + +**Returns a promise if no callback specified and global `Promise` exists.** + +Options: + +- `length` - The length of the stream. + If the contents of the stream do not add up to this length, + an `400` error code is returned. +- `limit` - The byte limit of the body. + This is the number of bytes or any string format supported by + [bytes](https://www.npmjs.com/package/bytes), + for example `1000`, `'500kb'` or `'3mb'`. + If the body ends up being larger than this limit, + a `413` error code is returned. +- `encoding` - The encoding to use to decode the body into a string. + By default, a `Buffer` instance will be returned when no encoding is specified. + Most likely, you want `utf-8`, so setting `encoding` to `true` will decode as `utf-8`. + You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme). + +You can also pass a string in place of options to just specify the encoding. + +If an error occurs, the stream will be paused, everything unpiped, +and you are responsible for correctly disposing the stream. +For HTTP requests, you may need to finish consuming the stream if +you want to keep the socket open for future requests. For streams +that use file descriptors, you should `stream.destroy()` or +`stream.close()` to prevent leaks. + +## Errors + +This module creates errors depending on the error condition during reading. +The error may be an error from the underlying Node.js implementation, but is +otherwise an error created by this module, which has the following attributes: + + * `limit` - the limit in bytes + * `length` and `expected` - the expected length of the stream + * `received` - the received bytes + * `encoding` - the invalid encoding + * `status` and `statusCode` - the corresponding status code for the error + * `type` - the error type + +### Types + +The errors from this module have a `type` property which allows for the programmatic +determination of the type of error returned. + +#### encoding.unsupported + +This error will occur when the `encoding` option is specified, but the value does +not map to an encoding supported by the [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme) +module. + +#### entity.too.large + +This error will occur when the `limit` option is specified, but the stream has +an entity that is larger. + +#### request.aborted + +This error will occur when the request stream is aborted by the client before +reading the body has finished. + +#### request.size.invalid + +This error will occur when the `length` option is specified, but the stream has +emitted more bytes. + +#### stream.encoding.set + +This error will occur when the given stream has an encoding set on it, making it +a decoded stream. The stream should not have an encoding set and is expected to +emit `Buffer` objects. + +#### stream.not.readable + +This error will occur when the given stream is not readable. + +## Examples + +### Simple Express example + +```js +var contentType = require('content-type') +var express = require('express') +var getRawBody = require('raw-body') + +var app = express() + +app.use(function (req, res, next) { + getRawBody(req, { + length: req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(req).parameters.charset + }, function (err, string) { + if (err) return next(err) + req.text = string + next() + }) +}) + +// now access req.text +``` + +### Simple Koa example + +```js +var contentType = require('content-type') +var getRawBody = require('raw-body') +var koa = require('koa') + +var app = koa() + +app.use(function * (next) { + this.text = yield getRawBody(this.req, { + length: this.req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(this.req).parameters.charset + }) + yield next +}) + +// now access this.text +``` + +### Using as a promise + +To use this library as a promise, simply omit the `callback` and a promise is +returned, provided that a global `Promise` is defined. + +```js +var getRawBody = require('raw-body') +var http = require('http') + +var server = http.createServer(function (req, res) { + getRawBody(req) + .then(function (buf) { + res.statusCode = 200 + res.end(buf.length + ' bytes submitted') + }) + .catch(function (err) { + res.statusCode = 500 + res.end(err.message) + }) +}) + +server.listen(3000) +``` + +### Using with TypeScript + +```ts +import * as getRawBody from 'raw-body'; +import * as http from 'http'; + +const server = http.createServer((req, res) => { + getRawBody(req) + .then((buf) => { + res.statusCode = 200; + res.end(buf.length + ' bytes submitted'); + }) + .catch((err) => { + res.statusCode = err.statusCode; + res.end(err.message); + }); +}); + +server.listen(3000); +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/raw-body.svg +[npm-url]: https://npmjs.org/package/raw-body +[node-version-image]: https://img.shields.io/node/v/raw-body.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master +[downloads-image]: https://img.shields.io/npm/dm/raw-body.svg +[downloads-url]: https://npmjs.org/package/raw-body +[github-actions-ci-image]: https://img.shields.io/github/actions/workflow/status/stream-utils/raw-body/ci.yml?branch=master&label=ci +[github-actions-ci-url]: https://github.com/jshttp/stream-utils/raw-body?query=workflow%3Aci diff --git a/node_modules/raw-body/SECURITY.md b/node_modules/raw-body/SECURITY.md new file mode 100644 index 0000000..2421efc --- /dev/null +++ b/node_modules/raw-body/SECURITY.md @@ -0,0 +1,24 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `raw-body` team and community take all security bugs seriously. Thank you +for improving the security of Express. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owners of `raw-body`. This information +can be found in the npm registry using the command `npm owner ls raw-body`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/stream-utils/raw-body/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/raw-body/index.d.ts b/node_modules/raw-body/index.d.ts new file mode 100644 index 0000000..dcbbebd --- /dev/null +++ b/node_modules/raw-body/index.d.ts @@ -0,0 +1,87 @@ +import { Readable } from 'stream'; + +declare namespace getRawBody { + export type Encoding = string | true; + + export interface Options { + /** + * The expected length of the stream. + */ + length?: number | string | null; + /** + * The byte limit of the body. This is the number of bytes or any string + * format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`. + */ + limit?: number | string | null; + /** + * The encoding to use to decode the body into a string. By default, a + * `Buffer` instance will be returned when no encoding is specified. Most + * likely, you want `utf-8`, so setting encoding to `true` will decode as + * `utf-8`. You can use any type of encoding supported by `iconv-lite`. + */ + encoding?: Encoding | null; + } + + export interface RawBodyError extends Error { + /** + * The limit in bytes. + */ + limit?: number; + /** + * The expected length of the stream. + */ + length?: number; + expected?: number; + /** + * The received bytes. + */ + received?: number; + /** + * The encoding. + */ + encoding?: string; + /** + * The corresponding status code for the error. + */ + status: number; + statusCode: number; + /** + * The error type. + */ + type: string; + } +} + +/** + * Gets the entire buffer of a stream either as a `Buffer` or a string. + * Validates the stream's length against an expected length and maximum + * limit. Ideal for parsing request bodies. + */ +declare function getRawBody( + stream: Readable, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding, + callback: (err: getRawBody.RawBodyError, body: string) => void +): void; + +declare function getRawBody( + stream: Readable, + options: getRawBody.Options, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding +): Promise; + +declare function getRawBody( + stream: Readable, + options?: getRawBody.Options +): Promise; + +export = getRawBody; diff --git a/node_modules/raw-body/index.js b/node_modules/raw-body/index.js new file mode 100644 index 0000000..9cdcd12 --- /dev/null +++ b/node_modules/raw-body/index.js @@ -0,0 +1,336 @@ +/*! + * raw-body + * Copyright(c) 2013-2014 Jonathan Ong + * Copyright(c) 2014-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var asyncHooks = tryRequireAsyncHooks() +var bytes = require('bytes') +var createError = require('http-errors') +var iconv = require('iconv-lite') +var unpipe = require('unpipe') + +/** + * Module exports. + * @public + */ + +module.exports = getRawBody + +/** + * Module variables. + * @private + */ + +var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: / + +/** + * Get the decoder for a given encoding. + * + * @param {string} encoding + * @private + */ + +function getDecoder (encoding) { + if (!encoding) return null + + try { + return iconv.getDecoder(encoding) + } catch (e) { + // error getting decoder + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e + + // the encoding was not found + throw createError(415, 'specified encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } +} + +/** + * Get the raw body of a stream (typically HTTP). + * + * @param {object} stream + * @param {object|string|function} [options] + * @param {function} [callback] + * @public + */ + +function getRawBody (stream, options, callback) { + var done = callback + var opts = options || {} + + // light validation + if (stream === undefined) { + throw new TypeError('argument stream is required') + } else if (typeof stream !== 'object' || stream === null || typeof stream.on !== 'function') { + throw new TypeError('argument stream must be a stream') + } + + if (options === true || typeof options === 'string') { + // short cut for encoding + opts = { + encoding: options + } + } + + if (typeof options === 'function') { + done = options + opts = {} + } + + // validate callback is a function, if provided + if (done !== undefined && typeof done !== 'function') { + throw new TypeError('argument callback must be a function') + } + + // require the callback without promises + if (!done && !global.Promise) { + throw new TypeError('argument callback is required') + } + + // get encoding + var encoding = opts.encoding !== true + ? opts.encoding + : 'utf-8' + + // convert the limit to an integer + var limit = bytes.parse(opts.limit) + + // convert the expected length to an integer + var length = opts.length != null && !isNaN(opts.length) + ? parseInt(opts.length, 10) + : null + + if (done) { + // classic callback style + return readStream(stream, encoding, length, limit, wrap(done)) + } + + return new Promise(function executor (resolve, reject) { + readStream(stream, encoding, length, limit, function onRead (err, buf) { + if (err) return reject(err) + resolve(buf) + }) + }) +} + +/** + * Halt a stream. + * + * @param {Object} stream + * @private + */ + +function halt (stream) { + // unpipe everything from the stream + unpipe(stream) + + // pause stream + if (typeof stream.pause === 'function') { + stream.pause() + } +} + +/** + * Read the data from the stream. + * + * @param {object} stream + * @param {string} encoding + * @param {number} length + * @param {number} limit + * @param {function} callback + * @public + */ + +function readStream (stream, encoding, length, limit, callback) { + var complete = false + var sync = true + + // check the length and limit options. + // note: we intentionally leave the stream paused, + // so users should handle the stream themselves. + if (limit !== null && length !== null && length > limit) { + return done(createError(413, 'request entity too large', { + expected: length, + length: length, + limit: limit, + type: 'entity.too.large' + })) + } + + // streams1: assert request encoding is buffer. + // streams2+: assert the stream encoding is buffer. + // stream._decoder: streams1 + // state.encoding: streams2 + // state.decoder: streams2, specifically < 0.10.6 + var state = stream._readableState + if (stream._decoder || (state && (state.encoding || state.decoder))) { + // developer error + return done(createError(500, 'stream encoding should not be set', { + type: 'stream.encoding.set' + })) + } + + if (typeof stream.readable !== 'undefined' && !stream.readable) { + return done(createError(500, 'stream is not readable', { + type: 'stream.not.readable' + })) + } + + var received = 0 + var decoder + + try { + decoder = getDecoder(encoding) + } catch (err) { + return done(err) + } + + var buffer = decoder + ? '' + : [] + + // attach listeners + stream.on('aborted', onAborted) + stream.on('close', cleanup) + stream.on('data', onData) + stream.on('end', onEnd) + stream.on('error', onEnd) + + // mark sync section complete + sync = false + + function done () { + var args = new Array(arguments.length) + + // copy arguments + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + // mark complete + complete = true + + if (sync) { + process.nextTick(invokeCallback) + } else { + invokeCallback() + } + + function invokeCallback () { + cleanup() + + if (args[0]) { + // halt the stream on error + halt(stream) + } + + callback.apply(null, args) + } + } + + function onAborted () { + if (complete) return + + done(createError(400, 'request aborted', { + code: 'ECONNABORTED', + expected: length, + length: length, + received: received, + type: 'request.aborted' + })) + } + + function onData (chunk) { + if (complete) return + + received += chunk.length + + if (limit !== null && received > limit) { + done(createError(413, 'request entity too large', { + limit: limit, + received: received, + type: 'entity.too.large' + })) + } else if (decoder) { + buffer += decoder.write(chunk) + } else { + buffer.push(chunk) + } + } + + function onEnd (err) { + if (complete) return + if (err) return done(err) + + if (length !== null && received !== length) { + done(createError(400, 'request size did not match content length', { + expected: length, + length: length, + received: received, + type: 'request.size.invalid' + })) + } else { + var string = decoder + ? buffer + (decoder.end() || '') + : Buffer.concat(buffer) + done(null, string) + } + } + + function cleanup () { + buffer = null + + stream.removeListener('aborted', onAborted) + stream.removeListener('data', onData) + stream.removeListener('end', onEnd) + stream.removeListener('error', onEnd) + stream.removeListener('close', cleanup) + } +} + +/** + * Try to require async_hooks + * @private + */ + +function tryRequireAsyncHooks () { + try { + return require('async_hooks') + } catch (e) { + return {} + } +} + +/** + * Wrap function with async resource, if possible. + * AsyncResource.bind static method backported. + * @private + */ + +function wrap (fn) { + var res + + // create anonymous resource + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn') + } + + // incompatible node.js + if (!res || !res.runInAsyncScope) { + return fn + } + + // return bound function + return res.runInAsyncScope.bind(res, fn, null) +} diff --git a/node_modules/raw-body/package.json b/node_modules/raw-body/package.json new file mode 100644 index 0000000..aabb1c3 --- /dev/null +++ b/node_modules/raw-body/package.json @@ -0,0 +1,49 @@ +{ + "name": "raw-body", + "description": "Get and validate the raw body of a readable stream.", + "version": "2.5.2", + "author": "Jonathan Ong (http://jongleberry.com)", + "contributors": [ + "Douglas Christopher Wilson ", + "Raynos " + ], + "license": "MIT", + "repository": "stream-utils/raw-body", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "devDependencies": { + "bluebird": "3.7.2", + "eslint": "8.34.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "SECURITY.md", + "index.d.ts", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/readdirp/LICENSE b/node_modules/readdirp/LICENSE new file mode 100644 index 0000000..037cbb4 --- /dev/null +++ b/node_modules/readdirp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/readdirp/README.md b/node_modules/readdirp/README.md new file mode 100644 index 0000000..465593c --- /dev/null +++ b/node_modules/readdirp/README.md @@ -0,0 +1,122 @@ +# readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp) + +Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**. + + +```sh +npm install readdirp +``` + +```javascript +const readdirp = require('readdirp'); + +// Use streams to achieve small RAM & CPU footprint. +// 1) Streams example with for-await. +for await (const entry of readdirp('.')) { + const {path} = entry; + console.log(`${JSON.stringify({path})}`); +} + +// 2) Streams example, non for-await. +// Print out all JS files along with their size within the current folder & subfolders. +readdirp('.', {fileFilter: '*.js', alwaysStat: true}) + .on('data', (entry) => { + const {path, stats: {size}} = entry; + console.log(`${JSON.stringify({path, size})}`); + }) + // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted + .on('warn', error => console.error('non-fatal error', error)) + .on('error', error => console.error('fatal error', error)) + .on('end', () => console.log('done')); + +// 3) Promise example. More RAM and CPU than streams / for-await. +const files = await readdirp.promise('.'); +console.log(files.map(file => file.path)); + +// Other options. +readdirp('test', { + fileFilter: '*.js', + directoryFilter: ['!.git', '!*modules'] + // directoryFilter: (di) => di.basename.length === 9 + type: 'files_directories', + depth: 1 +}); +``` + +For more examples, check out `examples` directory. + +## API + +`const stream = readdirp(root[, options])` — **Stream API** + +- Reads given root recursively and returns a `stream` of [entry infos](#entryinfo) +- Optionally can be used like `for await (const entry of stream)` with node.js 10+ (`asyncIterator`). +- `on('data', (entry) => {})` [entry info](#entryinfo) for every file / dir. +- `on('warn', (error) => {})` non-fatal `Error` that prevents a file / dir from being processed. Example: inaccessible to the user. +- `on('error', (error) => {})` fatal `Error` which also ends the stream. Example: illegal options where passed. +- `on('end')` — we are done. Called when all entries were found and no more will be emitted. +- `on('close')` — stream is destroyed via `stream.destroy()`. + Could be useful if you want to manually abort even on a non fatal error. + At that point the stream is no longer `readable` and no more entries, warning or errors are emitted +- To learn more about streams, consult the very detailed [nodejs streams documentation](https://nodejs.org/api/stream.html) + or the [stream-handbook](https://github.com/substack/stream-handbook) + +`const entries = await readdirp.promise(root[, options])` — **Promise API**. Returns a list of [entry infos](#entryinfo). + +First argument is awalys `root`, path in which to start reading and recursing into subdirectories. + +### options + +- `fileFilter: ["*.js"]`: filter to include or exclude files. A `Function`, Glob string or Array of glob strings. + - **Function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry + - **Glob string**: a string (e.g., `*.js`) which is matched using [picomatch](https://github.com/micromatch/picomatch), so go there for more + information. Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files. + - **Array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown. + `['*.json', '*.js']` includes all JavaScript and Json files. + `['!.git', '!node_modules']` includes all directories except the '.git' and 'node_modules'. + - Directories that do not pass a filter will not be recursed into. +- `directoryFilter: ['!.git']`: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into. +- `depth: 5`: depth at which to stop recursing even if more subdirectories are found +- `type: 'files'`: determines if data events on the stream should be emitted for `'files'` (default), `'directories'`, `'files_directories'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes. +- `alwaysStat: false`: always return `stats` property for every file. Default is `false`, readdirp will return `Dirent` entries. Setting it to `true` can double readdir execution time - use it only when you need file `size`, `mtime` etc. Cannot be enabled on node <10.10.0. +- `lstat: false`: include symlink entries in the stream along with files. When `true`, `fs.lstat` would be used instead of `fs.stat` + +### `EntryInfo` + +Has the following properties: + +- `path: 'assets/javascripts/react.js'`: path to the file/directory (relative to given root) +- `fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'`: full path to the file/directory found +- `basename: 'react.js'`: name of the file/directory +- `dirent: fs.Dirent`: built-in [dir entry object](https://nodejs.org/api/fs.html#fs_class_fs_dirent) - only with `alwaysStat: false` +- `stats: fs.Stats`: built in [stat object](https://nodejs.org/api/fs.html#fs_class_fs_stats) - only with `alwaysStat: true` + +## Changelog + +- 3.5 (Oct 13, 2020) disallows recursive directory-based symlinks. + Before, it could have entered infinite loop. +- 3.4 (Mar 19, 2020) adds support for directory-based symlinks. +- 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with `highWaterMark` option. Fixes race conditions related to `for-await` looping. +- 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic. +- 3.1 (Jul 7, 2019) brings `bigint` support to `stat` output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions". +- 3.0 brings huge performance improvements and stream backpressure support. +- Upgrading 2.x to 3.x: + - Signature changed from `readdirp(options)` to `readdirp(root, options)` + - Replaced callback API with promise API. + - Renamed `entryType` option to `type` + - Renamed `entryType: 'both'` to `'files_directories'` + - `EntryInfo` + - Renamed `stat` to `stats` + - Emitted only when `alwaysStat: true` + - `dirent` is emitted instead of `stats` by default with `alwaysStat: false` + - Renamed `name` to `basename` + - Removed `parentDir` and `fullParentDir` properties +- Supported node.js versions: + - 3.x: node 8+ + - 2.x: node 0.6+ + +## License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller () + +MIT License, see [LICENSE](LICENSE) file. diff --git a/node_modules/readdirp/index.d.ts b/node_modules/readdirp/index.d.ts new file mode 100644 index 0000000..cbbd76c --- /dev/null +++ b/node_modules/readdirp/index.d.ts @@ -0,0 +1,43 @@ +// TypeScript Version: 3.2 + +/// + +import * as fs from 'fs'; +import { Readable } from 'stream'; + +declare namespace readdir { + interface EntryInfo { + path: string; + fullPath: string; + basename: string; + stats?: fs.Stats; + dirent?: fs.Dirent; + } + + interface ReaddirpOptions { + root?: string; + fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); + directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); + type?: 'files' | 'directories' | 'files_directories' | 'all'; + lstat?: boolean; + depth?: number; + alwaysStat?: boolean; + } + + interface ReaddirpStream extends Readable, AsyncIterable { + read(): EntryInfo; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + function promise( + root: string, + options?: ReaddirpOptions + ): Promise; +} + +declare function readdir( + root: string, + options?: readdir.ReaddirpOptions +): readdir.ReaddirpStream; + +export = readdir; diff --git a/node_modules/readdirp/index.js b/node_modules/readdirp/index.js new file mode 100644 index 0000000..cf739b2 --- /dev/null +++ b/node_modules/readdirp/index.js @@ -0,0 +1,287 @@ +'use strict'; + +const fs = require('fs'); +const { Readable } = require('stream'); +const sysPath = require('path'); +const { promisify } = require('util'); +const picomatch = require('picomatch'); + +const readdir = promisify(fs.readdir); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ + +const BANG = '!'; +const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; + +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10)); +const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5)); + +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; + + if (typeof filter === 'string') { + const glob = picomatch(filter.trim()); + return entry => glob(entry.basename); + } + + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG) { + negative.push(picomatch(trimmed.slice(1))); + } else { + positive.push(picomatch(trimmed)); + } + } + + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); + } + return entry => positive.some(f => f(entry.basename)); + } +}; + +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } + + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; + + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); + + const statMethod = opts.lstat ? lstat : stat; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (wantBigintFsStats) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; + } + + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath.resolve(root); + this._isDirent = ('Dirent' in fs) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } + + async _read(batch) { + if (this.reading) return; + this.reading = true; + + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; + + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; + + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } + + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; + } + } + + async _exploreDir(path, depth) { + let files; + try { + files = await readdir(path, this._rdOptions); + } catch (error) { + this._onError(error); + } + return { files, depth, path }; + } + + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath.resolve(sysPath.join(path, basename)); + entry = { path: sysPath.relative(this._root, fullPath), fullPath, basename }; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; + } + + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); + } + } + + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; + } + if (stats.isFile()) { + return 'file'; + } + if (stats.isDirectory()) { + return 'directory'; + } + if (stats && stats.isSymbolicLink()) { + const full = entry.fullPath; + try { + const entryRealPath = await realpath(full); + const entryRealPathStats = await lstat(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + const len = entryRealPath.length; + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) { + const recursiveError = new Error( + `Circular symlink detected: "${full}" points to "${entryRealPath}"` + ); + recursiveError.code = RECURSIVE_ERROR_CODE; + return this._onError(recursiveError); + } + return 'directory'; + } + } catch (error) { + this._onError(error); + } + } + } + + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; + + return stats && this._wantsEverything && !stats.isDirectory(); + } +} + +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); + } + + options.root = root; + return new ReaddirpStream(options); +}; + +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; + +readdirp.promise = readdirpPromise; +readdirp.ReaddirpStream = ReaddirpStream; +readdirp.default = readdirp; + +module.exports = readdirp; diff --git a/node_modules/readdirp/package.json b/node_modules/readdirp/package.json new file mode 100644 index 0000000..dba5388 --- /dev/null +++ b/node_modules/readdirp/package.json @@ -0,0 +1,122 @@ +{ + "name": "readdirp", + "description": "Recursive version of fs.readdir with streaming API.", + "version": "3.6.0", + "homepage": "https://github.com/paulmillr/readdirp", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/paulmillr/readdirp/issues" + }, + "author": "Thorsten Lorenz (thlorenz.com)", + "contributors": [ + "Thorsten Lorenz (thlorenz.com)", + "Paul Miller (https://paulmillr.com)" + ], + "main": "index.js", + "engines": { + "node": ">=8.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "recursive", + "fs", + "stream", + "streams", + "readdir", + "filesystem", + "find", + "filter" + ], + "scripts": { + "dtslint": "dtslint", + "nyc": "nyc", + "mocha": "mocha --exit", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "test": "npm run lint && nyc npm run mocha" + }, + "dependencies": { + "picomatch": "^2.2.1" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.2", + "chai-subset": "^1.6", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "rimraf": "^3.0.0", + "typescript": "^4.0.3" + }, + "nyc": { + "reporter": [ + "html", + "text" + ] + }, + "eslintConfig": { + "root": true, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "script" + }, + "env": { + "node": true, + "es6": true + }, + "rules": { + "array-callback-return": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-else-return": [ + "error", + { + "allowElseIf": false + } + ], + "no-lonely-if": "error", + "no-var": "error", + "object-shorthand": "error", + "prefer-arrow-callback": [ + "error", + { + "allowNamedFunctions": true + } + ], + "prefer-const": [ + "error", + { + "ignoreReadBeforeAssign": true + } + ], + "prefer-destructuring": [ + "error", + { + "object": true, + "array": false + } + ], + "prefer-spread": "error", + "prefer-template": "error", + "radix": "error", + "semi": "error", + "strict": "error", + "quotes": [ + "error", + "single" + ] + } + } +} diff --git a/node_modules/safe-buffer/LICENSE b/node_modules/safe-buffer/LICENSE new file mode 100644 index 0000000..0c068ce --- /dev/null +++ b/node_modules/safe-buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/safe-buffer/README.md b/node_modules/safe-buffer/README.md new file mode 100644 index 0000000..e9a81af --- /dev/null +++ b/node_modules/safe-buffer/README.md @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a tést'); +console.log(buf1.toString()); + // prints: this is a tést +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a tést +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git a/node_modules/safe-buffer/index.d.ts b/node_modules/safe-buffer/index.d.ts new file mode 100644 index 0000000..e9fed80 --- /dev/null +++ b/node_modules/safe-buffer/index.d.ts @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git a/node_modules/safe-buffer/index.js b/node_modules/safe-buffer/index.js new file mode 100644 index 0000000..f8d3ec9 --- /dev/null +++ b/node_modules/safe-buffer/index.js @@ -0,0 +1,65 @@ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.prototype = Object.create(Buffer.prototype) + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git a/node_modules/safe-buffer/package.json b/node_modules/safe-buffer/package.json new file mode 100644 index 0000000..f2869e2 --- /dev/null +++ b/node_modules/safe-buffer/package.json @@ -0,0 +1,51 @@ +{ + "name": "safe-buffer", + "description": "Safer Node.js Buffer API", + "version": "5.2.1", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "devDependencies": { + "standard": "*", + "tape": "^5.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] +} diff --git a/node_modules/safer-buffer/LICENSE b/node_modules/safer-buffer/LICENSE new file mode 100644 index 0000000..4fe9e6f --- /dev/null +++ b/node_modules/safer-buffer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Nikita Skovoroda + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/safer-buffer/Porting-Buffer.md b/node_modules/safer-buffer/Porting-Buffer.md new file mode 100644 index 0000000..68d86ba --- /dev/null +++ b/node_modules/safer-buffer/Porting-Buffer.md @@ -0,0 +1,268 @@ +# Porting to the Buffer.from/Buffer.alloc API + + +## Overview + +- [Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.](#variant-1) (*recommended*) +- [Variant 2: Use a polyfill](#variant-2) +- [Variant 3: manual detection, with safeguards](#variant-3) + +### Finding problematic bits of code using grep + +Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`. + +It will find all the potentially unsafe places in your own code (with some considerably unlikely +exceptions). + +### Finding problematic bits of code using Node.js 8 + +If you’re using Node.js ≥ 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code: + +- `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js. +- `--trace-deprecation` does the same thing, but only for deprecation warnings. +- `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8. + +You can set these flags using an environment variable: + +```console +$ export NODE_OPTIONS='--trace-warnings --pending-deprecation' +$ cat example.js +'use strict'; +const foo = new Buffer('foo'); +$ node example.js +(node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead. + at showFlaggedDeprecation (buffer.js:127:13) + at new Buffer (buffer.js:148:3) + at Object. (/path/to/example.js:2:13) + [... more stack trace lines ...] +``` + +### Finding problematic bits of code using linters + +Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets. + +There is a drawback, though, that it doesn't always +[work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is +overriden e.g. with a polyfill, so recommended is a combination of this and some other method +described above. + + +## Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x. + +This is the recommended solution nowadays that would imply only minimal overhead. + +The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (→ [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible. + +What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way: + +- For `new Buffer(number)`, replace it with `Buffer.alloc(number)`. +- For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`). +- For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`. + +Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than +`new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended to avoid accidential unsafe Buffer API usage. + +There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005) +for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`. +Note that it currently only works with cases where the arguments are literals or where the +constructor is invoked with two arguments. + +_If you currently support those older Node.js versions and dropping them would be a semver-major change +for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2) +or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive +the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and +your users will not observe a runtime deprecation warning when running your code on Node.js 10._ + + +## Variant 2: Use a polyfill + +Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older +Node.js versions. + +You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill +`const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api. + +Make sure that you do not use old `new Buffer` API — in any files where the line above is added, +using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though. + +Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or +[buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) — +those are great, the only downsides being 4 deps in the tree and slightly more code changes to +migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only +`Buffer.from` polyfilled — `buffer-from` alone which comes with no extra dependencies. + +_Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) — it also +provides a polyfill, but takes a different approach which has +[it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you +to also use the older `new Buffer()` API in your code, though — but that's arguably a benefit, as +it is problematic, can cause issues in your code, and will start emitting runtime deprecation +warnings starting with Node.js 10._ + +Note that in either case, it is important that you also remove all calls to the old Buffer +API manually — just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides +a polyfill for the new API. I have seen people doing that mistake. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended. + +_Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._ + + +## Variant 3 — manual detection, with safeguards + +This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own +wrapper around them. + +### Buffer(0) + +This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which +returns the same result all the way down to Node.js 0.8.x. + +### Buffer(notNumber) + +Before: + +```js +var buf = new Buffer(notNumber, encoding); +``` + +After: + +```js +var buf; +if (Buffer.from && Buffer.from !== Uint8Array.from) { + buf = Buffer.from(notNumber, encoding); +} else { + if (typeof notNumber === 'number') + throw new Error('The "size" argument must be of type number.'); + buf = new Buffer(notNumber, encoding); +} +``` + +`encoding` is optional. + +Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not +hard-coded) and _is not caused by the deprecation of Buffer constructor_ — it's exactly _why_ the +Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous +security issues — situations when unsanitized user input could end up in the `Buffer(arg)` create +problems ranging from DoS to leaking sensitive information to the attacker from the process memory. + +When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can +be omitted. + +Also note that using TypeScript does not fix this problem for you — when libs written in +`TypeScript` are used from JS, or when user input ends up there — it behaves exactly as pure JS, as +all type checks are translation-time only and are not present in the actual JS code which TS +compiles to. + +### Buffer(number) + +For Node.js 0.10.x (and below) support: + +```js +var buf; +if (Buffer.alloc) { + buf = Buffer.alloc(number); +} else { + buf = new Buffer(number); + buf.fill(0); +} +``` + +Otherwise (Node.js ≥ 0.12.x): + +```js +const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0); +``` + +## Regarding Buffer.allocUnsafe + +Be extra cautious when using `Buffer.allocUnsafe`: + * Don't use it if you don't have a good reason to + * e.g. you probably won't ever see a performance difference for small buffers, in fact, those + might be even faster with `Buffer.alloc()`, + * if your code is not in the hot code path — you also probably won't notice a difference, + * keep in mind that zero-filling minimizes the potential risks. + * If you use it, make sure that you never return the buffer in a partially-filled state, + * if you are writing to it sequentially — always truncate it to the actuall written length + +Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues, +ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs) +leaking to the remote attacker. + +_Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js +version (and lacking type checks also adds DoS to the list of potential problems)._ + + +## FAQ + + +### What is wrong with the `Buffer` constructor? + +The `Buffer` constructor could be used to create a buffer in many different ways: + +- `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained + *arbitrary memory* for performance reasons, which could include anything ranging from + program source code to passwords and encryption keys. +- `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of + the string `'abc'`. A second argument could specify another encoding: For example, + `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original + sequence of bytes that it represents. +- There are several other combinations of arguments. + +This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell +what exactly the contents of the generated buffer are* without knowing the type of `foo`. + +Sometimes, the value of `foo` comes from an external source. For example, this function +could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form: + +``` +function stringToBase64(req, res) { + // The request body should have the format of `{ string: 'foobar' }` + const rawBytes = new Buffer(req.body.string) + const encoded = rawBytes.toString('base64') + res.end({ encoded: encoded }) +} +``` + +Note that this code does *not* validate the type of `req.body.string`: + +- `req.body.string` is expected to be a string. If this is the case, all goes well. +- `req.body.string` is controlled by the client that sends the request. +- If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes: + - Before Node.js 8, the content would be uninitialized + - After Node.js 8, the content would be `50` bytes with the value `0` + +Because of the missing type check, an attacker could intentionally send a number +as part of the request. Using this, they can either: + +- Read uninitialized memory. This **will** leak passwords, encryption keys and other + kinds of sensitive information. (Information leak) +- Force the program to allocate a large amount of memory. For example, when specifying + `500000000` as the input value, each request will allocate 500MB of memory. + This can be used to either exhaust the memory available of a program completely + and make it crash, or slow it down significantly. (Denial of Service) + +Both of these scenarios are considered serious security issues in a real-world +web server context. + +when using `Buffer.from(req.body.string)` instead, passing a number will always +throw an exception instead, giving a controlled behaviour that can always be +handled by the program. + + +### The `Buffer()` constructor has been deprecated for a while. Is this really an issue? + +Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still +widely used. This includes new code, and overall usage of such code has actually been +*increasing*. diff --git a/node_modules/safer-buffer/Readme.md b/node_modules/safer-buffer/Readme.md new file mode 100644 index 0000000..14b0822 --- /dev/null +++ b/node_modules/safer-buffer/Readme.md @@ -0,0 +1,156 @@ +# safer-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![javascript style guide][standard-image]][standard-url] [![Security Responsible Disclosure][secuirty-image]][secuirty-url] + +[travis-image]: https://travis-ci.org/ChALkeR/safer-buffer.svg?branch=master +[travis-url]: https://travis-ci.org/ChALkeR/safer-buffer +[npm-image]: https://img.shields.io/npm/v/safer-buffer.svg +[npm-url]: https://npmjs.org/package/safer-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com +[secuirty-image]: https://img.shields.io/badge/Security-Responsible%20Disclosure-green.svg +[secuirty-url]: https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md + +Modern Buffer API polyfill without footguns, working on Node.js from 0.8 to current. + +## How to use? + +First, port all `Buffer()` and `new Buffer()` calls to `Buffer.alloc()` and `Buffer.from()` API. + +Then, to achieve compatibility with outdated Node.js versions (`<4.5.0` and 5.x `<5.9.0`), use +`const Buffer = require('safer-buffer').Buffer` in all files where you make calls to the new +Buffer API. _Use `var` instead of `const` if you need that for your Node.js version range support._ + +Also, see the +[porting Buffer](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) guide. + +## Do I need it? + +Hopefully, not — dropping support for outdated Node.js versions should be fine nowdays, and that +is the recommended path forward. You _do_ need to port to the `Buffer.alloc()` and `Buffer.from()` +though. + +See the [porting guide](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) +for a better description. + +## Why not [safe-buffer](https://npmjs.com/safe-buffer)? + +_In short: while `safe-buffer` serves as a polyfill for the new API, it allows old API usage and +itself contains footguns._ + +`safe-buffer` could be used safely to get the new API while still keeping support for older +Node.js versions (like this module), but while analyzing ecosystem usage of the old Buffer API +I found out that `safe-buffer` is itself causing problems in some cases. + +For example, consider the following snippet: + +```console +$ cat example.unsafe.js +console.log(Buffer(20)) +$ ./node-v6.13.0-linux-x64/bin/node example.unsafe.js + +$ standard example.unsafe.js +standard: Use JavaScript Standard Style (https://standardjs.com) + /home/chalker/repo/safer-buffer/example.unsafe.js:2:13: 'Buffer()' was deprecated since v6. Use 'Buffer.alloc()' or 'Buffer.from()' (use 'https://www.npmjs.com/package/safe-buffer' for '<4.5.0') instead. +``` + +This is allocates and writes to console an uninitialized chunk of memory. +[standard](https://www.npmjs.com/package/standard) linter (among others) catch that and warn people +to avoid using unsafe API. + +Let's now throw in `safe-buffer`! + +```console +$ cat example.safe-buffer.js +const Buffer = require('safe-buffer').Buffer +console.log(Buffer(20)) +$ standard example.safe-buffer.js +$ ./node-v6.13.0-linux-x64/bin/node example.safe-buffer.js + +``` + +See the problem? Adding in `safe-buffer` _magically removes the lint warning_, but the behavior +remains identiсal to what we had before, and when launched on Node.js 6.x LTS — this dumps out +chunks of uninitialized memory. +_And this code will still emit runtime warnings on Node.js 10.x and above._ + +That was done by design. I first considered changing `safe-buffer`, prohibiting old API usage or +emitting warnings on it, but that significantly diverges from `safe-buffer` design. After some +discussion, it was decided to move my approach into a separate package, and _this is that separate +package_. + +This footgun is not imaginary — I observed top-downloaded packages doing that kind of thing, +«fixing» the lint warning by blindly including `safe-buffer` without any actual changes. + +Also in some cases, even if the API _was_ migrated to use of safe Buffer API — a random pull request +can bring unsafe Buffer API usage back to the codebase by adding new calls — and that could go +unnoticed even if you have a linter prohibiting that (becase of the reason stated above), and even +pass CI. _I also observed that being done in popular packages._ + +Some examples: + * [webdriverio](https://github.com/webdriverio/webdriverio/commit/05cbd3167c12e4930f09ef7cf93b127ba4effae4#diff-124380949022817b90b622871837d56cR31) + (a module with 548 759 downloads/month), + * [websocket-stream](https://github.com/maxogden/websocket-stream/commit/c9312bd24d08271687d76da0fe3c83493871cf61) + (218 288 d/m, fix in [maxogden/websocket-stream#142](https://github.com/maxogden/websocket-stream/pull/142)), + * [node-serialport](https://github.com/node-serialport/node-serialport/commit/e8d9d2b16c664224920ce1c895199b1ce2def48c) + (113 138 d/m, fix in [node-serialport/node-serialport#1510](https://github.com/node-serialport/node-serialport/pull/1510)), + * [karma](https://github.com/karma-runner/karma/commit/3d94b8cf18c695104ca195334dc75ff054c74eec) + (3 973 193 d/m, fix in [karma-runner/karma#2947](https://github.com/karma-runner/karma/pull/2947)), + * [spdy-transport](https://github.com/spdy-http2/spdy-transport/commit/5375ac33f4a62a4f65bcfc2827447d42a5dbe8b1) + (5 970 727 d/m, fix in [spdy-http2/spdy-transport#53](https://github.com/spdy-http2/spdy-transport/pull/53)). + * And there are a lot more over the ecosystem. + +I filed a PR at +[mysticatea/eslint-plugin-node#110](https://github.com/mysticatea/eslint-plugin-node/pull/110) to +partially fix that (for cases when that lint rule is used), but it is a semver-major change for +linter rules and presets, so it would take significant time for that to reach actual setups. +_It also hasn't been released yet (2018-03-20)._ + +Also, `safer-buffer` discourages the usage of `.allocUnsafe()`, which is often done by a mistake. +It still supports it with an explicit concern barier, by placing it under +`require('safer-buffer/dangereous')`. + +## But isn't throwing bad? + +Not really. It's an error that could be noticed and fixed early, instead of causing havoc later like +unguarded `new Buffer()` calls that end up receiving user input can do. + +This package affects only the files where `var Buffer = require('safer-buffer').Buffer` was done, so +it is really simple to keep track of things and make sure that you don't mix old API usage with that. +Also, CI should hint anything that you might have missed. + +New commits, if tested, won't land new usage of unsafe Buffer API this way. +_Node.js 10.x also deals with that by printing a runtime depecation warning._ + +### Would it affect third-party modules? + +No, unless you explicitly do an awful thing like monkey-patching or overriding the built-in `Buffer`. +Don't do that. + +### But I don't want throwing… + +That is also fine! + +Also, it could be better in some cases when you don't comprehensive enough test coverage. + +In that case — just don't override `Buffer` and use +`var SaferBuffer = require('safer-buffer').Buffer` instead. + +That way, everything using `Buffer` natively would still work, but there would be two drawbacks: + +* `Buffer.from`/`Buffer.alloc` won't be polyfilled — use `SaferBuffer.from` and + `SaferBuffer.alloc` instead. +* You are still open to accidentally using the insecure deprecated API — use a linter to catch that. + +Note that using a linter to catch accidential `Buffer` constructor usage in this case is strongly +recommended. `Buffer` is not overriden in this usecase, so linters won't get confused. + +## «Without footguns»? + +Well, it is still possible to do _some_ things with `Buffer` API, e.g. accessing `.buffer` property +on older versions and duping things from there. You shouldn't do that in your code, probabably. + +The intention is to remove the most significant footguns that affect lots of packages in the +ecosystem, and to do it in the proper way. + +Also, this package doesn't protect against security issues affecting some Node.js versions, so for +usage in your own production code, it is still recommended to update to a Node.js version +[supported by upstream](https://github.com/nodejs/release#release-schedule). diff --git a/node_modules/safer-buffer/dangerous.js b/node_modules/safer-buffer/dangerous.js new file mode 100644 index 0000000..ca41fdc --- /dev/null +++ b/node_modules/safer-buffer/dangerous.js @@ -0,0 +1,58 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer +var safer = require('./safer.js') +var Safer = safer.Buffer + +var dangerous = {} + +var key + +for (key in safer) { + if (!safer.hasOwnProperty(key)) continue + dangerous[key] = safer[key] +} + +var Dangereous = dangerous.Buffer = {} + +// Copy Safer API +for (key in Safer) { + if (!Safer.hasOwnProperty(key)) continue + Dangereous[key] = Safer[key] +} + +// Copy those missing unsafe methods, if they are present +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (Dangereous.hasOwnProperty(key)) continue + Dangereous[key] = Buffer[key] +} + +if (!Dangereous.allocUnsafe) { + Dangereous.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return Buffer(size) + } +} + +if (!Dangereous.allocUnsafeSlow) { + Dangereous.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return buffer.SlowBuffer(size) + } +} + +module.exports = dangerous diff --git a/node_modules/safer-buffer/package.json b/node_modules/safer-buffer/package.json new file mode 100644 index 0000000..d452b04 --- /dev/null +++ b/node_modules/safer-buffer/package.json @@ -0,0 +1,34 @@ +{ + "name": "safer-buffer", + "version": "2.1.2", + "description": "Modern Buffer API polyfill without footguns", + "main": "safer.js", + "scripts": { + "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js", + "test": "standard && tape tests.js" + }, + "author": { + "name": "Nikita Skovoroda", + "email": "chalkerx@gmail.com", + "url": "https://github.com/ChALkeR" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/ChALkeR/safer-buffer.git" + }, + "bugs": { + "url": "https://github.com/ChALkeR/safer-buffer/issues" + }, + "devDependencies": { + "standard": "^11.0.1", + "tape": "^4.9.0" + }, + "files": [ + "Porting-Buffer.md", + "Readme.md", + "tests.js", + "dangerous.js", + "safer.js" + ] +} diff --git a/node_modules/safer-buffer/safer.js b/node_modules/safer-buffer/safer.js new file mode 100644 index 0000000..37c7e1a --- /dev/null +++ b/node_modules/safer-buffer/safer.js @@ -0,0 +1,77 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer + +var safer = {} + +var key + +for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue + if (key === 'SlowBuffer' || key === 'Buffer') continue + safer[key] = buffer[key] +} + +var Safer = safer.Buffer = {} +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue + Safer[key] = Buffer[key] +} + +safer.Buffer.prototype = Buffer.prototype + +if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value) + } + if (value && typeof value.length === 'undefined') { + throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value) + } + return Buffer(value, encodingOrOffset, length) + } +} + +if (!Safer.alloc) { + Safer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + var buf = Buffer(size) + if (!fill || fill.length === 0) { + buf.fill(0) + } else if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + return buf + } +} + +if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding('buffer').kStringMaxLength + } catch (e) { + // we can't determine kStringMaxLength in environments where process.binding + // is unsupported, so let's not set it + } +} + +if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + } + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength + } +} + +module.exports = safer diff --git a/node_modules/safer-buffer/tests.js b/node_modules/safer-buffer/tests.js new file mode 100644 index 0000000..7ed2777 --- /dev/null +++ b/node_modules/safer-buffer/tests.js @@ -0,0 +1,406 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var test = require('tape') + +var buffer = require('buffer') + +var index = require('./') +var safer = require('./safer') +var dangerous = require('./dangerous') + +/* Inheritance tests */ + +test('Default is Safer', function (t) { + t.equal(index, safer) + t.notEqual(safer, dangerous) + t.notEqual(index, dangerous) + t.end() +}) + +test('Is not a function', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'object') + }); + [buffer].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'function') + }) + t.end() +}) + +test('Constructor throws', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer() }) + t.throws(function () { impl.Buffer(0) }) + t.throws(function () { impl.Buffer('a') }) + t.throws(function () { impl.Buffer('a', 'utf-8') }) + t.throws(function () { return new impl.Buffer() }) + t.throws(function () { return new impl.Buffer(0) }) + t.throws(function () { return new impl.Buffer('a') }) + t.throws(function () { return new impl.Buffer('a', 'utf-8') }) + }) + t.end() +}) + +test('Safe methods exist', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.alloc, 'function', 'alloc') + t.equal(typeof impl.Buffer.from, 'function', 'from') + }) + t.end() +}) + +test('Unsafe methods exist only in Dangerous', function (t) { + [index, safer].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'undefined') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'undefined') + }); + [dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'function') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'function') + }) + t.end() +}) + +test('Generic methods/properties are defined and equal', function (t) { + ['poolSize', 'isBuffer', 'concat', 'byteLength'].forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in buffer static methods/properties are inherited', function (t) { + Object.keys(buffer).forEach(function (method) { + if (method === 'SlowBuffer' || method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], buffer[method], method) + t.notEqual(typeof impl[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in Buffer static methods/properties are inherited', function (t) { + Object.keys(buffer.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('.prototype property of Buffer is inherited', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.prototype, buffer.Buffer.prototype, 'prototype') + t.notEqual(typeof impl.Buffer.prototype, 'undefined', 'prototype') + }) + t.end() +}) + +test('All Safer methods are present in Dangerous', function (t) { + Object.keys(safer).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], safer[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(safer.Buffer).forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], safer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Safe methods from Dangerous methods are present in Safer', function (t) { + Object.keys(dangerous).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], dangerous[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(dangerous.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], dangerous.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +/* Behaviour tests */ + +test('Methods return Buffers', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 'a'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10, 'x'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(9, 'ab'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(''))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string', 'utf-8'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([0, 42, 3]))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(new Uint8Array([0, 42, 3])))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([]))) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](0))) + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](10))) + }) + t.end() +}) + +test('Constructor is buffer.Buffer', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 'a').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10, 'x').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(9, 'ab').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string', 'utf-8').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').constructor, buffer.Buffer) + t.equal(impl.Buffer.from([0, 42, 3]).constructor, buffer.Buffer) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).constructor, buffer.Buffer) + t.equal(impl.Buffer.from([]).constructor, buffer.Buffer) + }); + [0, 10, 100].forEach(function (arg) { + t.equal(dangerous.Buffer.allocUnsafe(arg).constructor, buffer.Buffer) + t.equal(dangerous.Buffer.allocUnsafeSlow(arg).constructor, buffer.SlowBuffer(0).constructor) + }) + t.end() +}) + +test('Invalid calls throw', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer.from(0) }) + t.throws(function () { impl.Buffer.from(10) }) + t.throws(function () { impl.Buffer.from(10, 'utf-8') }) + t.throws(function () { impl.Buffer.from('string', 'invalid encoding') }) + t.throws(function () { impl.Buffer.from(-10) }) + t.throws(function () { impl.Buffer.from(1e90) }) + t.throws(function () { impl.Buffer.from(Infinity) }) + t.throws(function () { impl.Buffer.from(-Infinity) }) + t.throws(function () { impl.Buffer.from(NaN) }) + t.throws(function () { impl.Buffer.from(null) }) + t.throws(function () { impl.Buffer.from(undefined) }) + t.throws(function () { impl.Buffer.from() }) + t.throws(function () { impl.Buffer.from({}) }) + t.throws(function () { impl.Buffer.alloc('') }) + t.throws(function () { impl.Buffer.alloc('string') }) + t.throws(function () { impl.Buffer.alloc('string', 'utf-8') }) + t.throws(function () { impl.Buffer.alloc('b25ldHdvdGhyZWU=', 'base64') }) + t.throws(function () { impl.Buffer.alloc(-10) }) + t.throws(function () { impl.Buffer.alloc(1e90) }) + t.throws(function () { impl.Buffer.alloc(2 * (1 << 30)) }) + t.throws(function () { impl.Buffer.alloc(Infinity) }) + t.throws(function () { impl.Buffer.alloc(-Infinity) }) + t.throws(function () { impl.Buffer.alloc(null) }) + t.throws(function () { impl.Buffer.alloc(undefined) }) + t.throws(function () { impl.Buffer.alloc() }) + t.throws(function () { impl.Buffer.alloc([]) }) + t.throws(function () { impl.Buffer.alloc([0, 42, 3]) }) + t.throws(function () { impl.Buffer.alloc({}) }) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.throws(function () { dangerous.Buffer[method]('') }) + t.throws(function () { dangerous.Buffer[method]('string') }) + t.throws(function () { dangerous.Buffer[method]('string', 'utf-8') }) + t.throws(function () { dangerous.Buffer[method](2 * (1 << 30)) }) + t.throws(function () { dangerous.Buffer[method](Infinity) }) + if (dangerous.Buffer[method] === buffer.Buffer.allocUnsafe) { + t.skip('Skipping, older impl of allocUnsafe coerced negative sizes to 0') + } else { + t.throws(function () { dangerous.Buffer[method](-10) }) + t.throws(function () { dangerous.Buffer[method](-1e90) }) + t.throws(function () { dangerous.Buffer[method](-Infinity) }) + } + t.throws(function () { dangerous.Buffer[method](null) }) + t.throws(function () { dangerous.Buffer[method](undefined) }) + t.throws(function () { dangerous.Buffer[method]() }) + t.throws(function () { dangerous.Buffer[method]([]) }) + t.throws(function () { dangerous.Buffer[method]([0, 42, 3]) }) + t.throws(function () { dangerous.Buffer[method]({}) }) + }) + t.end() +}) + +test('Buffers have appropriate lengths', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).length, 0) + t.equal(impl.Buffer.alloc(10).length, 10) + t.equal(impl.Buffer.from('').length, 0) + t.equal(impl.Buffer.from('string').length, 6) + t.equal(impl.Buffer.from('string', 'utf-8').length, 6) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').length, 11) + t.equal(impl.Buffer.from([0, 42, 3]).length, 3) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).length, 3) + t.equal(impl.Buffer.from([]).length, 0) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.equal(dangerous.Buffer[method](0).length, 0) + t.equal(dangerous.Buffer[method](10).length, 10) + }) + t.end() +}) + +test('Buffers have appropriate lengths (2)', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true; + [ safer.Buffer.alloc, + dangerous.Buffer.allocUnsafe, + dangerous.Buffer.allocUnsafeSlow + ].forEach(function (method) { + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 1e5) + var buf = method(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + } + }) + t.ok(ok) + t.end() +}) + +test('.alloc(size) is zero-filled and has correct length', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = index.Buffer.alloc(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.allocUnsafe / .allocUnsafeSlow are fillable and have correct lengths', function (t) { + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = dangerous.Buffer[method](length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + buf.fill(0, 0, length) + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1, 0, length) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok, method) + }) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.deepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 97)) + t.notDeepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 98)) + + var tmp = new buffer.Buffer(2) + tmp.fill('ok') + if (tmp[1] === tmp[0]) { + // Outdated Node.js + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('ooooo')) + } else { + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('okoko')) + } + t.notDeepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('kokok')) + + t.end() +}) + +test('safer.Buffer.from returns results same as Buffer constructor', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), new buffer.Buffer('')) + t.deepEqual(impl.Buffer.from('string'), new buffer.Buffer('string')) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), new buffer.Buffer('string', 'utf-8')) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), new buffer.Buffer('b25ldHdvdGhyZWU=', 'base64')) + t.deepEqual(impl.Buffer.from([0, 42, 3]), new buffer.Buffer([0, 42, 3])) + t.deepEqual(impl.Buffer.from(new Uint8Array([0, 42, 3])), new buffer.Buffer(new Uint8Array([0, 42, 3]))) + t.deepEqual(impl.Buffer.from([]), new buffer.Buffer([])) + }) + t.end() +}) + +test('safer.Buffer.from returns consistent results', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from([]), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from(new Uint8Array([])), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), impl.Buffer.from('string')) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from([115, 116, 114, 105, 110, 103])) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from(impl.Buffer.from('string'))) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), impl.Buffer.from('onetwothree')) + t.notDeepEqual(impl.Buffer.from('b25ldHdvdGhyZWU='), impl.Buffer.from('onetwothree')) + }) + t.end() +}) diff --git a/node_modules/semver/LICENSE b/node_modules/semver/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md new file mode 100644 index 0000000..e952215 --- /dev/null +++ b/node_modules/semver/README.md @@ -0,0 +1,664 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +You can also just load the module for the function that you care about if +you'd like to minimize your footprint. + +```js +// load the whole API at once in a single object +const semver = require('semver') + +// or just load the bits you need +// all of them listed here, just pick and choose what you want + +// classes +const SemVer = require('semver/classes/semver') +const Comparator = require('semver/classes/comparator') +const Range = require('semver/classes/range') + +// functions for working with versions +const semverParse = require('semver/functions/parse') +const semverValid = require('semver/functions/valid') +const semverClean = require('semver/functions/clean') +const semverInc = require('semver/functions/inc') +const semverDiff = require('semver/functions/diff') +const semverMajor = require('semver/functions/major') +const semverMinor = require('semver/functions/minor') +const semverPatch = require('semver/functions/patch') +const semverPrerelease = require('semver/functions/prerelease') +const semverCompare = require('semver/functions/compare') +const semverRcompare = require('semver/functions/rcompare') +const semverCompareLoose = require('semver/functions/compare-loose') +const semverCompareBuild = require('semver/functions/compare-build') +const semverSort = require('semver/functions/sort') +const semverRsort = require('semver/functions/rsort') + +// low-level comparators between versions +const semverGt = require('semver/functions/gt') +const semverLt = require('semver/functions/lt') +const semverEq = require('semver/functions/eq') +const semverNeq = require('semver/functions/neq') +const semverGte = require('semver/functions/gte') +const semverLte = require('semver/functions/lte') +const semverCmp = require('semver/functions/cmp') +const semverCoerce = require('semver/functions/coerce') + +// working with ranges +const semverSatisfies = require('semver/functions/satisfies') +const semverMaxSatisfying = require('semver/ranges/max-satisfying') +const semverMinSatisfying = require('semver/ranges/min-satisfying') +const semverToComparators = require('semver/ranges/to-comparators') +const semverMinVersion = require('semver/ranges/min-version') +const semverValidRange = require('semver/ranges/valid') +const semverOutside = require('semver/ranges/outside') +const semverGtr = require('semver/ranges/gtr') +const semverLtr = require('semver/ranges/ltr') +const semverIntersects = require('semver/ranges/intersects') +const semverSimplifyRange = require('semver/ranges/simplify') +const semverRangeSubset = require('semver/ranges/subset') +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-n <0|1> + This is the base to be used for the prerelease identifier. + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. +Support for stripping a leading "v" is kept for compatibility with `v1.0.0` of the SemVer +specification but should not be used anymore. + +## Ranges + +A `version range` is a set of `comparators` that specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. The comparator `>1` is equivalent to `>=2.0.0` and +would match the versions `2.0.0` and `3.1.0`, but not the versions +`1.0.1` or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. +Version `3.4.5` *would* satisfy the range because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose of this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range-matching +semantics. + +Second, a user who has opted into using a prerelease version has +indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for range-matching) +by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +To get out of the prerelease phase, use the `release` option: + +```bash +$ semver 1.2.4-beta.1 -i release +1.2.4 +``` + +#### Prerelease Identifier Base + +The method `.inc` takes an optional parameter 'identifierBase' string +that will let you let your prerelease number as zero-based or one-based. +Set to `false` to omit the prerelease number altogether. +If you do not specify this parameter, it will default to zero-based. + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', '1') +// '1.2.4-beta.1' +``` + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', false) +// '1.2.4-beta' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n 1 +1.2.4-beta.1 +``` + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n false +1.2.4-beta +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0-0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0-0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any non-prerelease version satisfies, unless + `includePrerelease` is specified, in which case any version at all + satisfies) +* `1.x` := `>=1.0.0 <2.0.0-0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0-0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0-0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0-0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0-0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0-0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0-0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0-0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0-0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0-0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0-0` +* `^0.2.3` := `>=0.2.3 <0.3.0-0` +* `^0.0.3` := `>=0.0.3 <0.0.4-0` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4-0` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0-0` +* `^0.0.x` := `>=0.0.0 <0.1.0-0` +* `^0.0` := `>=0.0.0 <0.1.0-0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0-0` +* `^0.x` := `>=0.0.0 <1.0.0-0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ +``` + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose`: Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease`: Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, releaseType, options, identifier, identifierBase)`: + Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, `prerelease`, or `release`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, `prerelease` will work the + same as `prepatch`. It increments the patch version and then makes a + prerelease. If the input version is already a prerelease it simply + increments it. + * `release` will remove any prerelease part of the version. + * `identifier` can be used to prefix `premajor`, `preminor`, + `prepatch`, or `prerelease` version increments. `identifierBase` + is the base to be used for the `prerelease` identifier. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of `compare`. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. +* `compareLoose(v1, v2)`: Short for `compare(v1, v2, { loose: true })`. +* `diff(v1, v2)`: Returns the difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Sorting + +* `sort(versions)`: Returns a sorted array of versions based on the `compareBuild` + function. +* `rsort(versions)`: The reverse of `sort`. Returns an array of versions based on + the `compareBuild` function in descending order. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid. +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can match + the given range. +* `gtr(version, range)`: Return `true` if the version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if the version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the range comparators intersect. +* `simplifyRange(versions, range)`: Return a "simplified" range that + matches the same items in the `versions` list as the range specified. Note + that it does *not* guarantee that it would match the same versions in all + cases, only for the set of versions provided. This is useful when + generating ranges by joining together multiple versions with `||` + programmatically, to provide the user with something a bit more + ergonomic. If the provided range is shorter in string-length than the + generated range, then that is returned. +* `subset(subRange, superRange)`: Return `true` if the `subRange` range is + entirely contained by the `superRange` range. + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +If the `options.includePrerelease` flag is set, then the `coerce` result will contain +prerelease and build parts of a version. For example, `1.2.3.4-rc.1+rev.2` +will preserve prerelease `rc.1` and build `rev.2` in the result. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided +version is not valid a null will be returned. This does not work for +ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `'2.1.5'` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` + +## Constants + +As a convenience, helper constants are exported to provide information about what `node-semver` supports: + +### `RELEASE_TYPES` + +- major +- premajor +- minor +- preminor +- patch +- prepatch +- prerelease + +``` +const semver = require('semver'); + +if (semver.RELEASE_TYPES.includes(arbitraryUserInput)) { + console.log('This is a valid release type!'); +} else { + console.warn('This is NOT a valid release type!'); +} +``` + +### `SEMVER_SPEC_VERSION` + +2.0.0 + +``` +const semver = require('semver'); + +console.log('We are currently using the semver specification version:', semver.SEMVER_SPEC_VERSION); +``` + +## Exported Modules + + + +You may pull in just the part of this semver utility that you need if you +are sensitive to packing and tree-shaking concerns. The main +`require('semver')` export uses getter functions to lazily load the parts +of the API that are used. + +The following modules are available: + +* `require('semver')` +* `require('semver/classes')` +* `require('semver/classes/comparator')` +* `require('semver/classes/range')` +* `require('semver/classes/semver')` +* `require('semver/functions/clean')` +* `require('semver/functions/cmp')` +* `require('semver/functions/coerce')` +* `require('semver/functions/compare')` +* `require('semver/functions/compare-build')` +* `require('semver/functions/compare-loose')` +* `require('semver/functions/diff')` +* `require('semver/functions/eq')` +* `require('semver/functions/gt')` +* `require('semver/functions/gte')` +* `require('semver/functions/inc')` +* `require('semver/functions/lt')` +* `require('semver/functions/lte')` +* `require('semver/functions/major')` +* `require('semver/functions/minor')` +* `require('semver/functions/neq')` +* `require('semver/functions/parse')` +* `require('semver/functions/patch')` +* `require('semver/functions/prerelease')` +* `require('semver/functions/rcompare')` +* `require('semver/functions/rsort')` +* `require('semver/functions/satisfies')` +* `require('semver/functions/sort')` +* `require('semver/functions/valid')` +* `require('semver/ranges/gtr')` +* `require('semver/ranges/intersects')` +* `require('semver/ranges/ltr')` +* `require('semver/ranges/max-satisfying')` +* `require('semver/ranges/min-satisfying')` +* `require('semver/ranges/min-version')` +* `require('semver/ranges/outside')` +* `require('semver/ranges/simplify')` +* `require('semver/ranges/subset')` +* `require('semver/ranges/to-comparators')` +* `require('semver/ranges/valid')` + diff --git a/node_modules/semver/bin/semver.js b/node_modules/semver/bin/semver.js new file mode 100644 index 0000000..22fc76e --- /dev/null +++ b/node_modules/semver/bin/semver.js @@ -0,0 +1,189 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +const argv = process.argv.slice(2) + +let versions = [] + +const range = [] + +let inc = null + +const version = require('../package.json').version + +let loose = false + +let includePrerelease = false + +let coerce = false + +let rtl = false + +let identifier + +let identifierBase + +const semver = require('../') +const parseOptions = require('../internal/parse-options') + +let reverse = false + +let options = {} + +const main = () => { + if (!argv.length) { + return help() + } + while (argv.length) { + let a = argv.shift() + const indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + const value = a.slice(indexOfEqualSign + 1) + a = a.slice(0, indexOfEqualSign) + argv.unshift(value) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + case 'release': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-n': + identifierBase = argv.shift() + if (identifierBase === 'false') { + identifierBase = false + } + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + options = parseOptions({ loose, includePrerelease, rtl }) + + versions = versions.map((v) => { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter((v) => { + return semver.valid(v) + }) + if (!versions.length) { + return fail() + } + if (inc && (versions.length !== 1 || range.length)) { + return failInc() + } + + for (let i = 0, l = range.length; i < l; i++) { + versions = versions.filter((v) => { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) { + return fail() + } + } + versions + .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options)) + .map(v => semver.clean(v, options)) + .map(v => inc ? semver.inc(v, inc, options, identifier, identifierBase) : v) + .forEach(v => console.log(v)) +} + +const failInc = () => { + console.error('--inc can only be used on a single version with no range') + fail() +} + +const fail = () => process.exit(1) + +const help = () => console.log( +`SemVer ${version} + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +-n + Base number to be used for the prerelease identifier. + Can be either 0 or 1, or false to omit the number altogether. + Defaults to 0. + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them.`) + +main() diff --git a/node_modules/semver/classes/comparator.js b/node_modules/semver/classes/comparator.js new file mode 100644 index 0000000..3d39c0e --- /dev/null +++ b/node_modules/semver/classes/comparator.js @@ -0,0 +1,141 @@ +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options) + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options) + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } +} + +module.exports = Comparator + +const parseOptions = require('../internal/parse-options') +const { safeRe: re, t } = require('../internal/re') +const cmp = require('../functions/cmp') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const Range = require('./range') diff --git a/node_modules/semver/classes/index.js b/node_modules/semver/classes/index.js new file mode 100644 index 0000000..5e3f5c9 --- /dev/null +++ b/node_modules/semver/classes/index.js @@ -0,0 +1,5 @@ +module.exports = { + SemVer: require('./semver.js'), + Range: require('./range.js'), + Comparator: require('./comparator.js'), +} diff --git a/node_modules/semver/classes/range.js b/node_modules/semver/classes/range.js new file mode 100644 index 0000000..ceee231 --- /dev/null +++ b/node_modules/semver/classes/range.js @@ -0,0 +1,554 @@ +const SPACE_CHARACTERS = /\s+/g + +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.formatted = undefined + return this + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } + } + } + } + + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE) + const memoKey = memoOpts + ':' + range + const cached = cache.get(memoKey) + if (cached) { + return cached + } + + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} + +module.exports = Range + +const LRU = require('../internal/lrucache') +const cache = new LRU() + +const parseOptions = require('../internal/parse-options') +const Comparator = require('./comparator') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const { + safeRe: re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = require('../internal/re') +const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants') + +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +// ~0.0.1 --> >=0.0.1 <0.1.0-0 +const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') +} + +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +// ^0.0.1 --> >=0.0.1 <0.0.2-0 +// ^0.1.0 --> >=0.1.0 <0.2.0-0 +const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') +} + +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } + } + + debug('caret return', ret) + return ret + }) +} + +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') +} + +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + if (gtlt === '<') { + pr = '-0' + } + + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') +} + +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return `${from} ${to}`.trim() +} + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} diff --git a/node_modules/semver/classes/semver.js b/node_modules/semver/classes/semver.js new file mode 100644 index 0000000..6fbc062 --- /dev/null +++ b/node_modules/semver/classes/semver.js @@ -0,0 +1,318 @@ +const debug = require('../internal/debug') +const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants') +const { safeRe: re, safeSrc: src, t } = require('../internal/re') + +const parseOptions = require('../internal/parse-options') +const { compareIdentifiers } = require('../internal/identifiers') +class SemVer { + constructor (version, options) { + options = parseOptions(options) + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('build compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + if (release.startsWith('pre')) { + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + // Avoid an invalid semver results + if (identifier) { + const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`) + const match = `-${identifier}`.match(r) + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`) + } + } + } + + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier, identifierBase) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier, identifierBase) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier, identifierBase) + this.inc('pre', identifier, identifierBase) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase) + } + this.inc('pre', identifier, identifierBase) + break + case 'release': + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`) + } + this.prerelease.length = 0 + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0 + + if (this.prerelease.length === 0) { + this.prerelease = [base] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base] + if (identifierBase === false) { + prerelease = [identifier] + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease + } + } else { + this.prerelease = prerelease + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format() + if (this.build.length) { + this.raw += `+${this.build.join('.')}` + } + return this + } +} + +module.exports = SemVer diff --git a/node_modules/semver/functions/clean.js b/node_modules/semver/functions/clean.js new file mode 100644 index 0000000..811fe6b --- /dev/null +++ b/node_modules/semver/functions/clean.js @@ -0,0 +1,6 @@ +const parse = require('./parse') +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean diff --git a/node_modules/semver/functions/cmp.js b/node_modules/semver/functions/cmp.js new file mode 100644 index 0000000..4011909 --- /dev/null +++ b/node_modules/semver/functions/cmp.js @@ -0,0 +1,52 @@ +const eq = require('./eq') +const neq = require('./neq') +const gt = require('./gt') +const gte = require('./gte') +const lt = require('./lt') +const lte = require('./lte') + +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +} +module.exports = cmp diff --git a/node_modules/semver/functions/coerce.js b/node_modules/semver/functions/coerce.js new file mode 100644 index 0000000..b378dce --- /dev/null +++ b/node_modules/semver/functions/coerce.js @@ -0,0 +1,60 @@ +const SemVer = require('../classes/semver') +const parse = require('./parse') +const { safeRe: re, t } = require('../internal/re') + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] + let next + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1 + } + + if (match === null) { + return null + } + + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) +} +module.exports = coerce diff --git a/node_modules/semver/functions/compare-build.js b/node_modules/semver/functions/compare-build.js new file mode 100644 index 0000000..9eb881b --- /dev/null +++ b/node_modules/semver/functions/compare-build.js @@ -0,0 +1,7 @@ +const SemVer = require('../classes/semver') +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} +module.exports = compareBuild diff --git a/node_modules/semver/functions/compare-loose.js b/node_modules/semver/functions/compare-loose.js new file mode 100644 index 0000000..4881fbe --- /dev/null +++ b/node_modules/semver/functions/compare-loose.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose diff --git a/node_modules/semver/functions/compare.js b/node_modules/semver/functions/compare.js new file mode 100644 index 0000000..748b7af --- /dev/null +++ b/node_modules/semver/functions/compare.js @@ -0,0 +1,5 @@ +const SemVer = require('../classes/semver') +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare diff --git a/node_modules/semver/functions/diff.js b/node_modules/semver/functions/diff.js new file mode 100644 index 0000000..33171dc --- /dev/null +++ b/node_modules/semver/functions/diff.js @@ -0,0 +1,58 @@ +const parse = require('./parse.js') + +const diff = (version1, version2) => { + const v1 = parse(version1, null, true) + const v2 = parse(version2, null, true) + const comparison = v1.compare(v2) + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0 + const highVersion = v1Higher ? v1 : v2 + const lowVersion = v1Higher ? v2 : v1 + const highHasPre = !!highVersion.prerelease.length + const lowHasPre = !!lowVersion.prerelease.length + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // If the main part has no difference + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return 'minor' + } + return 'patch' + } + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : '' + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are preleases + return 'prerelease' +} + +module.exports = diff diff --git a/node_modules/semver/functions/eq.js b/node_modules/semver/functions/eq.js new file mode 100644 index 0000000..271fed9 --- /dev/null +++ b/node_modules/semver/functions/eq.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq diff --git a/node_modules/semver/functions/gt.js b/node_modules/semver/functions/gt.js new file mode 100644 index 0000000..d9b2156 --- /dev/null +++ b/node_modules/semver/functions/gt.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt diff --git a/node_modules/semver/functions/gte.js b/node_modules/semver/functions/gte.js new file mode 100644 index 0000000..5aeaa63 --- /dev/null +++ b/node_modules/semver/functions/gte.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte diff --git a/node_modules/semver/functions/inc.js b/node_modules/semver/functions/inc.js new file mode 100644 index 0000000..7670b1b --- /dev/null +++ b/node_modules/semver/functions/inc.js @@ -0,0 +1,19 @@ +const SemVer = require('../classes/semver') + +const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +} +module.exports = inc diff --git a/node_modules/semver/functions/lt.js b/node_modules/semver/functions/lt.js new file mode 100644 index 0000000..b440ab7 --- /dev/null +++ b/node_modules/semver/functions/lt.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt diff --git a/node_modules/semver/functions/lte.js b/node_modules/semver/functions/lte.js new file mode 100644 index 0000000..6dcc956 --- /dev/null +++ b/node_modules/semver/functions/lte.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte diff --git a/node_modules/semver/functions/major.js b/node_modules/semver/functions/major.js new file mode 100644 index 0000000..4283165 --- /dev/null +++ b/node_modules/semver/functions/major.js @@ -0,0 +1,3 @@ +const SemVer = require('../classes/semver') +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major diff --git a/node_modules/semver/functions/minor.js b/node_modules/semver/functions/minor.js new file mode 100644 index 0000000..57b3455 --- /dev/null +++ b/node_modules/semver/functions/minor.js @@ -0,0 +1,3 @@ +const SemVer = require('../classes/semver') +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor diff --git a/node_modules/semver/functions/neq.js b/node_modules/semver/functions/neq.js new file mode 100644 index 0000000..f944c01 --- /dev/null +++ b/node_modules/semver/functions/neq.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq diff --git a/node_modules/semver/functions/parse.js b/node_modules/semver/functions/parse.js new file mode 100644 index 0000000..459b3b1 --- /dev/null +++ b/node_modules/semver/functions/parse.js @@ -0,0 +1,16 @@ +const SemVer = require('../classes/semver') +const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +} + +module.exports = parse diff --git a/node_modules/semver/functions/patch.js b/node_modules/semver/functions/patch.js new file mode 100644 index 0000000..63afca2 --- /dev/null +++ b/node_modules/semver/functions/patch.js @@ -0,0 +1,3 @@ +const SemVer = require('../classes/semver') +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch diff --git a/node_modules/semver/functions/prerelease.js b/node_modules/semver/functions/prerelease.js new file mode 100644 index 0000000..06aa132 --- /dev/null +++ b/node_modules/semver/functions/prerelease.js @@ -0,0 +1,6 @@ +const parse = require('./parse') +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} +module.exports = prerelease diff --git a/node_modules/semver/functions/rcompare.js b/node_modules/semver/functions/rcompare.js new file mode 100644 index 0000000..0ac509e --- /dev/null +++ b/node_modules/semver/functions/rcompare.js @@ -0,0 +1,3 @@ +const compare = require('./compare') +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare diff --git a/node_modules/semver/functions/rsort.js b/node_modules/semver/functions/rsort.js new file mode 100644 index 0000000..82404c5 --- /dev/null +++ b/node_modules/semver/functions/rsort.js @@ -0,0 +1,3 @@ +const compareBuild = require('./compare-build') +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort diff --git a/node_modules/semver/functions/satisfies.js b/node_modules/semver/functions/satisfies.js new file mode 100644 index 0000000..50af1c1 --- /dev/null +++ b/node_modules/semver/functions/satisfies.js @@ -0,0 +1,10 @@ +const Range = require('../classes/range') +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} +module.exports = satisfies diff --git a/node_modules/semver/functions/sort.js b/node_modules/semver/functions/sort.js new file mode 100644 index 0000000..4d10917 --- /dev/null +++ b/node_modules/semver/functions/sort.js @@ -0,0 +1,3 @@ +const compareBuild = require('./compare-build') +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort diff --git a/node_modules/semver/functions/valid.js b/node_modules/semver/functions/valid.js new file mode 100644 index 0000000..f27bae1 --- /dev/null +++ b/node_modules/semver/functions/valid.js @@ -0,0 +1,6 @@ +const parse = require('./parse') +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null +} +module.exports = valid diff --git a/node_modules/semver/index.js b/node_modules/semver/index.js new file mode 100644 index 0000000..86d42ac --- /dev/null +++ b/node_modules/semver/index.js @@ -0,0 +1,89 @@ +// just pre-load all the stuff that index.js lazily exports +const internalRe = require('./internal/re') +const constants = require('./internal/constants') +const SemVer = require('./classes/semver') +const identifiers = require('./internal/identifiers') +const parse = require('./functions/parse') +const valid = require('./functions/valid') +const clean = require('./functions/clean') +const inc = require('./functions/inc') +const diff = require('./functions/diff') +const major = require('./functions/major') +const minor = require('./functions/minor') +const patch = require('./functions/patch') +const prerelease = require('./functions/prerelease') +const compare = require('./functions/compare') +const rcompare = require('./functions/rcompare') +const compareLoose = require('./functions/compare-loose') +const compareBuild = require('./functions/compare-build') +const sort = require('./functions/sort') +const rsort = require('./functions/rsort') +const gt = require('./functions/gt') +const lt = require('./functions/lt') +const eq = require('./functions/eq') +const neq = require('./functions/neq') +const gte = require('./functions/gte') +const lte = require('./functions/lte') +const cmp = require('./functions/cmp') +const coerce = require('./functions/coerce') +const Comparator = require('./classes/comparator') +const Range = require('./classes/range') +const satisfies = require('./functions/satisfies') +const toComparators = require('./ranges/to-comparators') +const maxSatisfying = require('./ranges/max-satisfying') +const minSatisfying = require('./ranges/min-satisfying') +const minVersion = require('./ranges/min-version') +const validRange = require('./ranges/valid') +const outside = require('./ranges/outside') +const gtr = require('./ranges/gtr') +const ltr = require('./ranges/ltr') +const intersects = require('./ranges/intersects') +const simplifyRange = require('./ranges/simplify') +const subset = require('./ranges/subset') +module.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +} diff --git a/node_modules/semver/internal/constants.js b/node_modules/semver/internal/constants.js new file mode 100644 index 0000000..94be1c5 --- /dev/null +++ b/node_modules/semver/internal/constants.js @@ -0,0 +1,35 @@ +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +] + +module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +} diff --git a/node_modules/semver/internal/debug.js b/node_modules/semver/internal/debug.js new file mode 100644 index 0000000..1c00e13 --- /dev/null +++ b/node_modules/semver/internal/debug.js @@ -0,0 +1,9 @@ +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug diff --git a/node_modules/semver/internal/identifiers.js b/node_modules/semver/internal/identifiers.js new file mode 100644 index 0000000..e612d0a --- /dev/null +++ b/node_modules/semver/internal/identifiers.js @@ -0,0 +1,23 @@ +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, +} diff --git a/node_modules/semver/internal/lrucache.js b/node_modules/semver/internal/lrucache.js new file mode 100644 index 0000000..6d89ec9 --- /dev/null +++ b/node_modules/semver/internal/lrucache.js @@ -0,0 +1,40 @@ +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache diff --git a/node_modules/semver/internal/parse-options.js b/node_modules/semver/internal/parse-options.js new file mode 100644 index 0000000..10d64ce --- /dev/null +++ b/node_modules/semver/internal/parse-options.js @@ -0,0 +1,15 @@ +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }) +const emptyOpts = Object.freeze({ }) +const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +} +module.exports = parseOptions diff --git a/node_modules/semver/internal/re.js b/node_modules/semver/internal/re.js new file mode 100644 index 0000000..2a956ba --- /dev/null +++ b/node_modules/semver/internal/re.js @@ -0,0 +1,219 @@ +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = require('./constants') +const debug = require('./debug') +exports = module.exports = {} + +// The actual regexps go on exports.re +const re = exports.re = [] +const safeRe = exports.safeRe = [] +const src = exports.src = [] +const safeSrc = exports.safeSrc = [] +const t = exports.t = {} +let R = 0 + +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + +const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value) + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + safeSrc[index] = safe + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined) +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) + +// ## Main Version +// Three dot-separated numeric identifiers. + +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) + +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] +}|${src[t.NONNUMERICIDENTIFIER]})`) + +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] +}|${src[t.NONNUMERICIDENTIFIER]})`) + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) + +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) + +createToken('FULL', `^${src[t.FULLPLAIN]}$`) + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) + +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + +createToken('GTLT', '((?:<|>)?=?)') + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') + +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' + +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') + +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' + +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) + +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) + +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json new file mode 100644 index 0000000..c264454 --- /dev/null +++ b/node_modules/semver/package.json @@ -0,0 +1,78 @@ +{ + "name": "semver", + "version": "7.7.1", + "description": "The semantic version parser used by npm.", + "main": "index.js", + "scripts": { + "test": "tap", + "snap": "tap", + "lint": "npm run eslint", + "postlint": "template-oss-check", + "lintfix": "npm run eslint -- --fix", + "posttest": "npm run lint", + "template-oss-apply": "template-oss-apply --force", + "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"" + }, + "devDependencies": { + "@npmcli/eslint-config": "^5.0.0", + "@npmcli/template-oss": "4.23.4", + "benchmark": "^2.1.4", + "tap": "^16.0.0" + }, + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "bin": { + "semver": "bin/semver.js" + }, + "files": [ + "bin/", + "lib/", + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "tap": { + "timeout": 30, + "coverage-map": "map.js", + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ] + }, + "engines": { + "node": ">=10" + }, + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "version": "4.23.4", + "engines": ">=10", + "distPaths": [ + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "allowPaths": [ + "/classes/", + "/functions/", + "/internal/", + "/ranges/", + "/index.js", + "/preload.js", + "/range.bnf", + "/benchmarks" + ], + "publish": "true" + } +} diff --git a/node_modules/semver/preload.js b/node_modules/semver/preload.js new file mode 100644 index 0000000..947cd4f --- /dev/null +++ b/node_modules/semver/preload.js @@ -0,0 +1,2 @@ +// XXX remove in v8 or beyond +module.exports = require('./index.js') diff --git a/node_modules/semver/range.bnf b/node_modules/semver/range.bnf new file mode 100644 index 0000000..d4c6ae0 --- /dev/null +++ b/node_modules/semver/range.bnf @@ -0,0 +1,16 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ diff --git a/node_modules/semver/ranges/gtr.js b/node_modules/semver/ranges/gtr.js new file mode 100644 index 0000000..db7e355 --- /dev/null +++ b/node_modules/semver/ranges/gtr.js @@ -0,0 +1,4 @@ +// Determine if version is greater than all the versions possible in the range. +const outside = require('./outside') +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr diff --git a/node_modules/semver/ranges/intersects.js b/node_modules/semver/ranges/intersects.js new file mode 100644 index 0000000..e0e9b7c --- /dev/null +++ b/node_modules/semver/ranges/intersects.js @@ -0,0 +1,7 @@ +const Range = require('../classes/range') +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2, options) +} +module.exports = intersects diff --git a/node_modules/semver/ranges/ltr.js b/node_modules/semver/ranges/ltr.js new file mode 100644 index 0000000..528a885 --- /dev/null +++ b/node_modules/semver/ranges/ltr.js @@ -0,0 +1,4 @@ +const outside = require('./outside') +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr diff --git a/node_modules/semver/ranges/max-satisfying.js b/node_modules/semver/ranges/max-satisfying.js new file mode 100644 index 0000000..6e3d993 --- /dev/null +++ b/node_modules/semver/ranges/max-satisfying.js @@ -0,0 +1,25 @@ +const SemVer = require('../classes/semver') +const Range = require('../classes/range') + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} +module.exports = maxSatisfying diff --git a/node_modules/semver/ranges/min-satisfying.js b/node_modules/semver/ranges/min-satisfying.js new file mode 100644 index 0000000..9b60974 --- /dev/null +++ b/node_modules/semver/ranges/min-satisfying.js @@ -0,0 +1,24 @@ +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying diff --git a/node_modules/semver/ranges/min-version.js b/node_modules/semver/ranges/min-version.js new file mode 100644 index 0000000..350e1f7 --- /dev/null +++ b/node_modules/semver/ranges/min-version.js @@ -0,0 +1,61 @@ +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const gt = require('../functions/gt') + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} +module.exports = minVersion diff --git a/node_modules/semver/ranges/outside.js b/node_modules/semver/ranges/outside.js new file mode 100644 index 0000000..ae99b10 --- /dev/null +++ b/node_modules/semver/ranges/outside.js @@ -0,0 +1,80 @@ +const SemVer = require('../classes/semver') +const Comparator = require('../classes/comparator') +const { ANY } = Comparator +const Range = require('../classes/range') +const satisfies = require('../functions/satisfies') +const gt = require('../functions/gt') +const lt = require('../functions/lt') +const lte = require('../functions/lte') +const gte = require('../functions/gte') + +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +module.exports = outside diff --git a/node_modules/semver/ranges/simplify.js b/node_modules/semver/ranges/simplify.js new file mode 100644 index 0000000..618d5b6 --- /dev/null +++ b/node_modules/semver/ranges/simplify.js @@ -0,0 +1,47 @@ +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null + } + } + if (first) { + set.push([first, null]) + } + + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) + } + } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range +} diff --git a/node_modules/semver/ranges/subset.js b/node_modules/semver/ranges/subset.js new file mode 100644 index 0000000..1e5c268 --- /dev/null +++ b/node_modules/semver/ranges/subset.js @@ -0,0 +1,247 @@ +const Range = require('../classes/range.js') +const Comparator = require('../classes/comparator.js') +const { ANY } = Comparator +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} + +const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')] +const minimumVersion = [new Comparator('>=0.0.0')] + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease + } else { + sub = minimumVersion + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion + } + } + + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +} + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +} + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +} + +module.exports = subset diff --git a/node_modules/semver/ranges/to-comparators.js b/node_modules/semver/ranges/to-comparators.js new file mode 100644 index 0000000..6c8bc7e --- /dev/null +++ b/node_modules/semver/ranges/to-comparators.js @@ -0,0 +1,8 @@ +const Range = require('../classes/range') + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators diff --git a/node_modules/semver/ranges/valid.js b/node_modules/semver/ranges/valid.js new file mode 100644 index 0000000..365f356 --- /dev/null +++ b/node_modules/semver/ranges/valid.js @@ -0,0 +1,11 @@ +const Range = require('../classes/range') +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange diff --git a/node_modules/send/HISTORY.md b/node_modules/send/HISTORY.md new file mode 100644 index 0000000..0dd29d0 --- /dev/null +++ b/node_modules/send/HISTORY.md @@ -0,0 +1,526 @@ +0.19.0 / 2024-09-10 +=================== + +* Remove link renderization in html while redirecting + +0.18.0 / 2022-03-23 +=================== + + * Fix emitted 416 error missing headers property + * Limit the headers removed for 304 response + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: destroy@1.2.0 + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: statuses@2.0.1 + +0.17.2 / 2021-12-11 +=================== + + * pref: ignore empty http tokens + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: ms@2.1.3 + +0.17.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect & error responses + * deps: range-parser@~1.2.1 + +0.17.0 / 2019-05-03 +=================== + + * deps: http-errors@~1.7.2 + - Set constructor name when possible + - Use `toidentifier` module to make class names + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: mime@1.6.0 + - Add extensions for JPEG-2000 images + - Add new `font/*` types from IANA + - Add WASM mapping + - Update `.bdoc` to `application/bdoc` + - Update `.bmp` to `image/bmp` + - Update `.m4a` to `audio/mp4` + - Update `.rtf` to `application/rtf` + - Update `.wav` to `audio/wav` + - Update `.xml` to `application/xml` + - Update generic extensions to `application/octet-stream`: + `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` + - Use mime-score module to resolve extension conflicts + * deps: ms@2.1.1 + - Add `week`/`w` support + - Fix negative number handling + * deps: statuses@~1.5.0 + * perf: remove redundant `path.normalize` call + +0.16.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in default error & redirects + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +0.16.1 / 2017-09-29 +=================== + + * Fix regression in edge-case behavior for empty `path` + +0.16.0 / 2017-09-27 +=================== + + * Add `immutable` option + * Fix missing `` in default error & redirects + * Use instance methods on steam to check for listeners + * deps: mime@1.4.1 + - Add 70 new types for file extensions + - Set charset as "UTF-8" for .js and .json + * perf: improve path validation speed + +0.15.6 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: improve `If-Match` token parsing + +0.15.5 / 2017-09-20 +=================== + + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + +0.15.4 / 2017-08-05 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + +0.15.3 / 2017-05-16 +=================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: ms@2.0.0 + +0.15.2 / 2017-04-26 +=================== + + * deps: debug@2.6.4 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@0.7.3 + * deps: ms@1.0.0 + +0.15.1 / 2017-03-04 +=================== + + * Fix issue when `Date.parse` does not return `NaN` on invalid date + * Fix strict violation in broken environments + +0.15.0 / 2017-02-25 +=================== + + * Support `If-Match` and `If-Unmodified-Since` headers + * Add `res` and `path` arguments to `directory` event + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Send complete HTML document in redirect & error responses + * Set default CSP header in redirect & error responses + * Use `res.getHeaderNames()` when available + * Use `res.headersSent` when available + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + +0.14.2 / 2017-01-23 +=================== + + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: ms@0.7.2 + * deps: statuses@~1.3.1 + +0.14.1 / 2016-06-09 +=================== + + * Fix redirect error when `path` contains raw non-URL characters + * Fix redirect when `path` starts with multiple forward slashes + +0.14.0 / 2016-06-06 +=================== + + * Add `acceptRanges` option + * Add `cacheControl` option + * Attempt to combine multiple ranges into single range + * Correctly inherit from `Stream` class + * Fix `Content-Range` header in 416 responses when using `start`/`end` options + * Fix `Content-Range` header missing from default 416 responses + * Ignore non-byte `Range` headers + * deps: http-errors@~1.5.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - Support new code `421 Misdirected Request` + - Use `setprototypeof` module to replace `__proto__` setting + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: range-parser@~1.2.0 + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: statuses@~1.3.0 + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: remove argument reassignment + +0.13.2 / 2016-03-05 +=================== + + * Fix invalid `Content-Type` header when `send.mime.default_type` unset + +0.13.1 / 2016-01-16 +=================== + + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: destroy@~1.0.4 + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: range-parser@~1.0.3 + - perf: enable strict mode + +0.13.0 / 2015-06-16 +=================== + + * Allow Node.js HTTP server to set `Date` response header + * Fix incorrectly removing `Content-Location` on 304 response + * Improve the default redirect response headers + * Send appropriate headers on default error response + * Use `http-errors` for standard emitted errors + * Use `statuses` instead of `http` module for status messages + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Improve stat performance by removing hashing + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove unnecessary array allocations + +0.12.3 / 2015-05-13 +=================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: ms@0.7.1 + - Prevent extraordinarily long inputs + * deps: on-finished@~2.2.1 + +0.12.2 / 2015-03-13 +=================== + + * Throw errors early for invalid `extensions` or `index` options + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.12.1 / 2015-02-17 +=================== + + * Fix regression sending zero-length files + +0.12.0 / 2015-02-16 +=================== + + * Always read the stat size from the file + * Fix mutating passed-in `options` + * deps: mime@1.3.4 + +0.11.1 / 2015-01-20 +=================== + + * Fix `root` path disclosure + +0.11.0 / 2015-01-05 +=================== + + * deps: debug@~2.1.1 + * deps: etag@~1.5.1 + - deps: crc@3.2.1 + * deps: ms@0.7.0 + - Add `milliseconds` + - Add `msecs` + - Add `secs` + - Add `mins` + - Add `hrs` + - Add `yrs` + * deps: on-finished@~2.2.0 + +0.10.1 / 2014-10-22 +=================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.10.0 / 2014-10-15 +=================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + +0.9.3 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + - Support "fake" stats objects + +0.9.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: range-parser@~1.0.2 + +0.9.1 / 2014-09-07 +================== + + * deps: fresh@0.2.4 + +0.9.0 / 2014-09-07 +================== + + * Add `lastModified` option + * Use `etag` to generate `ETag` header + * deps: debug@~2.0.0 + +0.8.5 / 2014-09-04 +================== + + * Fix malicious path detection for empty string path + +0.8.4 / 2014-09-04 +================== + + * Fix a path traversal issue when using `root` + +0.8.3 / 2014-08-16 +================== + + * deps: destroy@1.0.3 + - renamed from dethroy + * deps: on-finished@2.1.0 + +0.8.2 / 2014-08-14 +================== + + * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: dethroy@1.0.2 + +0.8.1 / 2014-08-05 +================== + + * Fix `extensions` behavior when file already has extension + +0.8.0 / 2014-08-05 +================== + + * Add `extensions` option + +0.7.4 / 2014-08-04 +================== + + * Fix serving index files without root dir + +0.7.3 / 2014-07-29 +================== + + * Fix incorrect 403 on Windows and Node.js 0.11 + +0.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +0.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +0.7.0 / 2014-07-20 +================== + + * Deprecate `hidden` option; use `dotfiles` option + * Add `dotfiles` option + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + +0.6.0 / 2014-07-11 +================== + + * Deprecate `from` option; use `root` option + * Deprecate `send.etag()` -- use `etag` in `options` + * Deprecate `send.hidden()` -- use `hidden` in `options` + * Deprecate `send.index()` -- use `index` in `options` + * Deprecate `send.maxage()` -- use `maxAge` in `options` + * Deprecate `send.root()` -- use `root` in `options` + * Cap `maxAge` value to 1 year + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.5.0 / 2014-06-28 +================== + + * Accept string for `maxAge` (converted by `ms`) + * Add `headers` event + * Include link in default redirect response + * Use `EventEmitter.listenerCount` to count listeners + +0.4.3 / 2014-06-11 +================== + + * Do not throw un-catchable error on file open race condition + * Use `escape-html` for HTML escaping + * deps: debug@1.0.2 + - fix some debugging output colors on node.js 0.8 + * deps: finished@1.2.2 + * deps: fresh@0.2.2 + +0.4.2 / 2014-06-09 +================== + + * fix "event emitter leak" warnings + * deps: debug@1.0.1 + * deps: finished@1.2.1 + +0.4.1 / 2014-06-02 +================== + + * Send `max-age` in `Cache-Control` in correct format + +0.4.0 / 2014-05-27 +================== + + * Calculate ETag with md5 for reduced collisions + * Fix wrong behavior when index file matches directory + * Ignore stream errors after request ends + - Goodbye `EBADF, read` + * Skip directories in index file search + * deps: debug@0.8.1 + +0.3.0 / 2014-04-24 +================== + + * Fix sending files with dots without root set + * Coerce option types + * Accept API options in options object + * Set etags to "weak" + * Include file path in etag + * Make "Can't set headers after they are sent." catchable + * Send full entity-body for multi range requests + * Default directory access to 403 when index disabled + * Support multiple index paths + * Support "If-Range" header + * Control whether to generate etags + * deps: mime@1.2.11 + +0.2.0 / 2014-01-29 +================== + + * update range-parser and fresh + +0.1.4 / 2013-08-11 +================== + + * update fresh + +0.1.3 / 2013-07-08 +================== + + * Revert "Fix fd leak" + +0.1.2 / 2013-07-03 +================== + + * Fix fd leak + +0.1.0 / 2012-08-25 +================== + + * add options parameter to send() that is passed to fs.createReadStream() [kanongil] + +0.0.4 / 2012-08-16 +================== + + * allow custom "Accept-Ranges" definition + +0.0.3 / 2012-07-16 +================== + + * fix normalization of the root directory. Closes #3 + +0.0.2 / 2012-07-09 +================== + + * add passing of req explicitly for now (YUCK) + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/send/LICENSE b/node_modules/send/LICENSE new file mode 100644 index 0000000..b6ea1c1 --- /dev/null +++ b/node_modules/send/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/send/README.md b/node_modules/send/README.md new file mode 100644 index 0000000..fadf838 --- /dev/null +++ b/node_modules/send/README.md @@ -0,0 +1,327 @@ +# send + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][github-actions-ci-image]][github-actions-ci-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Send is a library for streaming files from the file system as a http response +supporting partial responses (Ranges), conditional-GET negotiation (If-Match, +If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage, +and granular events which may be leveraged to take appropriate actions in your +application or framework. + +Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install send +``` + +## API + +```js +var send = require('send') +``` + +### send(req, path, [options]) + +Create a new `SendStream` for the given path to send to a `res`. The `req` is +the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, +not the actual file-system path). + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + +Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Send a 403 for any request for a dotfile. + - `'ignore'` Pretend like the dotfile does not exist and 404. + +The default value is _similar_ to `'ignore'`, with the exception that +this default will not ignore the files within a directory that begins +with a dot, for backward-compatibility. + +##### end + +Byte offset at which the stream ends, defaults to the length of the file +minus 1. The end is inclusive in the stream, meaning `end: 3` will include +the 4th byte in the stream. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +If a given file doesn't exist, try appending one of the given extensions, +in the given order. By default, this is disabled (set to `false`). An +example value that will serve extension-less HTML files: `['html', 'htm']`. +This is skipped if the requested file already has an extension. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default send supports "index.html" files, to disable this +set `false` or to supply a new index pass a string or an array +in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. +This can also be a string accepted by the +[ms](https://www.npmjs.org/package/ms#readme) module. + +##### root + +Serve files relative to `path`. + +##### start + +Byte offset at which the stream starts, defaults to 0. The start is inclusive, +meaning `start: 2` will include the 3rd byte in the stream. + +#### Events + +The `SendStream` is an event emitter and will emit the following events: + + - `error` an error occurred `(err)` + - `directory` a directory was requested `(res, path)` + - `file` a file was requested `(path, stat)` + - `headers` the headers are about to be set on a file `(res, path, stat)` + - `stream` file streaming has started `(stream)` + - `end` streaming has completed + +#### .pipe + +The `pipe` method is used to pipe the response into the Node.js HTTP response +object, typically `send(req, path, options).pipe(res)`. + +### .mime + +The `mime` export is the global instance of of the +[`mime` npm module](https://www.npmjs.com/package/mime). + +This is used to configure the MIME types that are associated with file extensions +as well as other options for how to resolve the MIME type of a file (like the +default type to use for an unknown file extension). + +## Error-handling + +By default when no `error` listeners are present an automatic response will be +made, otherwise you have full control over the response, aka you may show a 5xx +page etc. + +## Caching + +It does _not_ perform internal caching, you should use a reverse proxy cache +such as Varnish for this, or those fancy things called CDNs. If your +application is small enough that it would benefit from single-node memory +caching, it's small enough that it does not need caching at all ;). + +## Debugging + +To enable `debug()` instrumentation output export __DEBUG__: + +``` +$ DEBUG=send node app +``` + +## Running tests + +``` +$ npm install +$ npm test +``` + +## Examples + +### Serve a specific file + +This simple example will send a specific file to all requests. + +```js +var http = require('http') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, '/path/to/index.html') + .pipe(res) +}) + +server.listen(3000) +``` + +### Serve all files from a directory + +This simple example will just serve up all the files in a +given directory as the top-level. For example, a request +`GET /foo.txt` will send back `/www/public/foo.txt`. + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom file types + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +// Default unknown types to text/plain +send.mime.default_type = 'text/plain' + +// Add a custom type +send.mime.define({ + 'application/x-my-type': ['x-mt', 'x-mtt'] +}) + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom directory index view + +This is a example of serving up a structure of directories with a +custom function to render a listing of a directory. + +```js +var http = require('http') +var fs = require('fs') +var parseUrl = require('parseurl') +var send = require('send') + +// Transfer arbitrary files from within /www/example.com/public/* +// with a custom handler for directory listing +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { index: false, root: '/www/public' }) + .once('directory', directory) + .pipe(res) +}) + +server.listen(3000) + +// Custom directory handler +function directory (res, path) { + var stream = this + + // redirect to trailing slash for consistent url + if (!stream.hasTrailingSlash()) { + return stream.redirect(path) + } + + // get directory list + fs.readdir(path, function onReaddir (err, list) { + if (err) return stream.error(err) + + // render an index for the directory + res.setHeader('Content-Type', 'text/plain; charset=UTF-8') + res.end(list.join('\n') + '\n') + }) +} +``` + +### Serving from a root directory with custom error-handling + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + // your custom error-handling logic: + function error (err) { + res.statusCode = err.status || 500 + res.end(err.message) + } + + // your custom headers + function headers (res, path, stat) { + // serve all files for download + res.setHeader('Content-Disposition', 'attachment') + } + + // your custom directory handling logic: + function redirect () { + res.statusCode = 301 + res.setHeader('Location', req.url + '/') + res.end('Redirecting to ' + req.url + '/') + } + + // transfer arbitrary files from within + // /www/example.com/public/* + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .on('error', error) + .on('directory', redirect) + .on('headers', headers) + .pipe(res) +}) + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/send/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/send/master +[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/pillarjs/send/master?label=linux +[github-actions-ci-url]: https://github.com/pillarjs/send/actions/workflows/ci.yml +[node-image]: https://badgen.net/npm/node/send +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/send +[npm-url]: https://npmjs.org/package/send +[npm-version-image]: https://badgen.net/npm/v/send diff --git a/node_modules/send/SECURITY.md b/node_modules/send/SECURITY.md new file mode 100644 index 0000000..46b48f7 --- /dev/null +++ b/node_modules/send/SECURITY.md @@ -0,0 +1,24 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `send` team and community take all security bugs seriously. Thank you +for improving the security of Express. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `send`. This information +can be found in the npm registry using the command `npm owner ls send`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/pillarjs/send/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/send/index.js b/node_modules/send/index.js new file mode 100644 index 0000000..768f8ca --- /dev/null +++ b/node_modules/send/index.js @@ -0,0 +1,1142 @@ +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('send') +var deprecate = require('depd')('send') +var destroy = require('destroy') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var etag = require('etag') +var fresh = require('fresh') +var fs = require('fs') +var mime = require('mime') +var ms = require('ms') +var onFinished = require('on-finished') +var parseRange = require('range-parser') +var path = require('path') +var statuses = require('statuses') +var Stream = require('stream') +var util = require('util') + +/** + * Path function references. + * @private + */ + +var extname = path.extname +var join = path.join +var normalize = path.normalize +var resolve = path.resolve +var sep = path.sep + +/** + * Regular expression for identifying a bytes Range header. + * @private + */ + +var BYTES_RANGE_REGEXP = /^ *bytes=/ + +/** + * Maximum value allowed for the max age. + * @private + */ + +var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year + +/** + * Regular expression to match a path with a directory up component. + * @private + */ + +var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = send +module.exports.mime = mime + +/** + * Return a `SendStream` for `req` and `path`. + * + * @param {object} req + * @param {string} path + * @param {object} [options] + * @return {SendStream} + * @public + */ + +function send (req, path, options) { + return new SendStream(req, path, options) +} + +/** + * Initialize a `SendStream` with the given `path`. + * + * @param {Request} req + * @param {String} path + * @param {object} [options] + * @private + */ + +function SendStream (req, path, options) { + Stream.call(this) + + var opts = options || {} + + this.options = opts + this.path = path + this.req = req + + this._acceptRanges = opts.acceptRanges !== undefined + ? Boolean(opts.acceptRanges) + : true + + this._cacheControl = opts.cacheControl !== undefined + ? Boolean(opts.cacheControl) + : true + + this._etag = opts.etag !== undefined + ? Boolean(opts.etag) + : true + + this._dotfiles = opts.dotfiles !== undefined + ? opts.dotfiles + : 'ignore' + + if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') + } + + this._hidden = Boolean(opts.hidden) + + if (opts.hidden !== undefined) { + deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') + } + + // legacy support + if (opts.dotfiles === undefined) { + this._dotfiles = undefined + } + + this._extensions = opts.extensions !== undefined + ? normalizeList(opts.extensions, 'extensions option') + : [] + + this._immutable = opts.immutable !== undefined + ? Boolean(opts.immutable) + : false + + this._index = opts.index !== undefined + ? normalizeList(opts.index, 'index option') + : ['index.html'] + + this._lastModified = opts.lastModified !== undefined + ? Boolean(opts.lastModified) + : true + + this._maxage = opts.maxAge || opts.maxage + this._maxage = typeof this._maxage === 'string' + ? ms(this._maxage) + : Number(this._maxage) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + + this._root = opts.root + ? resolve(opts.root) + : null + + if (!this._root && opts.from) { + this.from(opts.from) + } +} + +/** + * Inherits from `Stream`. + */ + +util.inherits(SendStream, Stream) + +/** + * Enable or disable etag generation. + * + * @param {Boolean} val + * @return {SendStream} + * @api public + */ + +SendStream.prototype.etag = deprecate.function(function etag (val) { + this._etag = Boolean(val) + debug('etag %s', this._etag) + return this +}, 'send.etag: pass etag as option') + +/** + * Enable or disable "hidden" (dot) files. + * + * @param {Boolean} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.hidden = deprecate.function(function hidden (val) { + this._hidden = Boolean(val) + this._dotfiles = undefined + debug('hidden %s', this._hidden) + return this +}, 'send.hidden: use dotfiles option') + +/** + * Set index `paths`, set to a falsy + * value to disable index support. + * + * @param {String|Boolean|Array} paths + * @return {SendStream} + * @api public + */ + +SendStream.prototype.index = deprecate.function(function index (paths) { + var index = !paths ? [] : normalizeList(paths, 'paths argument') + debug('index %o', paths) + this._index = index + return this +}, 'send.index: pass index as option') + +/** + * Set root `path`. + * + * @param {String} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.root = function root (path) { + this._root = resolve(String(path)) + debug('root %s', this._root) + return this +} + +SendStream.prototype.from = deprecate.function(SendStream.prototype.root, + 'send.from: pass root as option') + +SendStream.prototype.root = deprecate.function(SendStream.prototype.root, + 'send.root: pass root as option') + +/** + * Set max-age to `maxAge`. + * + * @param {Number} maxAge + * @return {SendStream} + * @api public + */ + +SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) { + this._maxage = typeof maxAge === 'string' + ? ms(maxAge) + : Number(maxAge) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + debug('max-age %d', this._maxage) + return this +}, 'send.maxage: pass maxAge as option') + +/** + * Emit error with `status`. + * + * @param {number} status + * @param {Error} [err] + * @private + */ + +SendStream.prototype.error = function error (status, err) { + // emit if listeners instead of responding + if (hasListeners(this, 'error')) { + return this.emit('error', createHttpError(status, err)) + } + + var res = this.res + var msg = statuses.message[status] || String(status) + var doc = createHtmlDocument('Error', escapeHtml(msg)) + + // clear existing headers + clearHeaders(res) + + // add error headers + if (err && err.headers) { + setHeaders(res, err.headers) + } + + // send basic response + res.statusCode = status + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.end(doc) +} + +/** + * Check if the pathname ends with "/". + * + * @return {boolean} + * @private + */ + +SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () { + return this.path[this.path.length - 1] === '/' +} + +/** + * Check if this is a conditional GET request. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isConditionalGET = function isConditionalGET () { + return this.req.headers['if-match'] || + this.req.headers['if-unmodified-since'] || + this.req.headers['if-none-match'] || + this.req.headers['if-modified-since'] +} + +/** + * Check if the request preconditions failed. + * + * @return {boolean} + * @private + */ + +SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () { + var req = this.req + var res = this.res + + // if-match + var match = req.headers['if-match'] + if (match) { + var etag = res.getHeader('ETag') + return !etag || (match !== '*' && parseTokenList(match).every(function (match) { + return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag + })) + } + + // if-unmodified-since + var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since']) + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader('Last-Modified')) + return isNaN(lastModified) || lastModified > unmodifiedSince + } + + return false +} + +/** + * Strip various content header fields for a change in entity. + * + * @private + */ + +SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () { + var res = this.res + + res.removeHeader('Content-Encoding') + res.removeHeader('Content-Language') + res.removeHeader('Content-Length') + res.removeHeader('Content-Range') + res.removeHeader('Content-Type') +} + +/** + * Respond with 304 not modified. + * + * @api private + */ + +SendStream.prototype.notModified = function notModified () { + var res = this.res + debug('not modified') + this.removeContentHeaderFields() + res.statusCode = 304 + res.end() +} + +/** + * Raise error that headers already sent. + * + * @api private + */ + +SendStream.prototype.headersAlreadySent = function headersAlreadySent () { + var err = new Error('Can\'t set headers after they are sent.') + debug('headers already sent') + this.error(500, err) +} + +/** + * Check if the request is cacheable, aka + * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isCachable = function isCachable () { + var statusCode = this.res.statusCode + return (statusCode >= 200 && statusCode < 300) || + statusCode === 304 +} + +/** + * Handle stat() error. + * + * @param {Error} error + * @private + */ + +SendStream.prototype.onStatError = function onStatError (error) { + switch (error.code) { + case 'ENAMETOOLONG': + case 'ENOENT': + case 'ENOTDIR': + this.error(404, error) + break + default: + this.error(500, error) + break + } +} + +/** + * Check if the cache is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isFresh = function isFresh () { + return fresh(this.req.headers, { + etag: this.res.getHeader('ETag'), + 'last-modified': this.res.getHeader('Last-Modified') + }) +} + +/** + * Check if the range is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isRangeFresh = function isRangeFresh () { + var ifRange = this.req.headers['if-range'] + + if (!ifRange) { + return true + } + + // if-range as etag + if (ifRange.indexOf('"') !== -1) { + var etag = this.res.getHeader('ETag') + return Boolean(etag && ifRange.indexOf(etag) !== -1) + } + + // if-range as modified date + var lastModified = this.res.getHeader('Last-Modified') + return parseHttpDate(lastModified) <= parseHttpDate(ifRange) +} + +/** + * Redirect to path. + * + * @param {string} path + * @private + */ + +SendStream.prototype.redirect = function redirect (path) { + var res = this.res + + if (hasListeners(this, 'directory')) { + this.emit('directory', res, path) + return + } + + if (this.hasTrailingSlash()) { + this.error(403) + return + } + + var loc = encodeUrl(collapseLeadingSlashes(this.path + '/')) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + escapeHtml(loc)) + + // redirect + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) +} + +/** + * Pipe to `res. + * + * @param {Stream} res + * @return {Stream} res + * @api public + */ + +SendStream.prototype.pipe = function pipe (res) { + // root path + var root = this._root + + // references + this.res = res + + // decode the path + var path = decode(this.path) + if (path === -1) { + this.error(400) + return res + } + + // null byte(s) + if (~path.indexOf('\0')) { + this.error(400) + return res + } + + var parts + if (root !== null) { + // normalize + if (path) { + path = normalize('.' + sep + path) + } + + // malicious path + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = path.split(sep) + + // join / normalize from optional root dir + path = normalize(join(root, path)) + } else { + // ".." is malicious without "root" + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = normalize(path).split(sep) + + // resolve the path + path = resolve(path) + } + + // dotfile handling + if (containsDotFile(parts)) { + var access = this._dotfiles + + // legacy support + if (access === undefined) { + access = parts[parts.length - 1][0] === '.' + ? (this._hidden ? 'allow' : 'ignore') + : 'allow' + } + + debug('%s dotfile "%s"', access, path) + switch (access) { + case 'allow': + break + case 'deny': + this.error(403) + return res + case 'ignore': + default: + this.error(404) + return res + } + } + + // index file support + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path) + return res + } + + this.sendFile(path) + return res +} + +/** + * Transfer `path`. + * + * @param {String} path + * @api public + */ + +SendStream.prototype.send = function send (path, stat) { + var len = stat.size + var options = this.options + var opts = {} + var res = this.res + var req = this.req + var ranges = req.headers.range + var offset = options.start || 0 + + if (headersSent(res)) { + // impossible to send now + this.headersAlreadySent() + return + } + + debug('pipe "%s"', path) + + // set header fields + this.setHeader(path, stat) + + // set content-type + this.type(path) + + // conditional GET support + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412) + return + } + + if (this.isCachable() && this.isFresh()) { + this.notModified() + return + } + } + + // adjust len to start/end options + len = Math.max(0, len - offset) + if (options.end !== undefined) { + var bytes = options.end - offset + 1 + if (len > bytes) len = bytes + } + + // Range support + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + // parse + ranges = parseRange(len, ranges, { + combine: true + }) + + // If-Range support + if (!this.isRangeFresh()) { + debug('range stale') + ranges = -2 + } + + // unsatisfiable + if (ranges === -1) { + debug('range unsatisfiable') + + // Content-Range + res.setHeader('Content-Range', contentRange('bytes', len)) + + // 416 Requested Range Not Satisfiable + return this.error(416, { + headers: { 'Content-Range': res.getHeader('Content-Range') } + }) + } + + // valid (syntactically invalid/multiple ranges are treated as a regular response) + if (ranges !== -2 && ranges.length === 1) { + debug('range %j', ranges) + + // Content-Range + res.statusCode = 206 + res.setHeader('Content-Range', contentRange('bytes', len, ranges[0])) + + // adjust for requested range + offset += ranges[0].start + len = ranges[0].end - ranges[0].start + 1 + } + } + + // clone options + for (var prop in options) { + opts[prop] = options[prop] + } + + // set read options + opts.start = offset + opts.end = Math.max(offset, offset + len - 1) + + // content-length + res.setHeader('Content-Length', len) + + // HEAD support + if (req.method === 'HEAD') { + res.end() + return + } + + this.stream(path, opts) +} + +/** + * Transfer file for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendFile = function sendFile (path) { + var i = 0 + var self = this + + debug('stat "%s"', path) + fs.stat(path, function onstat (err, stat) { + if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) { + // not found, check extensions + return next(err) + } + if (err) return self.onStatError(err) + if (stat.isDirectory()) return self.redirect(path) + self.emit('file', path, stat) + self.send(path, stat) + }) + + function next (err) { + if (self._extensions.length <= i) { + return err + ? self.onStatError(err) + : self.error(404) + } + + var p = path + '.' + self._extensions[i++] + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } +} + +/** + * Transfer index for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendIndex = function sendIndex (path) { + var i = -1 + var self = this + + function next (err) { + if (++i >= self._index.length) { + if (err) return self.onStatError(err) + return self.error(404) + } + + var p = join(path, self._index[i]) + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } + + next() +} + +/** + * Stream `path` to the response. + * + * @param {String} path + * @param {Object} options + * @api private + */ + +SendStream.prototype.stream = function stream (path, options) { + var self = this + var res = this.res + + // pipe + var stream = fs.createReadStream(path, options) + this.emit('stream', stream) + stream.pipe(res) + + // cleanup + function cleanup () { + destroy(stream, true) + } + + // response finished, cleanup + onFinished(res, cleanup) + + // error handling + stream.on('error', function onerror (err) { + // clean up stream early + cleanup() + + // error + self.onStatError(err) + }) + + // end + stream.on('end', function onend () { + self.emit('end') + }) +} + +/** + * Set content-type based on `path` + * if it hasn't been explicitly set. + * + * @param {String} path + * @api private + */ + +SendStream.prototype.type = function type (path) { + var res = this.res + + if (res.getHeader('Content-Type')) return + + var type = mime.lookup(path) + + if (!type) { + debug('no content-type') + return + } + + var charset = mime.charsets.lookup(type) + + debug('content-type %s', type) + res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')) +} + +/** + * Set response header fields, most + * fields may be pre-defined. + * + * @param {String} path + * @param {Object} stat + * @api private + */ + +SendStream.prototype.setHeader = function setHeader (path, stat) { + var res = this.res + + this.emit('headers', res, path, stat) + + if (this._acceptRanges && !res.getHeader('Accept-Ranges')) { + debug('accept ranges') + res.setHeader('Accept-Ranges', 'bytes') + } + + if (this._cacheControl && !res.getHeader('Cache-Control')) { + var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000) + + if (this._immutable) { + cacheControl += ', immutable' + } + + debug('cache-control %s', cacheControl) + res.setHeader('Cache-Control', cacheControl) + } + + if (this._lastModified && !res.getHeader('Last-Modified')) { + var modified = stat.mtime.toUTCString() + debug('modified %s', modified) + res.setHeader('Last-Modified', modified) + } + + if (this._etag && !res.getHeader('ETag')) { + var val = etag(stat) + debug('etag %s', val) + res.setHeader('ETag', val) + } +} + +/** + * Clear all headers from a response. + * + * @param {object} res + * @private + */ + +function clearHeaders (res) { + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + res.removeHeader(headers[i]) + } +} + +/** + * Collapse all leading slashes into a single slash + * + * @param {string} str + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== '/') { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Determine if path parts contain a dotfile. + * + * @api private + */ + +function containsDotFile (parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i] + if (part.length > 1 && part[0] === '.') { + return true + } + } + + return false +} + +/** + * Create a Content-Range header. + * + * @param {string} type + * @param {number} size + * @param {array} [range] + */ + +function contentRange (type, size, range) { + return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * Create a HttpError object from simple arguments. + * + * @param {number} status + * @param {Error|object} err + * @private + */ + +function createHttpError (status, err) { + if (!err) { + return createError(status) + } + + return err instanceof Error + ? createError(status, err, { expose: false }) + : createError(status, err) +} + +/** + * decodeURIComponent. + * + * Allows V8 to only deoptimize this fn instead of all + * of send(). + * + * @param {String} path + * @api private + */ + +function decode (path) { + try { + return decodeURIComponent(path) + } catch (err) { + return -1 + } +} + +/** + * Get the header names on a respnse. + * + * @param {object} res + * @returns {array[string]} + * @private + */ + +function getHeaderNames (res) { + return typeof res.getHeaderNames !== 'function' + ? Object.keys(res._headers || {}) + : res.getHeaderNames() +} + +/** + * Determine if emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function hasListeners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Normalize the index option into an array. + * + * @param {boolean|string|array} val + * @param {string} name + * @private + */ + +function normalizeList (val, name) { + var list = [].concat(val || []) + + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== 'string') { + throw new TypeError(name + ' must be array of strings or false') + } + } + + return list +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + if (start !== end) { + list.push(str.substring(start, end)) + } + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + if (start !== end) { + list.push(str.substring(start, end)) + } + + return list +} + +/** + * Set an object of headers on a response. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + var keys = Object.keys(headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git a/node_modules/send/node_modules/encodeurl/HISTORY.md b/node_modules/send/node_modules/encodeurl/HISTORY.md new file mode 100644 index 0000000..41313b2 --- /dev/null +++ b/node_modules/send/node_modules/encodeurl/HISTORY.md @@ -0,0 +1,14 @@ +1.0.2 / 2018-01-21 +================== + + * Fix encoding `%` as last character + +1.0.1 / 2016-06-09 +================== + + * Fix encoding unpaired surrogates at start/end of string + +1.0.0 / 2016-06-08 +================== + + * Initial release diff --git a/node_modules/send/node_modules/encodeurl/LICENSE b/node_modules/send/node_modules/encodeurl/LICENSE new file mode 100644 index 0000000..8812229 --- /dev/null +++ b/node_modules/send/node_modules/encodeurl/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/send/node_modules/encodeurl/README.md b/node_modules/send/node_modules/encodeurl/README.md new file mode 100644 index 0000000..127c5a0 --- /dev/null +++ b/node_modules/send/node_modules/encodeurl/README.md @@ -0,0 +1,128 @@ +# encodeurl + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Encode a URL to a percent-encoded form, excluding already-encoded sequences + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install encodeurl +``` + +## API + +```js +var encodeUrl = require('encodeurl') +``` + +### encodeUrl(url) + +Encode a URL to a percent-encoded form, excluding already-encoded sequences. + +This function will take an already-encoded URL and encode all the non-URL +code points (as UTF-8 byte sequences). This function will not encode the +"%" character unless it is not part of a valid sequence (`%20` will be +left as-is, but `%foo` will be encoded as `%25foo`). + +This encode is meant to be "safe" and does not throw errors. It will try as +hard as it can to properly encode the given URL, including replacing any raw, +unpaired surrogate pairs with the Unicode replacement character prior to +encoding. + +This function is _similar_ to the intrinsic function `encodeURI`, except it +will not encode the `%` character if that is part of a valid sequence, will +not encode `[` and `]` (for IPv6 hostnames) and will replace raw, unpaired +surrogate pairs with the Unicode replacement character (instead of throwing). + +## Examples + +### Encode a URL containing user-controled data + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') + +http.createServer(function onRequest (req, res) { + // get encoded form of inbound url + var url = encodeUrl(req.url) + + // create html message + var body = '

Location ' + escapeHtml(url) + ' not found

' + + // send a 404 + res.statusCode = 404 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.end(body, 'utf-8') +}) +``` + +### Encode a URL for use in a header field + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var url = require('url') + +http.createServer(function onRequest (req, res) { + // parse inbound url + var href = url.parse(req) + + // set new host for redirect + href.host = 'localhost' + href.protocol = 'https:' + href.slashes = true + + // create location header + var location = encodeUrl(url.format(href)) + + // create html message + var body = '

Redirecting to new site: ' + escapeHtml(location) + '

' + + // send a 301 + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.setHeader('Location', location) + res.end(body, 'utf-8') +}) +``` + +## Testing + +```sh +$ npm test +$ npm run lint +``` + +## References + +- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax][rfc-3986] +- [WHATWG URL Living Standard][whatwg-url] + +[rfc-3986]: https://tools.ietf.org/html/rfc3986 +[whatwg-url]: https://url.spec.whatwg.org/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/encodeurl.svg +[npm-url]: https://npmjs.org/package/encodeurl +[node-version-image]: https://img.shields.io/node/v/encodeurl.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/pillarjs/encodeurl.svg +[travis-url]: https://travis-ci.org/pillarjs/encodeurl +[coveralls-image]: https://img.shields.io/coveralls/pillarjs/encodeurl.svg +[coveralls-url]: https://coveralls.io/r/pillarjs/encodeurl?branch=master +[downloads-image]: https://img.shields.io/npm/dm/encodeurl.svg +[downloads-url]: https://npmjs.org/package/encodeurl diff --git a/node_modules/send/node_modules/encodeurl/index.js b/node_modules/send/node_modules/encodeurl/index.js new file mode 100644 index 0000000..fc4906c --- /dev/null +++ b/node_modules/send/node_modules/encodeurl/index.js @@ -0,0 +1,60 @@ +/*! + * encodeurl + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = encodeUrl + +/** + * RegExp to match non-URL code points, *after* encoding (i.e. not including "%") + * and including invalid escape sequences. + * @private + */ + +var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g + +/** + * RegExp to match unmatched surrogate pair. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g + +/** + * String to replace unmatched surrogate pair with. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2' + +/** + * Encode a URL to a percent-encoded form, excluding already-encoded sequences. + * + * This function will take an already-encoded URL and encode all the non-URL + * code points. This function will not encode the "%" character unless it is + * not part of a valid sequence (`%20` will be left as-is, but `%foo` will + * be encoded as `%25foo`). + * + * This encode is meant to be "safe" and does not throw errors. It will try as + * hard as it can to properly encode the given URL, including replacing any raw, + * unpaired surrogate pairs with the Unicode replacement character prior to + * encoding. + * + * @param {string} url + * @return {string} + * @public + */ + +function encodeUrl (url) { + return String(url) + .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE) + .replace(ENCODE_CHARS_REGEXP, encodeURI) +} diff --git a/node_modules/send/node_modules/encodeurl/package.json b/node_modules/send/node_modules/encodeurl/package.json new file mode 100644 index 0000000..b9f25ef --- /dev/null +++ b/node_modules/send/node_modules/encodeurl/package.json @@ -0,0 +1,40 @@ +{ + "name": "encodeurl", + "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", + "version": "1.0.2", + "contributors": [ + "Douglas Christopher Wilson " + ], + "license": "MIT", + "keywords": [ + "encode", + "encodeurl", + "url" + ], + "repository": "pillarjs/encodeurl", + "devDependencies": { + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.8.0", + "eslint-plugin-node": "5.2.1", + "eslint-plugin-promise": "3.6.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "2.5.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/send/node_modules/ms/index.js b/node_modules/send/node_modules/ms/index.js new file mode 100644 index 0000000..ea734fb --- /dev/null +++ b/node_modules/send/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/send/node_modules/ms/license.md b/node_modules/send/node_modules/ms/license.md new file mode 100644 index 0000000..fa5d39b --- /dev/null +++ b/node_modules/send/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Vercel, Inc. + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/send/node_modules/ms/package.json b/node_modules/send/node_modules/ms/package.json new file mode 100644 index 0000000..4997189 --- /dev/null +++ b/node_modules/send/node_modules/ms/package.json @@ -0,0 +1,38 @@ +{ + "name": "ms", + "version": "2.1.3", + "description": "Tiny millisecond conversion utility", + "repository": "vercel/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.18.2", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1", + "prettier": "2.0.5" + } +} diff --git a/node_modules/send/node_modules/ms/readme.md b/node_modules/send/node_modules/ms/readme.md new file mode 100644 index 0000000..0fc1abb --- /dev/null +++ b/node_modules/send/node_modules/ms/readme.md @@ -0,0 +1,59 @@ +# ms + +![CI](https://github.com/vercel/ms/workflows/CI/badge.svg) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/send/package.json b/node_modules/send/package.json new file mode 100644 index 0000000..a3233e0 --- /dev/null +++ b/node_modules/send/package.json @@ -0,0 +1,62 @@ +{ + "name": "send", + "description": "Better streaming static file server with Range and conditional-GET support", + "version": "0.19.0", + "author": "TJ Holowaychuk ", + "contributors": [ + "Douglas Christopher Wilson ", + "James Wyatt Cready ", + "Jesús Leganés Combarro " + ], + "license": "MIT", + "repository": "pillarjs/send", + "keywords": [ + "static", + "file", + "server" + ], + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "devDependencies": { + "after": "0.8.2", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0", + "supertest": "6.2.2" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "SECURITY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8.0" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec --bail", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/serve-static/HISTORY.md b/node_modules/serve-static/HISTORY.md new file mode 100644 index 0000000..dccf667 --- /dev/null +++ b/node_modules/serve-static/HISTORY.md @@ -0,0 +1,487 @@ +1.16.2 / 2024-09-11 +=================== + +* deps: encodeurl@~2.0.0 + +1.16.1 / 2024-09-11 +=================== + +* deps: send@0.19.0 + +1.16.0 / 2024-09-10 +=================== + +* Remove link renderization in html while redirecting + + +1.15.0 / 2022-03-24 +=================== + + * deps: send@0.18.0 + - Fix emitted 416 error missing headers property + - Limit the headers removed for 304 response + - deps: depd@2.0.0 + - deps: destroy@1.2.0 + - deps: http-errors@2.0.0 + - deps: on-finished@2.4.1 + - deps: statuses@2.0.1 + +1.14.2 / 2021-12-15 +=================== + + * deps: send@0.17.2 + - deps: http-errors@1.8.1 + - deps: ms@2.1.3 + - pref: ignore empty http tokens + +1.14.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect response + * deps: send@0.17.1 + - deps: range-parser@~1.2.1 + +1.14.0 / 2019-05-07 +=================== + + * deps: parseurl@~1.3.3 + * deps: send@0.17.0 + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + +1.13.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in redirects + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: send@0.16.2 + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + +1.13.1 / 2017-09-29 +=================== + + * Fix regression when `root` is incorrectly set to a file + * deps: send@0.16.1 + +1.13.0 / 2017-09-27 +=================== + + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + +1.12.6 / 2017-09-22 +=================== + + * deps: send@0.15.6 + - deps: debug@2.6.9 + - perf: improve `If-Match` token parsing + * perf: improve slash collapsing + +1.12.5 / 2017-09-21 +=================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: send@0.15.5 + - Fix handling of modified headers with invalid dates + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + +1.12.4 / 2017-08-05 +=================== + + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + +1.12.3 / 2017-05-16 +=================== + + * deps: send@0.15.3 + - deps: debug@2.6.7 + +1.12.2 / 2017-04-26 +=================== + + * deps: send@0.15.2 + - deps: debug@2.6.4 + +1.12.1 / 2017-03-04 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + +1.12.0 / 2017-02-25 +=================== + + * Send complete HTML document in redirect response + * Set default CSP header in redirect response + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + +1.11.2 / 2017-01-23 +=================== + + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + +1.11.1 / 2016-06-10 +=================== + + * Fix redirect error when `req.url` contains raw non-URL characters + * deps: send@0.14.1 + +1.11.0 / 2016-06-07 +=================== + + * Use status code 301 for redirects + * deps: send@0.14.0 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + +1.10.3 / 2016-05-30 +=================== + + * deps: send@0.13.2 + - Fix invalid `Content-Type` header when `send.mime.default_type` unset + +1.10.2 / 2016-01-19 +=================== + + * deps: parseurl@~1.3.1 + - perf: enable strict mode + +1.10.1 / 2016-01-16 +=================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + +1.10.0 / 2015-06-17 +=================== + + * Add `fallthrough` option + - Allows declaring this middleware is the final destination + - Provides better integration with Express patterns + * Fix reading options from options prototype + * Improve the default redirect response headers + * deps: escape-html@1.0.2 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * perf: enable strict mode + * perf: remove argument reassignment + +1.9.3 / 2015-05-14 +================== + + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +1.9.2 / 2015-03-14 +================== + + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +1.9.1 / 2015-02-17 +================== + + * deps: send@0.12.1 + - Fix regression sending zero-length files + +1.9.0 / 2015-02-16 +================== + + * deps: send@0.12.0 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +1.8.1 / 2015-01-20 +================== + + * Fix redirect loop in Node.js 0.11.14 + * deps: send@0.11.1 + - Fix root path disclosure + +1.8.0 / 2015-01-05 +================== + + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +1.7.2 / 2015-01-02 +================== + + * Fix potential open redirect when mounted at root + +1.7.1 / 2014-10-22 +================== + + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +1.7.0 / 2014-10-15 +================== + + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +1.6.5 / 2015-02-04 +================== + + * Fix potential open redirect when mounted at root + - Back-ported from v1.7.2 + +1.6.4 / 2014-10-08 +================== + + * Fix redirect loop when index file serving disabled + +1.6.3 / 2014-09-24 +================== + + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +1.6.2 / 2014-09-15 +================== + + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +1.6.1 / 2014-09-07 +================== + + * deps: send@0.9.1 + - deps: fresh@0.2.4 + +1.6.0 / 2014-09-07 +================== + + * deps: send@0.9.0 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + +1.5.4 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +1.5.3 / 2014-08-17 +================== + + * deps: send@0.8.3 + +1.5.2 / 2014-08-14 +================== + + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +1.5.1 / 2014-08-09 +================== + + * Fix parsing of weird `req.originalUrl` values + * deps: parseurl@~1.3.0 + * deps: utils-merge@1.0.0 + +1.5.0 / 2014-08-05 +================== + + * deps: send@0.8.1 + - Add `extensions` option + +1.4.4 / 2014-08-04 +================== + + * deps: send@0.7.4 + - Fix serving index files without root dir + +1.4.3 / 2014-07-29 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + +1.4.2 / 2014-07-27 +================== + + * deps: send@0.7.2 + - deps: depd@0.4.4 + +1.4.1 / 2014-07-26 +================== + + * deps: send@0.7.1 + - deps: depd@0.4.3 + +1.4.0 / 2014-07-21 +================== + + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +1.3.2 / 2014-07-11 +================== + + * deps: send@0.6.0 + - Cap `maxAge` value to 1 year + - deps: debug@1.0.3 + +1.3.1 / 2014-07-09 +================== + + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +1.3.0 / 2014-06-28 +================== + + * Add `setHeaders` option + * Include HTML link in redirect response + * deps: send@0.5.0 + - Accept string for `maxAge` (converted by `ms`) + +1.2.3 / 2014-06-11 +================== + + * deps: send@0.4.3 + - Do not throw un-catchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +1.2.2 / 2014-06-09 +================== + + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + +1.2.1 / 2014-06-02 +================== + + * use `escape-html` for escaping + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +1.2.0 / 2014-05-29 +================== + + * deps: send@0.4.0 + - Calculate ETag with md5 for reduced collisions + - Fix wrong behavior when index file matches directory + - Ignore stream errors after request ends + - Skip directories in index file search + - deps: debug@0.8.1 + +1.1.0 / 2014-04-24 +================== + + * Accept options directly to `send` module + * deps: send@0.3.0 + +1.0.4 / 2014-04-07 +================== + + * Resolve relative paths at middleware setup + * Use parseurl to parse the URL from request + +1.0.3 / 2014-03-20 +================== + + * Do not rely on connect-like environments + +1.0.2 / 2014-03-06 +================== + + * deps: send@0.2.0 + +1.0.1 / 2014-03-05 +================== + + * Add mime export for back-compat + +1.0.0 / 2014-03-05 +================== + + * Genesis from `connect` diff --git a/node_modules/serve-static/LICENSE b/node_modules/serve-static/LICENSE new file mode 100644 index 0000000..cbe62e8 --- /dev/null +++ b/node_modules/serve-static/LICENSE @@ -0,0 +1,25 @@ +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/serve-static/README.md b/node_modules/serve-static/README.md new file mode 100644 index 0000000..262d944 --- /dev/null +++ b/node_modules/serve-static/README.md @@ -0,0 +1,257 @@ +# serve-static + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][github-actions-ci-image]][github-actions-ci-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install serve-static +``` + +## API + +```js +var serveStatic = require('serve-static') +``` + +### serveStatic(root, options) + +Create a new middleware function to serve files from within a given root +directory. The file to serve will be determined by combining `req.url` +with the provided root directory. When a file is not found, instead of +sending a 404 response, this module will instead call `next()` to move on +to the next middleware, allowing for stacking and fall-backs. + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + + Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Deny a request for a dotfile and 403/`next()`. + - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`. + +The default value is similar to `'ignore'`, with the exception that this +default will not ignore the files within a directory that begins with a dot. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +Set file extension fallbacks. When set, if a file is not found, the given +extensions will be added to the file name and search for. The first that +exists will be served. Example: `['html', 'htm']`. + +The default value is `false`. + +##### fallthrough + +Set the middleware to have client errors fall-through as just unhandled +requests, otherwise forward a client error. The difference is that client +errors like a bad request or a request to a non-existent file will cause +this middleware to simply `next()` to your next middleware when this value +is `true`. When this value is `false`, these errors (even 404s), will invoke +`next(err)`. + +Typically `true` is desired such that multiple physical directories can be +mapped to the same web address or for routes to fill in non-existent files. + +The value `false` can be used if this middleware is mounted at a path that +is designed to be strictly a single file system directory, which allows for +short-circuiting 404s for less overhead. This middleware will also reply to +all methods. + +The default value is `true`. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default this module will send "index.html" files in response to a request +on a directory. To disable this set `false` or to supply a new index pass a +string or an array in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. This +can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme) +module. + +##### redirect + +Redirect to trailing "/" when the pathname is a dir. Defaults to `true`. + +##### setHeaders + +Function to set custom headers on response. Alterations to the headers need to +occur synchronously. The function is called as `fn(res, path, stat)`, where +the arguments are: + + - `res` the response object + - `path` the file path that is being sent + - `stat` the stat object of the file that is being sent + +## Examples + +### Serve files with vanilla node.js http server + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { index: ['index.html', 'index.htm'] }) + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serve all files as downloads + +```js +var contentDisposition = require('content-disposition') +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { + index: false, + setHeaders: setHeaders +}) + +// Set header to force download +function setHeaders (res, path) { + res.setHeader('Content-Disposition', contentDisposition(path)) +} + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serving using express + +#### Simple + +This is a simple example of using Express. + +```js +var express = require('express') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic('public/ftp', { index: ['default.html', 'default.htm'] })) +app.listen(3000) +``` + +#### Multiple roots + +This example shows a simple way to search through multiple directories. +Files are searched for in `public-optimized/` first, then `public/` second +as a fallback. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public-optimized'))) +app.use(serveStatic(path.join(__dirname, 'public'))) +app.listen(3000) +``` + +#### Different settings for paths + +This example shows how to set a different max age depending on the served +file type. In this example, HTML files are not cached, while everything else +is for 1 day. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public'), { + maxAge: '1d', + setHeaders: setCustomCacheControl +})) + +app.listen(3000) + +function setCustomCacheControl (res, path) { + if (serveStatic.mime.lookup(path) === 'text/html') { + // Custom Cache-Control for HTML files + res.setHeader('Cache-Control', 'public, max-age=0') + } +} +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/serve-static/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/serve-static/master +[coveralls-url]: https://coveralls.io/r/expressjs/serve-static?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/expressjs/serve-static/master?label=linux +[github-actions-ci-url]: https://github.com/expressjs/serve-static/actions/workflows/ci.yml +[node-image]: https://badgen.net/npm/node/serve-static +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/serve-static +[npm-url]: https://npmjs.org/package/serve-static +[npm-version-image]: https://badgen.net/npm/v/serve-static diff --git a/node_modules/serve-static/index.js b/node_modules/serve-static/index.js new file mode 100644 index 0000000..3f3e64e --- /dev/null +++ b/node_modules/serve-static/index.js @@ -0,0 +1,209 @@ +/*! + * serve-static + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var parseUrl = require('parseurl') +var resolve = require('path').resolve +var send = require('send') +var url = require('url') + +/** + * Module exports. + * @public + */ + +module.exports = serveStatic +module.exports.mime = send.mime + +/** + * @param {string} root + * @param {object} [options] + * @return {function} + * @public + */ + +function serveStatic (root, options) { + if (!root) { + throw new TypeError('root path required') + } + + if (typeof root !== 'string') { + throw new TypeError('root path must be a string') + } + + // copy options object + var opts = Object.create(options || null) + + // fall-though + var fallthrough = opts.fallthrough !== false + + // default redirect + var redirect = opts.redirect !== false + + // headers listener + var setHeaders = opts.setHeaders + + if (setHeaders && typeof setHeaders !== 'function') { + throw new TypeError('option setHeaders must be function') + } + + // setup options for send + opts.maxage = opts.maxage || opts.maxAge || 0 + opts.root = resolve(root) + + // construct directory listener + var onDirectory = redirect + ? createRedirectDirectoryListener() + : createNotFoundDirectoryListener() + + return function serveStatic (req, res, next) { + if (req.method !== 'GET' && req.method !== 'HEAD') { + if (fallthrough) { + return next() + } + + // method not allowed + res.statusCode = 405 + res.setHeader('Allow', 'GET, HEAD') + res.setHeader('Content-Length', '0') + res.end() + return + } + + var forwardError = !fallthrough + var originalUrl = parseUrl.original(req) + var path = parseUrl(req).pathname + + // make sure redirect occurs at mount + if (path === '/' && originalUrl.pathname.substr(-1) !== '/') { + path = '' + } + + // create send stream + var stream = send(req, path, opts) + + // add directory handler + stream.on('directory', onDirectory) + + // add headers listener + if (setHeaders) { + stream.on('headers', setHeaders) + } + + // add file listener for fallthrough + if (fallthrough) { + stream.on('file', function onFile () { + // once file is determined, always forward error + forwardError = true + }) + } + + // forward errors + stream.on('error', function error (err) { + if (forwardError || !(err.statusCode < 500)) { + next(err) + return + } + + next() + }) + + // pipe + stream.pipe(res) + } +} + +/** + * Collapse all leading slashes into a single slash + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 0x2f /* / */) { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * Create a directory listener that just 404s. + * @private + */ + +function createNotFoundDirectoryListener () { + return function notFound () { + this.error(404) + } +} + +/** + * Create a directory listener that performs a redirect. + * @private + */ + +function createRedirectDirectoryListener () { + return function redirect (res) { + if (this.hasTrailingSlash()) { + this.error(404) + return + } + + // get original URL + var originalUrl = parseUrl.original(this.req) + + // append trailing slash + originalUrl.path = null + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/') + + // reformat the URL + var loc = encodeUrl(url.format(originalUrl)) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + escapeHtml(loc)) + + // send redirect response + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) + } +} diff --git a/node_modules/serve-static/package.json b/node_modules/serve-static/package.json new file mode 100644 index 0000000..49d7542 --- /dev/null +++ b/node_modules/serve-static/package.json @@ -0,0 +1,42 @@ +{ + "name": "serve-static", + "description": "Serve static files", + "version": "1.16.2", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "repository": "expressjs/serve-static", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.2.2" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8.0" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/setprototypeof/LICENSE b/node_modules/setprototypeof/LICENSE new file mode 100644 index 0000000..61afa2f --- /dev/null +++ b/node_modules/setprototypeof/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Wes Todd + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/setprototypeof/README.md b/node_modules/setprototypeof/README.md new file mode 100644 index 0000000..791eeff --- /dev/null +++ b/node_modules/setprototypeof/README.md @@ -0,0 +1,31 @@ +# Polyfill for `Object.setPrototypeOf` + +[![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) + +A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. + +## Usage: + +``` +$ npm install --save setprototypeof +``` + +```javascript +var setPrototypeOf = require('setprototypeof') + +var obj = {} +setPrototypeOf(obj, { + foo: function () { + return 'bar' + } +}) +obj.foo() // bar +``` + +TypeScript is also supported: + +```typescript +import setPrototypeOf from 'setprototypeof' +``` diff --git a/node_modules/setprototypeof/index.d.ts b/node_modules/setprototypeof/index.d.ts new file mode 100644 index 0000000..f108ecd --- /dev/null +++ b/node_modules/setprototypeof/index.d.ts @@ -0,0 +1,2 @@ +declare function setPrototypeOf(o: any, proto: object | null): any; +export = setPrototypeOf; diff --git a/node_modules/setprototypeof/index.js b/node_modules/setprototypeof/index.js new file mode 100644 index 0000000..c527055 --- /dev/null +++ b/node_modules/setprototypeof/index.js @@ -0,0 +1,17 @@ +'use strict' +/* eslint no-proto: 0 */ +module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) + +function setProtoOf (obj, proto) { + obj.__proto__ = proto + return obj +} + +function mixinProperties (obj, proto) { + for (var prop in proto) { + if (!Object.prototype.hasOwnProperty.call(obj, prop)) { + obj[prop] = proto[prop] + } + } + return obj +} diff --git a/node_modules/setprototypeof/package.json b/node_modules/setprototypeof/package.json new file mode 100644 index 0000000..f20915b --- /dev/null +++ b/node_modules/setprototypeof/package.json @@ -0,0 +1,38 @@ +{ + "name": "setprototypeof", + "version": "1.2.0", + "description": "A small polyfill for Object.setprototypeof", + "main": "index.js", + "typings": "index.d.ts", + "scripts": { + "test": "standard && mocha", + "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", + "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t", + "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", + "node4": "NODE_VER=4 npm run testversion", + "node6": "NODE_VER=6 npm run testversion", + "node9": "NODE_VER=9 npm run testversion", + "node11": "NODE_VER=11 npm run testversion", + "prepublishOnly": "npm t", + "postpublish": "git push origin && git push origin --tags" + }, + "repository": { + "type": "git", + "url": "https://github.com/wesleytodd/setprototypeof.git" + }, + "keywords": [ + "polyfill", + "object", + "setprototypeof" + ], + "author": "Wes Todd", + "license": "ISC", + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" + }, + "homepage": "https://github.com/wesleytodd/setprototypeof", + "devDependencies": { + "mocha": "^6.1.4", + "standard": "^13.0.2" + } +} diff --git a/node_modules/setprototypeof/test/index.js b/node_modules/setprototypeof/test/index.js new file mode 100644 index 0000000..afeb4dd --- /dev/null +++ b/node_modules/setprototypeof/test/index.js @@ -0,0 +1,24 @@ +'use strict' +/* eslint-env mocha */ +/* eslint no-proto: 0 */ +var assert = require('assert') +var setPrototypeOf = require('..') + +describe('setProtoOf(obj, proto)', function () { + it('should merge objects', function () { + var obj = { a: 1, b: 2 } + var proto = { b: 3, c: 4 } + var mergeObj = setPrototypeOf(obj, proto) + + if (Object.getPrototypeOf) { + assert.strictEqual(Object.getPrototypeOf(obj), proto) + } else if ({ __proto__: [] } instanceof Array) { + assert.strictEqual(obj.__proto__, proto) + } else { + assert.strictEqual(obj.a, 1) + assert.strictEqual(obj.b, 2) + assert.strictEqual(obj.c, 4) + } + assert.strictEqual(mergeObj, obj) + }) +}) diff --git a/node_modules/side-channel-list/.editorconfig b/node_modules/side-channel-list/.editorconfig new file mode 100644 index 0000000..72e0eba --- /dev/null +++ b/node_modules/side-channel-list/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true diff --git a/node_modules/side-channel-list/.eslintrc b/node_modules/side-channel-list/.eslintrc new file mode 100644 index 0000000..93978e7 --- /dev/null +++ b/node_modules/side-channel-list/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-lines-per-function": 0, + "multiline-comment-style": 1, + "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], + }, +} diff --git a/node_modules/side-channel-list/.github/FUNDING.yml b/node_modules/side-channel-list/.github/FUNDING.yml new file mode 100644 index 0000000..eaff735 --- /dev/null +++ b/node_modules/side-channel-list/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/side-channel-list +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/side-channel-list/.nycrc b/node_modules/side-channel-list/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/side-channel-list/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/side-channel-list/CHANGELOG.md b/node_modules/side-channel-list/CHANGELOG.md new file mode 100644 index 0000000..2ec51b7 --- /dev/null +++ b/node_modules/side-channel-list/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v1.0.0 - 2024-12-10 + +### Commits + +- Initial implementation, tests, readme, types [`5d6baee`](https://github.com/ljharb/side-channel-list/commit/5d6baee5c9054a1238007f5a1dfc109a7a816251) +- Initial commit [`3ae784c`](https://github.com/ljharb/side-channel-list/commit/3ae784c63a47895fbaeed2a91ab54a8029a7a100) +- npm init [`07055a4`](https://github.com/ljharb/side-channel-list/commit/07055a4d139895565b199dba5fe2479c1a1b9e28) +- Only apps should have lockfiles [`9573058`](https://github.com/ljharb/side-channel-list/commit/9573058a47494e2d68f8c6c77b5d7fbe441949c1) diff --git a/node_modules/side-channel-list/LICENSE b/node_modules/side-channel-list/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/side-channel-list/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/side-channel-list/README.md b/node_modules/side-channel-list/README.md new file mode 100644 index 0000000..d9c7a13 --- /dev/null +++ b/node_modules/side-channel-list/README.md @@ -0,0 +1,62 @@ +# side-channel-list [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Store information about any JS value in a side channel, using a linked list. + +Warning: this implementation will leak memory until you `delete` the `key`. +Use [`side-channel`](https://npmjs.com/side-channel) for the best available strategy. + +## Getting started + +```sh +npm install --save side-channel-list +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getSideChannelList = require('side-channel-list'); + +const channel = getSideChannelList(); + +const key = {}; +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); + +channel.set(key, 42); + +channel.assert(key); // does not throw +assert.equal(channel.has(key), true); +assert.equal(channel.get(key), 42); + +channel.delete(key); +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/side-channel-list +[npm-version-svg]: https://versionbadg.es/ljharb/side-channel-list.svg +[deps-svg]: https://david-dm.org/ljharb/side-channel-list.svg +[deps-url]: https://david-dm.org/ljharb/side-channel-list +[dev-deps-svg]: https://david-dm.org/ljharb/side-channel-list/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/side-channel-list#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/side-channel-list.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/side-channel-list.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/side-channel-list.svg +[downloads-url]: https://npm-stat.com/charts.html?package=side-channel-list +[codecov-image]: https://codecov.io/gh/ljharb/side-channel-list/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/side-channel-list/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/side-channel-list +[actions-url]: https://github.com/ljharb/side-channel-list/actions diff --git a/node_modules/side-channel-list/index.d.ts b/node_modules/side-channel-list/index.d.ts new file mode 100644 index 0000000..c9cabc8 --- /dev/null +++ b/node_modules/side-channel-list/index.d.ts @@ -0,0 +1,13 @@ +declare namespace getSideChannelList { + type Channel = { + assert: (key: K) => void; + has: (key: K) => boolean; + get: (key: K) => V | undefined; + set: (key: K, value: V) => void; + delete: (key: K) => boolean; + }; +} + +declare function getSideChannelList(): getSideChannelList.Channel; + +export = getSideChannelList; diff --git a/node_modules/side-channel-list/index.js b/node_modules/side-channel-list/index.js new file mode 100644 index 0000000..8d6f98c --- /dev/null +++ b/node_modules/side-channel-list/index.js @@ -0,0 +1,113 @@ +'use strict'; + +var inspect = require('object-inspect'); + +var $TypeError = require('es-errors/type'); + +/* +* This function traverses the list returning the node corresponding to the given key. +* +* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. +* By doing so, all the recently used nodes can be accessed relatively quickly. +*/ +/** @type {import('./list.d.ts').listGetNode} */ +// eslint-disable-next-line consistent-return +var listGetNode = function (list, key, isDelete) { + /** @type {typeof list | NonNullable<(typeof list)['next']>} */ + var prev = list; + /** @type {(typeof list)['next']} */ + var curr; + // eslint-disable-next-line eqeqeq + for (; (curr = prev.next) != null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + if (!isDelete) { + // eslint-disable-next-line no-extra-parens + curr.next = /** @type {NonNullable} */ (list.next); + list.next = curr; // eslint-disable-line no-param-reassign + } + return curr; + } + } +}; + +/** @type {import('./list.d.ts').listGet} */ +var listGet = function (objects, key) { + if (!objects) { + return void undefined; + } + var node = listGetNode(objects, key); + return node && node.value; +}; +/** @type {import('./list.d.ts').listSet} */ +var listSet = function (objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + // Prepend the new node to the beginning of the list + objects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens + key: key, + next: objects.next, + value: value + }); + } +}; +/** @type {import('./list.d.ts').listHas} */ +var listHas = function (objects, key) { + if (!objects) { + return false; + } + return !!listGetNode(objects, key); +}; +/** @type {import('./list.d.ts').listDelete} */ +// eslint-disable-next-line consistent-return +var listDelete = function (objects, key) { + if (objects) { + return listGetNode(objects, key, true); + } +}; + +/** @type {import('.')} */ +module.exports = function getSideChannelList() { + /** @typedef {ReturnType} Channel */ + /** @typedef {Parameters[0]} K */ + /** @typedef {Parameters[1]} V */ + + /** @type {import('./list.d.ts').RootNode | undefined} */ var $o; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + var root = $o && $o.next; + var deletedNode = listDelete($o, key); + if (deletedNode && root && root === deletedNode) { + $o = void undefined; + } + return !!deletedNode; + }, + get: function (key) { + return listGet($o, key); + }, + has: function (key) { + return listHas($o, key); + }, + set: function (key, value) { + if (!$o) { + // Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head + $o = { + next: void undefined + }; + } + // eslint-disable-next-line no-extra-parens + listSet(/** @type {NonNullable} */ ($o), key, value); + } + }; + // @ts-expect-error TODO: figure out why this is erroring + return channel; +}; diff --git a/node_modules/side-channel-list/list.d.ts b/node_modules/side-channel-list/list.d.ts new file mode 100644 index 0000000..2c759e2 --- /dev/null +++ b/node_modules/side-channel-list/list.d.ts @@ -0,0 +1,14 @@ +type ListNode = { + key: K; + next: undefined | ListNode; + value: T; +}; +type RootNode = { + next: undefined | ListNode; +}; + +export function listGetNode(list: RootNode, key: ListNode['key'], isDelete?: boolean): ListNode | undefined; +export function listGet(objects: undefined | RootNode, key: ListNode['key']): T | undefined; +export function listSet(objects: RootNode, key: ListNode['key'], value: T): void; +export function listHas(objects: undefined | RootNode, key: ListNode['key']): boolean; +export function listDelete(objects: undefined | RootNode, key: ListNode['key']): ListNode | undefined; diff --git a/node_modules/side-channel-list/package.json b/node_modules/side-channel-list/package.json new file mode 100644 index 0000000..ba0f5c5 --- /dev/null +++ b/node_modules/side-channel-list/package.json @@ -0,0 +1,77 @@ +{ + "name": "side-channel-list", + "version": "1.0.0", + "description": "Store information about any JS value in a side channel, using a linked list", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-list.git" + }, + "keywords": [], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-list/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-list#readme", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/side-channel-list/test/index.js b/node_modules/side-channel-list/test/index.js new file mode 100644 index 0000000..3ad4368 --- /dev/null +++ b/node_modules/side-channel-list/test/index.js @@ -0,0 +1,104 @@ +'use strict'; + +var test = require('tape'); + +var getSideChannelList = require('../'); + +test('getSideChannelList', function (t) { + t.test('export', function (st) { + st.equal(typeof getSideChannelList, 'function', 'is a function'); + + st.equal(getSideChannelList.length, 0, 'takes no arguments'); + + var channel = getSideChannelList(); + st.ok(channel, 'is truthy'); + st.equal(typeof channel, 'object', 'is an object'); + st.end(); + }); + + t.test('assert', function (st) { + var channel = getSideChannelList(); + st['throws']( + function () { channel.assert({}); }, + TypeError, + 'nonexistent value throws' + ); + + var o = {}; + channel.set(o, 'data'); + st.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); + + st.end(); + }); + + t.test('has', function (st) { + var channel = getSideChannelList(); + /** @type {unknown[]} */ var o = []; + + st.equal(channel.has(o), false, 'nonexistent value yields false'); + + channel.set(o, 'foo'); + st.equal(channel.has(o), true, 'existent value yields true'); + + st.equal(channel.has('abc'), false, 'non object value non existent yields false'); + + channel.set('abc', 'foo'); + st.equal(channel.has('abc'), true, 'non object value that exists yields true'); + + st.end(); + }); + + t.test('get', function (st) { + var channel = getSideChannelList(); + var o = {}; + st.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); + + var data = {}; + channel.set(o, data); + st.equal(channel.get(o), data, '"get" yields data set by "set"'); + + st.end(); + }); + + t.test('set', function (st) { + var channel = getSideChannelList(); + var o = function () {}; + st.equal(channel.get(o), undefined, 'value not set'); + + channel.set(o, 42); + st.equal(channel.get(o), 42, 'value was set'); + + channel.set(o, Infinity); + st.equal(channel.get(o), Infinity, 'value was set again'); + + var o2 = {}; + channel.set(o2, 17); + st.equal(channel.get(o), Infinity, 'o is not modified'); + st.equal(channel.get(o2), 17, 'o2 is set'); + + channel.set(o, 14); + st.equal(channel.get(o), 14, 'o is modified'); + st.equal(channel.get(o2), 17, 'o2 is not modified'); + + st.end(); + }); + + t.test('delete', function (st) { + var channel = getSideChannelList(); + var o = {}; + st.equal(channel['delete']({}), false, 'nonexistent value yields false'); + + channel.set(o, 42); + st.equal(channel.has(o), true, 'value is set'); + + st.equal(channel['delete']({}), false, 'nonexistent value still yields false'); + + st.equal(channel['delete'](o), true, 'deleted value yields true'); + + st.equal(channel.has(o), false, 'value is no longer set'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/side-channel-list/tsconfig.json b/node_modules/side-channel-list/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/side-channel-list/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/side-channel-map/.editorconfig b/node_modules/side-channel-map/.editorconfig new file mode 100644 index 0000000..72e0eba --- /dev/null +++ b/node_modules/side-channel-map/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true diff --git a/node_modules/side-channel-map/.eslintrc b/node_modules/side-channel-map/.eslintrc new file mode 100644 index 0000000..93978e7 --- /dev/null +++ b/node_modules/side-channel-map/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-lines-per-function": 0, + "multiline-comment-style": 1, + "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], + }, +} diff --git a/node_modules/side-channel-map/.github/FUNDING.yml b/node_modules/side-channel-map/.github/FUNDING.yml new file mode 100644 index 0000000..f2891bd --- /dev/null +++ b/node_modules/side-channel-map/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/side-channel-map +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/side-channel-map/.nycrc b/node_modules/side-channel-map/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/side-channel-map/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/side-channel-map/CHANGELOG.md b/node_modules/side-channel-map/CHANGELOG.md new file mode 100644 index 0000000..b6ccea9 --- /dev/null +++ b/node_modules/side-channel-map/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/side-channel-map/compare/v1.0.0...v1.0.1) - 2024-12-10 + +### Commits + +- [Deps] update `call-bound` [`6d05aaa`](https://github.com/ljharb/side-channel-map/commit/6d05aaa4ce5f2be4e7825df433d650696f0ba40f) +- [types] fix generics ordering [`11c0184`](https://github.com/ljharb/side-channel-map/commit/11c0184132ac11fdc16857e12682e148e5e9ee74) + +## v1.0.0 - 2024-12-10 + +### Commits + +- Initial implementation, tests, readme, types [`ad877b4`](https://github.com/ljharb/side-channel-map/commit/ad877b42926d46d63fff76a2bd01d2b4a01959a9) +- Initial commit [`28f8879`](https://github.com/ljharb/side-channel-map/commit/28f8879c512abe8fcf9b6a4dc7754a0287e5eba4) +- npm init [`2c9604e`](https://github.com/ljharb/side-channel-map/commit/2c9604e5aa40223e425ea7cea78f8a07697504bd) +- Only apps should have lockfiles [`5e7ba9c`](https://github.com/ljharb/side-channel-map/commit/5e7ba9cffe3ef42095815adc8ac1255b49bbadf5) diff --git a/node_modules/side-channel-map/LICENSE b/node_modules/side-channel-map/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/side-channel-map/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/side-channel-map/README.md b/node_modules/side-channel-map/README.md new file mode 100644 index 0000000..8fa6f77 --- /dev/null +++ b/node_modules/side-channel-map/README.md @@ -0,0 +1,62 @@ +# side-channel-map [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Store information about any JS value in a side channel, using a Map. + +Warning: if the `key` is an object, this implementation will leak memory until you `delete` it. +Use [`side-channel`](https://npmjs.com/side-channel) for the best available strategy. + +## Getting started + +```sh +npm install --save side-channel-map +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getSideChannelMap = require('side-channel-map'); + +const channel = getSideChannelMap(); + +const key = {}; +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); + +channel.set(key, 42); + +channel.assert(key); // does not throw +assert.equal(channel.has(key), true); +assert.equal(channel.get(key), 42); + +channel.delete(key); +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/side-channel-map +[npm-version-svg]: https://versionbadg.es/ljharb/side-channel-map.svg +[deps-svg]: https://david-dm.org/ljharb/side-channel-map.svg +[deps-url]: https://david-dm.org/ljharb/side-channel-map +[dev-deps-svg]: https://david-dm.org/ljharb/side-channel-map/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/side-channel-map#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/side-channel-map.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/side-channel-map.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/side-channel-map.svg +[downloads-url]: https://npm-stat.com/charts.html?package=side-channel-map +[codecov-image]: https://codecov.io/gh/ljharb/side-channel-map/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/side-channel-map/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/side-channel-map +[actions-url]: https://github.com/ljharb/side-channel-map/actions diff --git a/node_modules/side-channel-map/index.d.ts b/node_modules/side-channel-map/index.d.ts new file mode 100644 index 0000000..de33e89 --- /dev/null +++ b/node_modules/side-channel-map/index.d.ts @@ -0,0 +1,15 @@ +declare namespace getSideChannelMap { + type Channel = { + assert: (key: K) => void; + has: (key: K) => boolean; + get: (key: K) => V | undefined; + set: (key: K, value: V) => void; + delete: (key: K) => boolean; + }; +} + +declare function getSideChannelMap(): getSideChannelMap.Channel; + +declare const x: false | typeof getSideChannelMap; + +export = x; diff --git a/node_modules/side-channel-map/index.js b/node_modules/side-channel-map/index.js new file mode 100644 index 0000000..e111100 --- /dev/null +++ b/node_modules/side-channel-map/index.js @@ -0,0 +1,68 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var inspect = require('object-inspect'); + +var $TypeError = require('es-errors/type'); +var $Map = GetIntrinsic('%Map%', true); + +/** @type {(thisArg: Map, key: K) => V} */ +var $mapGet = callBound('Map.prototype.get', true); +/** @type {(thisArg: Map, key: K, value: V) => void} */ +var $mapSet = callBound('Map.prototype.set', true); +/** @type {(thisArg: Map, key: K) => boolean} */ +var $mapHas = callBound('Map.prototype.has', true); +/** @type {(thisArg: Map, key: K) => boolean} */ +var $mapDelete = callBound('Map.prototype.delete', true); +/** @type {(thisArg: Map) => number} */ +var $mapSize = callBound('Map.prototype.size', true); + +/** @type {import('.')} */ +module.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() { + /** @typedef {ReturnType} Channel */ + /** @typedef {Parameters[0]} K */ + /** @typedef {Parameters[1]} V */ + + /** @type {Map | undefined} */ var $m; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + if ($m) { + var result = $mapDelete($m, key); + if ($mapSize($m) === 0) { + $m = void undefined; + } + return result; + } + return false; + }, + get: function (key) { // eslint-disable-line consistent-return + if ($m) { + return $mapGet($m, key); + } + }, + has: function (key) { + if ($m) { + return $mapHas($m, key); + } + return false; + }, + set: function (key, value) { + if (!$m) { + // @ts-expect-error TS can't handle narrowing a variable inside a closure + $m = new $Map(); + } + $mapSet($m, key, value); + } + }; + + // @ts-expect-error TODO: figure out why TS is erroring here + return channel; +}; diff --git a/node_modules/side-channel-map/package.json b/node_modules/side-channel-map/package.json new file mode 100644 index 0000000..18e8080 --- /dev/null +++ b/node_modules/side-channel-map/package.json @@ -0,0 +1,80 @@ +{ + "name": "side-channel-map", + "version": "1.0.1", + "description": "Store information about any JS value in a side channel, using a Map", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-map.git" + }, + "keywords": [], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-map/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-map#readme", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/get-intrinsic": "^1.2.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/side-channel-map/test/index.js b/node_modules/side-channel-map/test/index.js new file mode 100644 index 0000000..1743323 --- /dev/null +++ b/node_modules/side-channel-map/test/index.js @@ -0,0 +1,114 @@ +'use strict'; + +var test = require('tape'); + +var getSideChannelMap = require('../'); + +test('getSideChannelMap', { skip: typeof Map !== 'function' }, function (t) { + var getSideChannel = getSideChannelMap || function () { + throw new EvalError('should never happen'); + }; + + t.test('export', function (st) { + st.equal(typeof getSideChannel, 'function', 'is a function'); + + st.equal(getSideChannel.length, 0, 'takes no arguments'); + + var channel = getSideChannel(); + st.ok(channel, 'is truthy'); + st.equal(typeof channel, 'object', 'is an object'); + st.end(); + }); + + t.test('assert', function (st) { + var channel = getSideChannel(); + st['throws']( + function () { channel.assert({}); }, + TypeError, + 'nonexistent value throws' + ); + + var o = {}; + channel.set(o, 'data'); + st.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); + + st.end(); + }); + + t.test('has', function (st) { + var channel = getSideChannel(); + /** @type {unknown[]} */ var o = []; + + st.equal(channel.has(o), false, 'nonexistent value yields false'); + + channel.set(o, 'foo'); + st.equal(channel.has(o), true, 'existent value yields true'); + + st.equal(channel.has('abc'), false, 'non object value non existent yields false'); + + channel.set('abc', 'foo'); + st.equal(channel.has('abc'), true, 'non object value that exists yields true'); + + st.end(); + }); + + t.test('get', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); + + var data = {}; + channel.set(o, data); + st.equal(channel.get(o), data, '"get" yields data set by "set"'); + + st.end(); + }); + + t.test('set', function (st) { + var channel = getSideChannel(); + var o = function () {}; + st.equal(channel.get(o), undefined, 'value not set'); + + channel.set(o, 42); + st.equal(channel.get(o), 42, 'value was set'); + + channel.set(o, Infinity); + st.equal(channel.get(o), Infinity, 'value was set again'); + + var o2 = {}; + channel.set(o2, 17); + st.equal(channel.get(o), Infinity, 'o is not modified'); + st.equal(channel.get(o2), 17, 'o2 is set'); + + channel.set(o, 14); + st.equal(channel.get(o), 14, 'o is modified'); + st.equal(channel.get(o2), 17, 'o2 is not modified'); + + st.end(); + }); + + t.test('delete', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel['delete']({}), false, 'nonexistent value yields false'); + + channel.set(o, 42); + st.equal(channel.has(o), true, 'value is set'); + + st.equal(channel['delete']({}), false, 'nonexistent value still yields false'); + + st.equal(channel['delete'](o), true, 'deleted value yields true'); + + st.equal(channel.has(o), false, 'value is no longer set'); + + st.end(); + }); + + t.end(); +}); + +test('getSideChannelMap, no Maps', { skip: typeof Map === 'function' }, function (t) { + t.equal(getSideChannelMap, false, 'is false'); + + t.end(); +}); diff --git a/node_modules/side-channel-map/tsconfig.json b/node_modules/side-channel-map/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/side-channel-map/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/side-channel-weakmap/.editorconfig b/node_modules/side-channel-weakmap/.editorconfig new file mode 100644 index 0000000..72e0eba --- /dev/null +++ b/node_modules/side-channel-weakmap/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true diff --git a/node_modules/side-channel-weakmap/.eslintrc b/node_modules/side-channel-weakmap/.eslintrc new file mode 100644 index 0000000..9b13ad8 --- /dev/null +++ b/node_modules/side-channel-weakmap/.eslintrc @@ -0,0 +1,12 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "id-length": 0, + "max-lines-per-function": 0, + "multiline-comment-style": 1, + "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], + }, +} diff --git a/node_modules/side-channel-weakmap/.github/FUNDING.yml b/node_modules/side-channel-weakmap/.github/FUNDING.yml new file mode 100644 index 0000000..2ae71cd --- /dev/null +++ b/node_modules/side-channel-weakmap/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/side-channel-weakmap +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/side-channel-weakmap/.nycrc b/node_modules/side-channel-weakmap/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/side-channel-weakmap/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/side-channel-weakmap/CHANGELOG.md b/node_modules/side-channel-weakmap/CHANGELOG.md new file mode 100644 index 0000000..aba7ab0 --- /dev/null +++ b/node_modules/side-channel-weakmap/CHANGELOG.md @@ -0,0 +1,28 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/ljharb/side-channel-weakmap/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [types] fix generics ordering [`1b62e94`](https://github.com/ljharb/side-channel-weakmap/commit/1b62e94a2ad6ed30b640ba73c4a2535836c67289) + +## [v1.0.1](https://github.com/ljharb/side-channel-weakmap/compare/v1.0.0...v1.0.1) - 2024-12-10 + +### Commits + +- [types] fix generics ordering [`08a4a5d`](https://github.com/ljharb/side-channel-weakmap/commit/08a4a5dbffedc3ebc79f1aaaf5a3dd6d2196dc1b) +- [Deps] update `side-channel-map` [`b53fe44`](https://github.com/ljharb/side-channel-weakmap/commit/b53fe447dfdd3a9aebedfd015b384eac17fce916) + +## v1.0.0 - 2024-12-10 + +### Commits + +- Initial implementation, tests, readme, types [`53c0fa4`](https://github.com/ljharb/side-channel-weakmap/commit/53c0fa4788435a006f58b9d7b43cb65989ecee49) +- Initial commit [`a157947`](https://github.com/ljharb/side-channel-weakmap/commit/a157947f26fcaf2c4a941d3a044e76bf67343532) +- npm init [`54dfc55`](https://github.com/ljharb/side-channel-weakmap/commit/54dfc55bafb16265910d5aad4e743c43aee5bbbb) +- Only apps should have lockfiles [`0ddd6c7`](https://github.com/ljharb/side-channel-weakmap/commit/0ddd6c7b07fe8ee04d67b2e9f7255af7ce62c07d) diff --git a/node_modules/side-channel-weakmap/LICENSE b/node_modules/side-channel-weakmap/LICENSE new file mode 100644 index 0000000..3900dd7 --- /dev/null +++ b/node_modules/side-channel-weakmap/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/side-channel-weakmap/README.md b/node_modules/side-channel-weakmap/README.md new file mode 100644 index 0000000..856ee36 --- /dev/null +++ b/node_modules/side-channel-weakmap/README.md @@ -0,0 +1,62 @@ +# side-channel-weakmap [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Store information about any JS value in a side channel. Uses WeakMap if available. + +Warning: this implementation will leak memory until you `delete` the `key`. +Use [`side-channel`](https://npmjs.com/side-channel) for the best available strategy. + +## Getting started + +```sh +npm install --save side-channel-weakmap +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getSideChannelList = require('side-channel-weakmap'); + +const channel = getSideChannelList(); + +const key = {}; +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); + +channel.set(key, 42); + +channel.assert(key); // does not throw +assert.equal(channel.has(key), true); +assert.equal(channel.get(key), 42); + +channel.delete(key); +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/side-channel-weakmap +[npm-version-svg]: https://versionbadg.es/ljharb/side-channel-weakmap.svg +[deps-svg]: https://david-dm.org/ljharb/side-channel-weakmap.svg +[deps-url]: https://david-dm.org/ljharb/side-channel-weakmap +[dev-deps-svg]: https://david-dm.org/ljharb/side-channel-weakmap/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/side-channel-weakmap#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/side-channel-weakmap.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/side-channel-weakmap.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/side-channel-weakmap.svg +[downloads-url]: https://npm-stat.com/charts.html?package=side-channel-weakmap +[codecov-image]: https://codecov.io/gh/ljharb/side-channel-weakmap/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/side-channel-weakmap/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/side-channel-weakmap +[actions-url]: https://github.com/ljharb/side-channel-weakmap/actions diff --git a/node_modules/side-channel-weakmap/index.d.ts b/node_modules/side-channel-weakmap/index.d.ts new file mode 100644 index 0000000..ce1bc2a --- /dev/null +++ b/node_modules/side-channel-weakmap/index.d.ts @@ -0,0 +1,15 @@ +declare namespace getSideChannelWeakMap { + type Channel = { + assert: (key: K) => void; + has: (key: K) => boolean; + get: (key: K) => V | undefined; + set: (key: K, value: V) => void; + delete: (key: K) => boolean; + } +} + +declare function getSideChannelWeakMap(): getSideChannelWeakMap.Channel; + +declare const x: false | typeof getSideChannelWeakMap; + +export = x; diff --git a/node_modules/side-channel-weakmap/index.js b/node_modules/side-channel-weakmap/index.js new file mode 100644 index 0000000..e5b8183 --- /dev/null +++ b/node_modules/side-channel-weakmap/index.js @@ -0,0 +1,84 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var inspect = require('object-inspect'); +var getSideChannelMap = require('side-channel-map'); + +var $TypeError = require('es-errors/type'); +var $WeakMap = GetIntrinsic('%WeakMap%', true); + +/** @type {(thisArg: WeakMap, key: K) => V} */ +var $weakMapGet = callBound('WeakMap.prototype.get', true); +/** @type {(thisArg: WeakMap, key: K, value: V) => void} */ +var $weakMapSet = callBound('WeakMap.prototype.set', true); +/** @type {(thisArg: WeakMap, key: K) => boolean} */ +var $weakMapHas = callBound('WeakMap.prototype.has', true); +/** @type {(thisArg: WeakMap, key: K) => boolean} */ +var $weakMapDelete = callBound('WeakMap.prototype.delete', true); + +/** @type {import('.')} */ +module.exports = $WeakMap + ? /** @type {Exclude} */ function getSideChannelWeakMap() { + /** @typedef {ReturnType} Channel */ + /** @typedef {Parameters[0]} K */ + /** @typedef {Parameters[1]} V */ + + /** @type {WeakMap | undefined} */ var $wm; + /** @type {Channel | undefined} */ var $m; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapDelete($wm, key); + } + } else if (getSideChannelMap) { + if ($m) { + return $m['delete'](key); + } + } + return false; + }, + get: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapGet($wm, key); + } + } + return $m && $m.get(key); + }, + has: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapHas($wm, key); + } + } + return !!$m && $m.has(key); + }, + set: function (key, value) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if (getSideChannelMap) { + if (!$m) { + $m = getSideChannelMap(); + } + // eslint-disable-next-line no-extra-parens + /** @type {NonNullable} */ ($m).set(key, value); + } + } + }; + + // @ts-expect-error TODO: figure out why this is erroring + return channel; + } + : getSideChannelMap; diff --git a/node_modules/side-channel-weakmap/package.json b/node_modules/side-channel-weakmap/package.json new file mode 100644 index 0000000..9ef6583 --- /dev/null +++ b/node_modules/side-channel-weakmap/package.json @@ -0,0 +1,87 @@ +{ + "name": "side-channel-weakmap", + "version": "1.0.2", + "description": "Store information about any JS value in a side channel. Uses WeakMap if available.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-weakmap.git" + }, + "keywords": [ + "weakmap", + "map", + "side", + "channel", + "metadata" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-weakmap/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-weakmap#readme", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/side-channel-weakmap/test/index.js b/node_modules/side-channel-weakmap/test/index.js new file mode 100644 index 0000000..a01248b --- /dev/null +++ b/node_modules/side-channel-weakmap/test/index.js @@ -0,0 +1,114 @@ +'use strict'; + +var test = require('tape'); + +var getSideChannelWeakMap = require('../'); + +test('getSideChannelMap', { skip: typeof WeakMap !== 'function' && typeof Map !== 'function' }, function (t) { + var getSideChannel = getSideChannelWeakMap || function () { + throw new EvalError('should never happen'); + }; + + t.test('export', function (st) { + st.equal(typeof getSideChannel, 'function', 'is a function'); + + st.equal(getSideChannel.length, 0, 'takes no arguments'); + + var channel = getSideChannel(); + st.ok(channel, 'is truthy'); + st.equal(typeof channel, 'object', 'is an object'); + st.end(); + }); + + t.test('assert', function (st) { + var channel = getSideChannel(); + st['throws']( + function () { channel.assert({}); }, + TypeError, + 'nonexistent value throws' + ); + + var o = {}; + channel.set(o, 'data'); + st.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); + + st.end(); + }); + + t.test('has', function (st) { + var channel = getSideChannel(); + /** @type {unknown[]} */ var o = []; + + st.equal(channel.has(o), false, 'nonexistent value yields false'); + + channel.set(o, 'foo'); + st.equal(channel.has(o), true, 'existent value yields true'); + + st.equal(channel.has('abc'), false, 'non object value non existent yields false'); + + channel.set('abc', 'foo'); + st.equal(channel.has('abc'), true, 'non object value that exists yields true'); + + st.end(); + }); + + t.test('get', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); + + var data = {}; + channel.set(o, data); + st.equal(channel.get(o), data, '"get" yields data set by "set"'); + + st.end(); + }); + + t.test('set', function (st) { + var channel = getSideChannel(); + var o = function () {}; + st.equal(channel.get(o), undefined, 'value not set'); + + channel.set(o, 42); + st.equal(channel.get(o), 42, 'value was set'); + + channel.set(o, Infinity); + st.equal(channel.get(o), Infinity, 'value was set again'); + + var o2 = {}; + channel.set(o2, 17); + st.equal(channel.get(o), Infinity, 'o is not modified'); + st.equal(channel.get(o2), 17, 'o2 is set'); + + channel.set(o, 14); + st.equal(channel.get(o), 14, 'o is modified'); + st.equal(channel.get(o2), 17, 'o2 is not modified'); + + st.end(); + }); + + t.test('delete', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel['delete']({}), false, 'nonexistent value yields false'); + + channel.set(o, 42); + st.equal(channel.has(o), true, 'value is set'); + + st.equal(channel['delete']({}), false, 'nonexistent value still yields false'); + + st.equal(channel['delete'](o), true, 'deleted value yields true'); + + st.equal(channel.has(o), false, 'value is no longer set'); + + st.end(); + }); + + t.end(); +}); + +test('getSideChannelMap, no WeakMaps and/or Maps', { skip: typeof WeakMap === 'function' || typeof Map === 'function' }, function (t) { + t.equal(getSideChannelWeakMap, false, 'is false'); + + t.end(); +}); diff --git a/node_modules/side-channel-weakmap/tsconfig.json b/node_modules/side-channel-weakmap/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/side-channel-weakmap/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/side-channel/.editorconfig b/node_modules/side-channel/.editorconfig new file mode 100644 index 0000000..72e0eba --- /dev/null +++ b/node_modules/side-channel/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true diff --git a/node_modules/side-channel/.eslintrc b/node_modules/side-channel/.eslintrc new file mode 100644 index 0000000..9b13ad8 --- /dev/null +++ b/node_modules/side-channel/.eslintrc @@ -0,0 +1,12 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "id-length": 0, + "max-lines-per-function": 0, + "multiline-comment-style": 1, + "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], + }, +} diff --git a/node_modules/side-channel/.github/FUNDING.yml b/node_modules/side-channel/.github/FUNDING.yml new file mode 100644 index 0000000..2a94840 --- /dev/null +++ b/node_modules/side-channel/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/side-channel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/side-channel/.nycrc b/node_modules/side-channel/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/side-channel/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/side-channel/CHANGELOG.md b/node_modules/side-channel/CHANGELOG.md new file mode 100644 index 0000000..58e378c --- /dev/null +++ b/node_modules/side-channel/CHANGELOG.md @@ -0,0 +1,110 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.0](https://github.com/ljharb/side-channel/compare/v1.0.6...v1.1.0) - 2024-12-11 + +### Commits + +- [Refactor] extract implementations to `side-channel-weakmap`, `side-channel-map`, `side-channel-list` [`ada5955`](https://github.com/ljharb/side-channel/commit/ada595549a5c4c6c853756d598846b180941c6da) +- [New] add `channel.delete` [`c01d2d3`](https://github.com/ljharb/side-channel/commit/c01d2d3fd51dbb1ce6da72ad7916e61bd6172aad) +- [types] improve types [`0c54356`](https://github.com/ljharb/side-channel/commit/0c5435651417df41b8cc1a5f7cdce8bffae68cde) +- [readme] add content [`be24868`](https://github.com/ljharb/side-channel/commit/be248682ac294b0e22c883092c45985aa91c490a) +- [actions] split out node 10-20, and 20+ [`c4488e2`](https://github.com/ljharb/side-channel/commit/c4488e241ef3d49a19fe266ac830a2e644305911) +- [types] use shared tsconfig [`0e0d57c`](https://github.com/ljharb/side-channel/commit/0e0d57c2ff17c7b45c6cbd43ebcf553edc9e3adc) +- [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/get-intrinsic`, `@types/object-inspect`, `@types/tape`, `auto-changelog`, `tape` [`fb4f622`](https://github.com/ljharb/side-channel/commit/fb4f622e64a99a1e40b6e5cd7691674a9dc429e4) +- [Deps] update `call-bind`, `get-intrinsic`, `object-inspect` [`b78336b`](https://github.com/ljharb/side-channel/commit/b78336b886172d1b457d414ac9e28de8c5fecc78) +- [Tests] replace `aud` with `npm audit` [`ee3ab46`](https://github.com/ljharb/side-channel/commit/ee3ab4690d954311c35115651bcfd45edd205aa1) +- [Dev Deps] add missing peer dep [`c03e21a`](https://github.com/ljharb/side-channel/commit/c03e21a7def3b67cdc15ae22316884fefcb2f6a8) + +## [v1.0.6](https://github.com/ljharb/side-channel/compare/v1.0.5...v1.0.6) - 2024-02-29 + +### Commits + +- add types [`9beef66`](https://github.com/ljharb/side-channel/commit/9beef6643e6d717ea57bedabf86448123a7dd9e9) +- [meta] simplify `exports` [`4334cf9`](https://github.com/ljharb/side-channel/commit/4334cf9df654151504c383b62a2f9ebdc8d9d5ac) +- [Deps] update `call-bind` [`d6043c4`](https://github.com/ljharb/side-channel/commit/d6043c4d8f4d7be9037dd0f0419c7a2e0e39ec6a) +- [Dev Deps] update `tape` [`6aca376`](https://github.com/ljharb/side-channel/commit/6aca3761868dc8cd5ff7fd9799bf6b95e09a6eb0) + +## [v1.0.5](https://github.com/ljharb/side-channel/compare/v1.0.4...v1.0.5) - 2024-02-06 + +### Commits + +- [actions] reuse common workflows [`3d2e1ff`](https://github.com/ljharb/side-channel/commit/3d2e1ffd16dd6eaaf3e40ff57951f840d2d63c04) +- [meta] use `npmignore` to autogenerate an npmignore file [`04296ea`](https://github.com/ljharb/side-channel/commit/04296ea17d1544b0a5d20fd5bfb31aa4f6513eb9) +- [meta] add `.editorconfig`; add `eclint` [`130f0a6`](https://github.com/ljharb/side-channel/commit/130f0a6adbc04d385c7456a601d38344dce3d6a9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`d480c2f`](https://github.com/ljharb/side-channel/commit/d480c2fbe757489ae9b4275491ffbcc3ac4725e9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ecbe70e`](https://github.com/ljharb/side-channel/commit/ecbe70e53a418234081a77971fec1fdfae20c841) +- [actions] update rebase action [`75240b9`](https://github.com/ljharb/side-channel/commit/75240b9963b816e8846400d2287cb68f88c7fba7) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`ae8d281`](https://github.com/ljharb/side-channel/commit/ae8d281572430099109870fd9430d2ca3f320b8d) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`7125b88`](https://github.com/ljharb/side-channel/commit/7125b885fd0eacad4fee9b073b72d14065ece278) +- [Deps] update `call-bind`, `get-intrinsic`, `object-inspect` [`82577c9`](https://github.com/ljharb/side-channel/commit/82577c9796304519139a570f82a317211b5f3b86) +- [Deps] update `call-bind`, `get-intrinsic`, `object-inspect` [`550aadf`](https://github.com/ljharb/side-channel/commit/550aadf20475a6081fd70304cc54f77259a5c8a8) +- [Tests] increase coverage [`5130877`](https://github.com/ljharb/side-channel/commit/5130877a7b27c862e64e6d1c12a178b28808859d) +- [Deps] update `get-intrinsic`, `object-inspect` [`ba0194c`](https://github.com/ljharb/side-channel/commit/ba0194c505b1a8a0427be14cadd5b8a46d4d01b8) +- [meta] add missing `engines.node` [`985fd24`](https://github.com/ljharb/side-channel/commit/985fd249663cb06617a693a94fe08cad12f5cb70) +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`40227a8`](https://github.com/ljharb/side-channel/commit/40227a87b01709ad2c0eebf87eb4223a800099b9) +- [Deps] update `get-intrinsic` [`a989b40`](https://github.com/ljharb/side-channel/commit/a989b4024958737ae7be9fbffdeff2078f33a0fd) +- [Deps] update `object-inspect` [`aec42d2`](https://github.com/ljharb/side-channel/commit/aec42d2ec541a31aaa02475692c87d489237d9a3) + +## [v1.0.4](https://github.com/ljharb/side-channel/compare/v1.0.3...v1.0.4) - 2020-12-29 + +### Commits + +- [Tests] migrate tests to Github Actions [`10909cb`](https://github.com/ljharb/side-channel/commit/10909cbf8ce9c0bf96f604cf13d7ffd5a22c2d40) +- [Refactor] Use a linked list rather than an array, and move accessed nodes to the beginning [`195613f`](https://github.com/ljharb/side-channel/commit/195613f28b5c1e6072ef0b61b5beebaf2b6a304e) +- [meta] do not publish github action workflow files [`290ec29`](https://github.com/ljharb/side-channel/commit/290ec29cd21a60585145b4a7237ec55228c52c27) +- [Tests] run `nyc` on all tests; use `tape` runner [`ea6d030`](https://github.com/ljharb/side-channel/commit/ea6d030ff3fe6be2eca39e859d644c51ecd88869) +- [actions] add "Allow Edits" workflow [`d464d8f`](https://github.com/ljharb/side-channel/commit/d464d8fe52b5eddf1504a0ed97f0941a90f32c15) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`02daca8`](https://github.com/ljharb/side-channel/commit/02daca87c6809821c97be468d1afa2f5ef447383) +- [Refactor] use `call-bind` and `get-intrinsic` instead of `es-abstract` [`e09d481`](https://github.com/ljharb/side-channel/commit/e09d481528452ebafa5cdeae1af665c35aa2deee) +- [Deps] update `object.assign` [`ee83aa8`](https://github.com/ljharb/side-channel/commit/ee83aa81df313b5e46319a63adb05cf0c179079a) +- [actions] update rebase action to use checkout v2 [`7726b0b`](https://github.com/ljharb/side-channel/commit/7726b0b058b632fccea709f58960871defaaa9d7) + +## [v1.0.3](https://github.com/ljharb/side-channel/compare/v1.0.2...v1.0.3) - 2020-08-23 + +### Commits + +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`1f10561`](https://github.com/ljharb/side-channel/commit/1f105611ef3acf32dec8032ae5c0baa5e56bb868) +- [Deps] update `es-abstract`, `object-inspect` [`bc20159`](https://github.com/ljharb/side-channel/commit/bc201597949a505e37cef9eaf24c7010831e6f03) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`b9b2b22`](https://github.com/ljharb/side-channel/commit/b9b2b225f9e0ea72a6ec2b89348f0bd690bc9ed1) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7055ab4`](https://github.com/ljharb/side-channel/commit/7055ab4de0860606efd2003674a74f1fe6ebc07e) +- [Dev Deps] update `auto-changelog`; add `aud` [`d278c37`](https://github.com/ljharb/side-channel/commit/d278c37d08227be4f84aa769fcd919e73feeba40) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`3bcf982`](https://github.com/ljharb/side-channel/commit/3bcf982faa122745b39c33ce83d32fdf003741c6) +- [Tests] only audit prod deps [`18d01c4`](https://github.com/ljharb/side-channel/commit/18d01c4015b82a3d75044c4d5ba7917b2eac01ec) +- [Deps] update `es-abstract` [`6ab096d`](https://github.com/ljharb/side-channel/commit/6ab096d9de2b482cf5e0717e34e212f5b2b9bc9a) +- [Dev Deps] update `tape` [`9dc174c`](https://github.com/ljharb/side-channel/commit/9dc174cc651dfd300b4b72da936a0a7eda5f9452) +- [Deps] update `es-abstract` [`431d0f0`](https://github.com/ljharb/side-channel/commit/431d0f0ff11fbd2ae6f3115582a356d3a1cfce82) +- [Deps] update `es-abstract` [`49869fd`](https://github.com/ljharb/side-channel/commit/49869fd323bf4453f0ba515c0fb265cf5ab7b932) +- [meta] Add package.json to package's exports [`77d9cdc`](https://github.com/ljharb/side-channel/commit/77d9cdceb2a9e47700074f2ae0c0a202e7dac0d4) + +## [v1.0.2](https://github.com/ljharb/side-channel/compare/v1.0.1...v1.0.2) - 2019-12-20 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`4a526df`](https://github.com/ljharb/side-channel/commit/4a526df44e4701566ed001ec78546193f818b082) +- [Deps] update `es-abstract` [`d4f6e62`](https://github.com/ljharb/side-channel/commit/d4f6e629b6fb93a07415db7f30d3c90fd7f264fe) + +## [v1.0.1](https://github.com/ljharb/side-channel/compare/v1.0.0...v1.0.1) - 2019-12-01 + +### Commits + +- [Fix] add missing "exports" [`d212907`](https://github.com/ljharb/side-channel/commit/d2129073abf0701a5343bf28aa2145617604dc2e) + +## v1.0.0 - 2019-12-01 + +### Commits + +- Initial implementation [`dbebd3a`](https://github.com/ljharb/side-channel/commit/dbebd3a4b5ed64242f9a6810efe7c4214cd8cde4) +- Initial tests [`73bdefe`](https://github.com/ljharb/side-channel/commit/73bdefe568c9076cf8c0b8719bc2141aec0e19b8) +- Initial commit [`43c03e1`](https://github.com/ljharb/side-channel/commit/43c03e1c2849ec50a87b7a5cd76238a62b0b8770) +- npm init [`5c090a7`](https://github.com/ljharb/side-channel/commit/5c090a765d66a5527d9889b89aeff78dee91348c) +- [meta] add `auto-changelog` [`a5c4e56`](https://github.com/ljharb/side-channel/commit/a5c4e5675ec02d5eb4d84b4243aeea2a1d38fbec) +- [actions] add automatic rebasing / merge commit blocking [`bab1683`](https://github.com/ljharb/side-channel/commit/bab1683d8f9754b086e94397699fdc645e0d7077) +- [meta] add `funding` field; create FUNDING.yml [`63d7aea`](https://github.com/ljharb/side-channel/commit/63d7aeaf34f5650650ae97ca4b9fae685bd0937c) +- [Tests] add `npm run lint` [`46a5a81`](https://github.com/ljharb/side-channel/commit/46a5a81705cd2664f83df232c01dbbf2ee952885) +- Only apps should have lockfiles [`8b16b03`](https://github.com/ljharb/side-channel/commit/8b16b0305f00895d90c4e2e5773c854cfea0e448) +- [meta] add `safe-publish-latest` [`2f098ef`](https://github.com/ljharb/side-channel/commit/2f098ef092a39399cfe548b19a1fc03c2fd2f490) diff --git a/node_modules/side-channel/LICENSE b/node_modules/side-channel/LICENSE new file mode 100644 index 0000000..3900dd7 --- /dev/null +++ b/node_modules/side-channel/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Jordan Harband + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/side-channel/README.md b/node_modules/side-channel/README.md new file mode 100644 index 0000000..cc7e103 --- /dev/null +++ b/node_modules/side-channel/README.md @@ -0,0 +1,61 @@ +# side-channel [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Store information about any JS value in a side channel. Uses WeakMap if available. + +Warning: in an environment that lacks `WeakMap`, this implementation will leak memory until you `delete` the `key`. + +## Getting started + +```sh +npm install --save side-channel +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const getSideChannel = require('side-channel'); + +const channel = getSideChannel(); + +const key = {}; +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); + +channel.set(key, 42); + +channel.assert(key); // does not throw +assert.equal(channel.has(key), true); +assert.equal(channel.get(key), 42); + +channel.delete(key); +assert.equal(channel.has(key), false); +assert.throws(() => channel.assert(key), TypeError); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/side-channel +[npm-version-svg]: https://versionbadg.es/ljharb/side-channel.svg +[deps-svg]: https://david-dm.org/ljharb/side-channel.svg +[deps-url]: https://david-dm.org/ljharb/side-channel +[dev-deps-svg]: https://david-dm.org/ljharb/side-channel/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/side-channel#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/side-channel.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/side-channel.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/side-channel.svg +[downloads-url]: https://npm-stat.com/charts.html?package=side-channel +[codecov-image]: https://codecov.io/gh/ljharb/side-channel/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/side-channel/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/side-channel +[actions-url]: https://github.com/ljharb/side-channel/actions diff --git a/node_modules/side-channel/index.d.ts b/node_modules/side-channel/index.d.ts new file mode 100644 index 0000000..18c6317 --- /dev/null +++ b/node_modules/side-channel/index.d.ts @@ -0,0 +1,14 @@ +import getSideChannelList from 'side-channel-list'; +import getSideChannelMap from 'side-channel-map'; +import getSideChannelWeakMap from 'side-channel-weakmap'; + +declare namespace getSideChannel { + type Channel = + | getSideChannelList.Channel + | ReturnType, false>> + | ReturnType, false>>; +} + +declare function getSideChannel(): getSideChannel.Channel; + +export = getSideChannel; diff --git a/node_modules/side-channel/index.js b/node_modules/side-channel/index.js new file mode 100644 index 0000000..a8a9b05 --- /dev/null +++ b/node_modules/side-channel/index.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var inspect = require('object-inspect'); +var getSideChannelList = require('side-channel-list'); +var getSideChannelMap = require('side-channel-map'); +var getSideChannelWeakMap = require('side-channel-weakmap'); + +var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList; + +/** @type {import('.')} */ +module.exports = function getSideChannel() { + /** @typedef {ReturnType} Channel */ + + /** @type {Channel | undefined} */ var $channelData; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + return !!$channelData && $channelData['delete'](key); + }, + get: function (key) { + return $channelData && $channelData.get(key); + }, + has: function (key) { + return !!$channelData && $channelData.has(key); + }, + set: function (key, value) { + if (!$channelData) { + $channelData = makeChannel(); + } + + $channelData.set(key, value); + } + }; + // @ts-expect-error TODO: figure out why this is erroring + return channel; +}; diff --git a/node_modules/side-channel/package.json b/node_modules/side-channel/package.json new file mode 100644 index 0000000..30fa42c --- /dev/null +++ b/node_modules/side-channel/package.json @@ -0,0 +1,85 @@ +{ + "name": "side-channel", + "version": "1.1.0", + "description": "Store information about any JS value in a side channel. Uses WeakMap if available.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel.git" + }, + "keywords": [ + "weakmap", + "map", + "side", + "channel", + "metadata" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel/issues" + }, + "homepage": "https://github.com/ljharb/side-channel#readme", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/side-channel/test/index.js b/node_modules/side-channel/test/index.js new file mode 100644 index 0000000..bd1e7c2 --- /dev/null +++ b/node_modules/side-channel/test/index.js @@ -0,0 +1,104 @@ +'use strict'; + +var test = require('tape'); + +var getSideChannel = require('../'); + +test('getSideChannel', function (t) { + t.test('export', function (st) { + st.equal(typeof getSideChannel, 'function', 'is a function'); + + st.equal(getSideChannel.length, 0, 'takes no arguments'); + + var channel = getSideChannel(); + st.ok(channel, 'is truthy'); + st.equal(typeof channel, 'object', 'is an object'); + st.end(); + }); + + t.test('assert', function (st) { + var channel = getSideChannel(); + st['throws']( + function () { channel.assert({}); }, + TypeError, + 'nonexistent value throws' + ); + + var o = {}; + channel.set(o, 'data'); + st.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); + + st.end(); + }); + + t.test('has', function (st) { + var channel = getSideChannel(); + /** @type {unknown[]} */ var o = []; + + st.equal(channel.has(o), false, 'nonexistent value yields false'); + + channel.set(o, 'foo'); + st.equal(channel.has(o), true, 'existent value yields true'); + + st.equal(channel.has('abc'), false, 'non object value non existent yields false'); + + channel.set('abc', 'foo'); + st.equal(channel.has('abc'), true, 'non object value that exists yields true'); + + st.end(); + }); + + t.test('get', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); + + var data = {}; + channel.set(o, data); + st.equal(channel.get(o), data, '"get" yields data set by "set"'); + + st.end(); + }); + + t.test('set', function (st) { + var channel = getSideChannel(); + var o = function () {}; + st.equal(channel.get(o), undefined, 'value not set'); + + channel.set(o, 42); + st.equal(channel.get(o), 42, 'value was set'); + + channel.set(o, Infinity); + st.equal(channel.get(o), Infinity, 'value was set again'); + + var o2 = {}; + channel.set(o2, 17); + st.equal(channel.get(o), Infinity, 'o is not modified'); + st.equal(channel.get(o2), 17, 'o2 is set'); + + channel.set(o, 14); + st.equal(channel.get(o), 14, 'o is modified'); + st.equal(channel.get(o2), 17, 'o2 is not modified'); + + st.end(); + }); + + t.test('delete', function (st) { + var channel = getSideChannel(); + var o = {}; + st.equal(channel['delete']({}), false, 'nonexistent value yields false'); + + channel.set(o, 42); + st.equal(channel.has(o), true, 'value is set'); + + st.equal(channel['delete']({}), false, 'nonexistent value still yields false'); + + st.equal(channel['delete'](o), true, 'deleted value yields true'); + + st.equal(channel.has(o), false, 'value is no longer set'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/side-channel/tsconfig.json b/node_modules/side-channel/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/side-channel/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/simple-update-notifier/LICENSE b/node_modules/simple-update-notifier/LICENSE new file mode 100644 index 0000000..1e0b0c1 --- /dev/null +++ b/node_modules/simple-update-notifier/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Alex Brazier + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/simple-update-notifier/README.md b/node_modules/simple-update-notifier/README.md new file mode 100644 index 0000000..ec17794 --- /dev/null +++ b/node_modules/simple-update-notifier/README.md @@ -0,0 +1,82 @@ +# simple-update-notifier [![GitHub stars](https://img.shields.io/github/stars/alexbrazier/simple-update-notifier?label=Star%20Project&style=social)](https://github.com/alexbrazier/simple-update-notifier/stargazers) + +[![CI](https://github.com/alexbrazier/simple-update-notifier/workflows/Build%20and%20Deploy/badge.svg)](https://github.com/alexbrazier/simple-update-notifier/actions) +[![Dependencies](https://img.shields.io/librariesio/release/npm/simple-update-notifier)](https://www.npmjs.com/package/simple-update-notifier?activeTab=dependencies) +[![npm](https://img.shields.io/npm/v/simple-update-notifier)](https://www.npmjs.com/package/simple-update-notifier) +[![npm bundle size](https://img.shields.io/bundlephobia/min/simple-update-notifier)](https://bundlephobia.com/result?p=simple-update-notifier) +[![npm downloads](https://img.shields.io/npm/dw/simple-update-notifier)](https://www.npmjs.com/package/simple-update-notifier) +[![License](https://img.shields.io/npm/l/simple-update-notifier)](./LICENSE) + +Simple update notifier to check for npm updates for cli applications. + +Demo in terminal showing an update is required + +Checks for updates for an npm module and outputs to the command line if there is one available. The result is cached for the specified time so it doesn't check every time the app runs. + +## Install + +```bash +npm install simple-update-notifier +OR +yarn add simple-update-notifier +``` + +## Usage + +```js +import updateNotifier from 'simple-update-notifier'; +import packageJson from './package.json' assert { type: 'json' }; + +updateNotifier({ pkg: packageJson }); +``` + +### Options + +#### pkg + +Type: `object` + +##### name + +_Required_\ +Type: `string` + +##### version + +_Required_\ +Type: `string` + +#### updateCheckInterval + +Type: `number`\ +Default: `1000 * 60 * 60 * 24` _(1 day)_ + +How often to check for updates. + +#### shouldNotifyInNpmScript + +Type: `boolean`\ +Default: `false` + +Allows notification to be shown when running as an npm script. + +#### distTag + +Type: `string`\ +Default: `'latest'` + +Which [dist-tag](https://docs.npmjs.com/adding-dist-tags-to-packages) to use to find the latest version. + +#### alwaysRun + +Type: `boolean`\ +Default: `false` + +When set, `updateCheckInterval` will not be respected and a check for an update will always be performed. + +#### debug + +Type: `boolean`\ +Default: `false` + +When set, logs explaining the decision will be output to `stderr` whenever the module opts to not print an update notification diff --git a/node_modules/simple-update-notifier/build/index.d.ts b/node_modules/simple-update-notifier/build/index.d.ts new file mode 100644 index 0000000..60f53e0 --- /dev/null +++ b/node_modules/simple-update-notifier/build/index.d.ts @@ -0,0 +1,13 @@ +interface IUpdate { + pkg: { + name: string; + version: string; + }; + updateCheckInterval?: number; + shouldNotifyInNpmScript?: boolean; + distTag?: string; + alwaysRun?: boolean; + debug?: boolean; +} +declare const simpleUpdateNotifier: (args: IUpdate) => Promise; +export { simpleUpdateNotifier as default }; diff --git a/node_modules/simple-update-notifier/build/index.js b/node_modules/simple-update-notifier/build/index.js new file mode 100644 index 0000000..d7c3cde --- /dev/null +++ b/node_modules/simple-update-notifier/build/index.js @@ -0,0 +1,210 @@ +'use strict'; + +var process$1 = require('process'); +var semver = require('semver'); +var os = require('os'); +var path = require('path'); +var fs = require('fs'); +var https = require('https'); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +var packageJson = process$1.env.npm_package_json; +var userAgent = process$1.env.npm_config_user_agent; +var isNpm6 = Boolean(userAgent && userAgent.startsWith('npm')); +var isNpm7 = Boolean(packageJson && packageJson.endsWith('package.json')); +var isNpm = isNpm6 || isNpm7; +var isYarn = Boolean(userAgent && userAgent.startsWith('yarn')); +var isNpmOrYarn = isNpm || isYarn; + +var homeDirectory = os.homedir(); +var configDir = process.env.XDG_CONFIG_HOME || + path.join(homeDirectory, '.config', 'simple-update-notifier'); +var getConfigFile = function (packageName) { + return path.join(configDir, "".concat(packageName.replace('@', '').replace('/', '__'), ".json")); +}; +var createConfigDir = function () { + if (!fs.existsSync(configDir)) { + fs.mkdirSync(configDir, { recursive: true }); + } +}; +var getLastUpdate = function (packageName) { + var configFile = getConfigFile(packageName); + try { + if (!fs.existsSync(configFile)) { + return undefined; + } + var file = JSON.parse(fs.readFileSync(configFile, 'utf8')); + return file.lastUpdateCheck; + } + catch (_a) { + return undefined; + } +}; +var saveLastUpdate = function (packageName) { + var configFile = getConfigFile(packageName); + fs.writeFileSync(configFile, JSON.stringify({ lastUpdateCheck: new Date().getTime() })); +}; + +var getDistVersion = function (packageName, distTag) { return __awaiter(void 0, void 0, void 0, function () { + var url; + return __generator(this, function (_a) { + url = "https://registry.npmjs.org/-/package/".concat(packageName, "/dist-tags"); + return [2 /*return*/, new Promise(function (resolve, reject) { + https + .get(url, function (res) { + var body = ''; + res.on('data', function (chunk) { return (body += chunk); }); + res.on('end', function () { + try { + var json = JSON.parse(body); + var version = json[distTag]; + if (!version) { + reject(new Error('Error getting version')); + } + resolve(version); + } + catch (_a) { + reject(new Error('Could not parse version response')); + } + }); + }) + .on('error', function (err) { return reject(err); }); + })]; + }); +}); }; + +var hasNewVersion = function (_a) { + var pkg = _a.pkg, _b = _a.updateCheckInterval, updateCheckInterval = _b === void 0 ? 1000 * 60 * 60 * 24 : _b, _c = _a.distTag, distTag = _c === void 0 ? 'latest' : _c, alwaysRun = _a.alwaysRun, debug = _a.debug; + return __awaiter(void 0, void 0, void 0, function () { + var lastUpdateCheck, latestVersion; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + createConfigDir(); + lastUpdateCheck = getLastUpdate(pkg.name); + if (!(alwaysRun || + !lastUpdateCheck || + lastUpdateCheck < new Date().getTime() - updateCheckInterval)) return [3 /*break*/, 2]; + return [4 /*yield*/, getDistVersion(pkg.name, distTag)]; + case 1: + latestVersion = _d.sent(); + saveLastUpdate(pkg.name); + if (semver.gt(latestVersion, pkg.version)) { + return [2 /*return*/, latestVersion]; + } + else if (debug) { + console.error("Latest version (".concat(latestVersion, ") not newer than current version (").concat(pkg.version, ")")); + } + return [3 /*break*/, 3]; + case 2: + if (debug) { + console.error("Too recent to check for a new update. simpleUpdateNotifier() interval set to ".concat(updateCheckInterval, "ms but only ").concat(new Date().getTime() - lastUpdateCheck, "ms since last check.")); + } + _d.label = 3; + case 3: return [2 /*return*/, false]; + } + }); + }); +}; + +var borderedText = function (text) { + var lines = text.split('\n'); + var width = Math.max.apply(Math, lines.map(function (l) { return l.length; })); + var res = ["\u250C".concat('─'.repeat(width + 2), "\u2510")]; + for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) { + var line = lines_1[_i]; + res.push("\u2502 ".concat(line.padEnd(width), " \u2502")); + } + res.push("\u2514".concat('─'.repeat(width + 2), "\u2518")); + return res.join('\n'); +}; + +var simpleUpdateNotifier = function (args) { return __awaiter(void 0, void 0, void 0, function () { + var latestVersion, err_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!args.alwaysRun && + (!process.stdout.isTTY || (isNpmOrYarn && !args.shouldNotifyInNpmScript))) { + if (args.debug) { + console.error('Opting out of running simpleUpdateNotifier()'); + } + return [2 /*return*/]; + } + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, hasNewVersion(args)]; + case 2: + latestVersion = _a.sent(); + if (latestVersion) { + console.error(borderedText("New version of ".concat(args.pkg.name, " available!\nCurrent Version: ").concat(args.pkg.version, "\nLatest Version: ").concat(latestVersion))); + } + return [3 /*break*/, 4]; + case 3: + err_1 = _a.sent(); + // Catch any network errors or cache writing errors so module doesn't cause a crash + if (args.debug && err_1 instanceof Error) { + console.error('Unexpected error in simpleUpdateNotifier():', err_1); + } + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); +}); }; + +module.exports = simpleUpdateNotifier; diff --git a/node_modules/simple-update-notifier/package.json b/node_modules/simple-update-notifier/package.json new file mode 100644 index 0000000..4d710a7 --- /dev/null +++ b/node_modules/simple-update-notifier/package.json @@ -0,0 +1,100 @@ +{ + "name": "simple-update-notifier", + "version": "2.0.0", + "description": "Simple update notifier to check for npm updates for cli applications", + "main": "build/index.js", + "types": "build/index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/alexbrazier/simple-update-notifier.git" + }, + "homepage": "https://github.com/alexbrazier/simple-update-notifier.git", + "author": "alexbrazier", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "jest src --noStackTrace", + "build": "rollup -c rollup.config.js --bundleConfigAsCjs", + "prettier:check": "prettier --check src/**/*.ts", + "prettier": "prettier --write src/**/*.ts", + "eslint": "eslint src/**/*.ts", + "lint": "yarn prettier:check && yarn eslint", + "prepare": "yarn lint && yarn build", + "release": "release-it" + }, + "dependencies": { + "semver": "^7.5.3" + }, + "devDependencies": { + "@babel/preset-env": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@release-it/conventional-changelog": "^5.1.1", + "@types/jest": "^29.5.2", + "@types/node": "^20.3.1", + "@typescript-eslint/eslint-plugin": "^5.60.0", + "@typescript-eslint/parser": "^5.60.0", + "eslint": "^8.43.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "^29.5.0", + "prettier": "^2.8.8", + "release-it": "^15.11.0", + "rollup": "^3.25.2", + "rollup-plugin-ts": "^3.2.0", + "typescript": "^5.1.3" + }, + "resolutions": { + "semver": "^7.5.3" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "files": [ + "build", + "src" + ], + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": "angular", + "infile": "CHANGELOG.md" + } + } + }, + "eslintConfig": { + "plugins": [ + "@typescript-eslint", + "prettier" + ], + "extends": [ + "prettier", + "eslint:recommended", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "rules": { + "prettier/prettier": [ + "error", + { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + } + ] + } + } +} diff --git a/node_modules/simple-update-notifier/src/borderedText.ts b/node_modules/simple-update-notifier/src/borderedText.ts new file mode 100644 index 0000000..7145ac2 --- /dev/null +++ b/node_modules/simple-update-notifier/src/borderedText.ts @@ -0,0 +1,12 @@ +const borderedText = (text: string) => { + const lines = text.split('\n'); + const width = Math.max(...lines.map((l) => l.length)); + const res = [`┌${'─'.repeat(width + 2)}┐`]; + for (const line of lines) { + res.push(`│ ${line.padEnd(width)} │`); + } + res.push(`└${'─'.repeat(width + 2)}┘`); + return res.join('\n'); +}; + +export default borderedText; diff --git a/node_modules/simple-update-notifier/src/cache.spec.ts b/node_modules/simple-update-notifier/src/cache.spec.ts new file mode 100644 index 0000000..49e1cb2 --- /dev/null +++ b/node_modules/simple-update-notifier/src/cache.spec.ts @@ -0,0 +1,17 @@ +import { createConfigDir, getLastUpdate, saveLastUpdate } from './cache'; + +createConfigDir(); + +jest.useFakeTimers().setSystemTime(new Date('2022-01-01')); + +const fakeTime = new Date('2022-01-01').getTime(); + +test('can save update then get the update details', () => { + saveLastUpdate('test'); + expect(getLastUpdate('test')).toBe(fakeTime); +}); + +test('prefixed module can save update then get the update details', () => { + saveLastUpdate('@alexbrazier/test'); + expect(getLastUpdate('@alexbrazier/test')).toBe(fakeTime); +}); diff --git a/node_modules/simple-update-notifier/src/cache.ts b/node_modules/simple-update-notifier/src/cache.ts new file mode 100644 index 0000000..e11deba --- /dev/null +++ b/node_modules/simple-update-notifier/src/cache.ts @@ -0,0 +1,44 @@ +import os from 'os'; +import path from 'path'; +import fs from 'fs'; + +const homeDirectory = os.homedir(); +const configDir = + process.env.XDG_CONFIG_HOME || + path.join(homeDirectory, '.config', 'simple-update-notifier'); + +const getConfigFile = (packageName: string) => { + return path.join( + configDir, + `${packageName.replace('@', '').replace('/', '__')}.json` + ); +}; + +export const createConfigDir = () => { + if (!fs.existsSync(configDir)) { + fs.mkdirSync(configDir, { recursive: true }); + } +}; + +export const getLastUpdate = (packageName: string) => { + const configFile = getConfigFile(packageName); + + try { + if (!fs.existsSync(configFile)) { + return undefined; + } + const file = JSON.parse(fs.readFileSync(configFile, 'utf8')); + return file.lastUpdateCheck as number; + } catch { + return undefined; + } +}; + +export const saveLastUpdate = (packageName: string) => { + const configFile = getConfigFile(packageName); + + fs.writeFileSync( + configFile, + JSON.stringify({ lastUpdateCheck: new Date().getTime() }) + ); +}; diff --git a/node_modules/simple-update-notifier/src/getDistVersion.spec.ts b/node_modules/simple-update-notifier/src/getDistVersion.spec.ts new file mode 100644 index 0000000..b78a42e --- /dev/null +++ b/node_modules/simple-update-notifier/src/getDistVersion.spec.ts @@ -0,0 +1,35 @@ +import Stream from 'stream'; +import https from 'https'; +import getDistVersion from './getDistVersion'; + +jest.mock('https', () => ({ + get: jest.fn(), +})); + +test('Valid response returns version', async () => { + const st = new Stream(); + (https.get as jest.Mock).mockImplementation((url, cb) => { + cb(st); + + st.emit('data', '{"latest":"1.0.0"}'); + st.emit('end'); + }); + + const version = await getDistVersion('test', 'latest'); + + expect(version).toEqual('1.0.0'); +}); + +test('Invalid response throws error', async () => { + const st = new Stream(); + (https.get as jest.Mock).mockImplementation((url, cb) => { + cb(st); + + st.emit('data', 'some invalid json'); + st.emit('end'); + }); + + expect(getDistVersion('test', 'latest')).rejects.toThrow( + 'Could not parse version response' + ); +}); diff --git a/node_modules/simple-update-notifier/src/getDistVersion.ts b/node_modules/simple-update-notifier/src/getDistVersion.ts new file mode 100644 index 0000000..d474e1f --- /dev/null +++ b/node_modules/simple-update-notifier/src/getDistVersion.ts @@ -0,0 +1,29 @@ +import https from 'https'; + +const getDistVersion = async (packageName: string, distTag: string) => { + const url = `https://registry.npmjs.org/-/package/${packageName}/dist-tags`; + + return new Promise((resolve, reject) => { + https + .get(url, (res) => { + let body = ''; + + res.on('data', (chunk) => (body += chunk)); + res.on('end', () => { + try { + const json = JSON.parse(body); + const version = json[distTag]; + if (!version) { + reject(new Error('Error getting version')); + } + resolve(version); + } catch { + reject(new Error('Could not parse version response')); + } + }); + }) + .on('error', (err) => reject(err)); + }); +}; + +export default getDistVersion; diff --git a/node_modules/simple-update-notifier/src/hasNewVersion.spec.ts b/node_modules/simple-update-notifier/src/hasNewVersion.spec.ts new file mode 100644 index 0000000..af7ab22 --- /dev/null +++ b/node_modules/simple-update-notifier/src/hasNewVersion.spec.ts @@ -0,0 +1,82 @@ +import hasNewVersion from './hasNewVersion'; +import { getLastUpdate } from './cache'; +import getDistVersion from './getDistVersion'; + +jest.mock('./getDistVersion', () => jest.fn().mockReturnValue('1.0.0')); +jest.mock('./cache', () => ({ + getLastUpdate: jest.fn().mockReturnValue(undefined), + createConfigDir: jest.fn(), + saveLastUpdate: jest.fn(), +})); + +const pkg = { name: 'test', version: '1.0.0' }; + +afterEach(() => jest.clearAllMocks()); + +const defaultArgs = { + pkg, + shouldNotifyInNpmScript: true, + alwaysRun: true, +}; + +test('it should not trigger update for same version', async () => { + const newVersion = await hasNewVersion(defaultArgs); + + expect(newVersion).toBe(false); +}); + +test('it should trigger update for patch version bump', async () => { + (getDistVersion as jest.Mock).mockReturnValue('1.0.1'); + + const newVersion = await hasNewVersion(defaultArgs); + + expect(newVersion).toBe('1.0.1'); +}); + +test('it should trigger update for minor version bump', async () => { + (getDistVersion as jest.Mock).mockReturnValue('1.1.0'); + + const newVersion = await hasNewVersion(defaultArgs); + + expect(newVersion).toBe('1.1.0'); +}); + +test('it should trigger update for major version bump', async () => { + (getDistVersion as jest.Mock).mockReturnValue('2.0.0'); + + const newVersion = await hasNewVersion(defaultArgs); + + expect(newVersion).toBe('2.0.0'); +}); + +test('it should not trigger update if version is lower', async () => { + (getDistVersion as jest.Mock).mockReturnValue('0.0.9'); + + const newVersion = await hasNewVersion(defaultArgs); + + expect(newVersion).toBe(false); +}); + +it('should trigger update check if last update older than config', async () => { + const TWO_WEEKS = new Date().getTime() - 1000 * 60 * 60 * 24 * 14; + (getLastUpdate as jest.Mock).mockReturnValue(TWO_WEEKS); + const newVersion = await hasNewVersion({ + pkg, + shouldNotifyInNpmScript: true, + }); + + expect(newVersion).toBe(false); + expect(getDistVersion).toHaveBeenCalled(); +}); + +it('should not trigger update check if last update is too recent', async () => { + const TWELVE_HOURS = new Date().getTime() - 1000 * 60 * 60 * 12; + (getLastUpdate as jest.Mock).mockReturnValue(TWELVE_HOURS); + const newVersion = await hasNewVersion({ + pkg, + shouldNotifyInNpmScript: true, + }); + + expect(newVersion).toBe(false); + expect(getDistVersion).not.toHaveBeenCalled(); +}); diff --git a/node_modules/simple-update-notifier/src/hasNewVersion.ts b/node_modules/simple-update-notifier/src/hasNewVersion.ts new file mode 100644 index 0000000..31d5069 --- /dev/null +++ b/node_modules/simple-update-notifier/src/hasNewVersion.ts @@ -0,0 +1,40 @@ +import semver from 'semver'; +import { createConfigDir, getLastUpdate, saveLastUpdate } from './cache'; +import getDistVersion from './getDistVersion'; +import { IUpdate } from './types'; + +const hasNewVersion = async ({ + pkg, + updateCheckInterval = 1000 * 60 * 60 * 24, + distTag = 'latest', + alwaysRun, + debug, +}: IUpdate) => { + createConfigDir(); + const lastUpdateCheck = getLastUpdate(pkg.name); + if ( + alwaysRun || + !lastUpdateCheck || + lastUpdateCheck < new Date().getTime() - updateCheckInterval + ) { + const latestVersion = await getDistVersion(pkg.name, distTag); + saveLastUpdate(pkg.name); + if (semver.gt(latestVersion, pkg.version)) { + return latestVersion; + } else if (debug) { + console.error( + `Latest version (${latestVersion}) not newer than current version (${pkg.version})` + ); + } + } else if (debug) { + console.error( + `Too recent to check for a new update. simpleUpdateNotifier() interval set to ${updateCheckInterval}ms but only ${ + new Date().getTime() - lastUpdateCheck + }ms since last check.` + ); + } + + return false; +}; + +export default hasNewVersion; diff --git a/node_modules/simple-update-notifier/src/index.spec.ts b/node_modules/simple-update-notifier/src/index.spec.ts new file mode 100644 index 0000000..98ffb5a --- /dev/null +++ b/node_modules/simple-update-notifier/src/index.spec.ts @@ -0,0 +1,27 @@ +import simpleUpdateNotifier from '.'; +import hasNewVersion from './hasNewVersion'; + +const consoleSpy = jest.spyOn(console, 'error'); + +jest.mock('./hasNewVersion', () => jest.fn().mockResolvedValue('2.0.0')); + +beforeEach(jest.clearAllMocks); + +test('it logs message if update is available', async () => { + await simpleUpdateNotifier({ + pkg: { name: 'test', version: '1.0.0' }, + alwaysRun: true, + }); + + expect(consoleSpy).toHaveBeenCalledTimes(1); +}); + +test('it does not log message if update is not available', async () => { + (hasNewVersion as jest.Mock).mockResolvedValue(false); + await simpleUpdateNotifier({ + pkg: { name: 'test', version: '2.0.0' }, + alwaysRun: true, + }); + + expect(consoleSpy).toHaveBeenCalledTimes(0); +}); diff --git a/node_modules/simple-update-notifier/src/index.ts b/node_modules/simple-update-notifier/src/index.ts new file mode 100644 index 0000000..2b0d2cf --- /dev/null +++ b/node_modules/simple-update-notifier/src/index.ts @@ -0,0 +1,34 @@ +import isNpmOrYarn from './isNpmOrYarn'; +import hasNewVersion from './hasNewVersion'; +import { IUpdate } from './types'; +import borderedText from './borderedText'; + +const simpleUpdateNotifier = async (args: IUpdate) => { + if ( + !args.alwaysRun && + (!process.stdout.isTTY || (isNpmOrYarn && !args.shouldNotifyInNpmScript)) + ) { + if (args.debug) { + console.error('Opting out of running simpleUpdateNotifier()'); + } + return; + } + + try { + const latestVersion = await hasNewVersion(args); + if (latestVersion) { + console.error( + borderedText(`New version of ${args.pkg.name} available! +Current Version: ${args.pkg.version} +Latest Version: ${latestVersion}`) + ); + } + } catch (err) { + // Catch any network errors or cache writing errors so module doesn't cause a crash + if (args.debug && err instanceof Error) { + console.error('Unexpected error in simpleUpdateNotifier():', err); + } + } +}; + +export default simpleUpdateNotifier; diff --git a/node_modules/simple-update-notifier/src/isNpmOrYarn.ts b/node_modules/simple-update-notifier/src/isNpmOrYarn.ts new file mode 100644 index 0000000..ee4c837 --- /dev/null +++ b/node_modules/simple-update-notifier/src/isNpmOrYarn.ts @@ -0,0 +1,12 @@ +import process from 'process'; + +const packageJson = process.env.npm_package_json; +const userAgent = process.env.npm_config_user_agent; +const isNpm6 = Boolean(userAgent && userAgent.startsWith('npm')); +const isNpm7 = Boolean(packageJson && packageJson.endsWith('package.json')); + +const isNpm = isNpm6 || isNpm7; +const isYarn = Boolean(userAgent && userAgent.startsWith('yarn')); +const isNpmOrYarn = isNpm || isYarn; + +export default isNpmOrYarn; diff --git a/node_modules/simple-update-notifier/src/types.ts b/node_modules/simple-update-notifier/src/types.ts new file mode 100644 index 0000000..c395eb0 --- /dev/null +++ b/node_modules/simple-update-notifier/src/types.ts @@ -0,0 +1,8 @@ +export interface IUpdate { + pkg: { name: string; version: string }; + updateCheckInterval?: number; + shouldNotifyInNpmScript?: boolean; + distTag?: string; + alwaysRun?: boolean; + debug?: boolean; +} diff --git a/node_modules/statuses/HISTORY.md b/node_modules/statuses/HISTORY.md new file mode 100644 index 0000000..fa4556e --- /dev/null +++ b/node_modules/statuses/HISTORY.md @@ -0,0 +1,82 @@ +2.0.1 / 2021-01-03 +================== + + * Fix returning values from `Object.prototype` + +2.0.0 / 2020-04-19 +================== + + * Drop support for Node.js 0.6 + * Fix messaging casing of `418 I'm a Teapot` + * Remove code 306 + * Remove `status[code]` exports; use `status.message[code]` + * Remove `status[msg]` exports; use `status.code[msg]` + * Rename `425 Unordered Collection` to standard `425 Too Early` + * Rename `STATUS_CODES` export to `message` + * Return status message for `statuses(code)` when given code + +1.5.0 / 2018-03-27 +================== + + * Add `103 Early Hints` + +1.4.0 / 2017-10-20 +================== + + * Add `STATUS_CODES` export + +1.3.1 / 2016-11-11 +================== + + * Fix return type in JSDoc + +1.3.0 / 2016-05-17 +================== + + * Add `421 Misdirected Request` + * perf: enable strict mode + +1.2.1 / 2015-02-01 +================== + + * Fix message for status 451 + - `451 Unavailable For Legal Reasons` + +1.2.0 / 2014-09-28 +================== + + * Add `208 Already Repored` + * Add `226 IM Used` + * Add `306 (Unused)` + * Add `415 Unable For Legal Reasons` + * Add `508 Loop Detected` + +1.1.1 / 2014-09-24 +================== + + * Add missing 308 to `codes.json` + +1.1.0 / 2014-09-21 +================== + + * Add `codes.json` for universal support + +1.0.4 / 2014-08-20 +================== + + * Package cleanup + +1.0.3 / 2014-06-08 +================== + + * Add 308 to `.redirect` category + +1.0.2 / 2014-03-13 +================== + + * Add `.retry` category + +1.0.1 / 2014-03-12 +================== + + * Initial release diff --git a/node_modules/statuses/LICENSE b/node_modules/statuses/LICENSE new file mode 100644 index 0000000..28a3161 --- /dev/null +++ b/node_modules/statuses/LICENSE @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/statuses/README.md b/node_modules/statuses/README.md new file mode 100644 index 0000000..57967e6 --- /dev/null +++ b/node_modules/statuses/README.md @@ -0,0 +1,136 @@ +# statuses + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP status utility for node. + +This module provides a list of status codes and messages sourced from +a few different projects: + + * The [IANA Status Code Registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) + * The [Node.js project](https://nodejs.org/) + * The [NGINX project](https://www.nginx.com/) + * The [Apache HTTP Server project](https://httpd.apache.org/) + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install statuses +``` + +## API + + + +```js +var status = require('statuses') +``` + +### status(code) + +Returns the status message string for a known HTTP status code. The code +may be a number or a string. An error is thrown for an unknown status code. + + + +```js +status(403) // => 'Forbidden' +status('403') // => 'Forbidden' +status(306) // throws +``` + +### status(msg) + +Returns the numeric status code for a known HTTP status message. The message +is case-insensitive. An error is thrown for an unknown status message. + + + +```js +status('forbidden') // => 403 +status('Forbidden') // => 403 +status('foo') // throws +``` + +### status.codes + +Returns an array of all the status codes as `Integer`s. + +### status.code[msg] + +Returns the numeric status code for a known status message (in lower-case), +otherwise `undefined`. + + + +```js +status['not found'] // => 404 +``` + +### status.empty[code] + +Returns `true` if a status code expects an empty body. + + + +```js +status.empty[200] // => undefined +status.empty[204] // => true +status.empty[304] // => true +``` + +### status.message[code] + +Returns the string message for a known numeric status code, otherwise +`undefined`. This object is the same format as the +[Node.js http module `http.STATUS_CODES`](https://nodejs.org/dist/latest/docs/api/http.html#http_http_status_codes). + + + +```js +status.message[404] // => 'Not Found' +``` + +### status.redirect[code] + +Returns `true` if a status code is a valid redirect status. + + + +```js +status.redirect[200] // => undefined +status.redirect[301] // => true +``` + +### status.retry[code] + +Returns `true` if you should retry the rest. + + + +```js +status.retry[501] // => undefined +status.retry[503] // => true +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/statuses/master?label=ci +[ci-url]: https://github.com/jshttp/statuses/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/statuses/master +[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master +[node-version-image]: https://badgen.net/npm/node/statuses +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/statuses +[npm-url]: https://npmjs.org/package/statuses +[npm-version-image]: https://badgen.net/npm/v/statuses diff --git a/node_modules/statuses/codes.json b/node_modules/statuses/codes.json new file mode 100644 index 0000000..1333ed1 --- /dev/null +++ b/node_modules/statuses/codes.json @@ -0,0 +1,65 @@ +{ + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a Teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Too Early", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" +} diff --git a/node_modules/statuses/index.js b/node_modules/statuses/index.js new file mode 100644 index 0000000..ea351c5 --- /dev/null +++ b/node_modules/statuses/index.js @@ -0,0 +1,146 @@ +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var codes = require('./codes.json') + +/** + * Module exports. + * @public + */ + +module.exports = status + +// status code to message map +status.message = codes + +// status message (lower-case) to code map +status.code = createMessageToStatusCodeMap(codes) + +// array of status codes +status.codes = createStatusCodeList(codes) + +// status codes for redirects +status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true +} + +// status codes for empty bodies +status.empty = { + 204: true, + 205: true, + 304: true +} + +// status codes for when you should retry the request +status.retry = { + 502: true, + 503: true, + 504: true +} + +/** + * Create a map of message to status code. + * @private + */ + +function createMessageToStatusCodeMap (codes) { + var map = {} + + Object.keys(codes).forEach(function forEachCode (code) { + var message = codes[code] + var status = Number(code) + + // populate map + map[message.toLowerCase()] = status + }) + + return map +} + +/** + * Create a list of all status codes. + * @private + */ + +function createStatusCodeList (codes) { + return Object.keys(codes).map(function mapCode (code) { + return Number(code) + }) +} + +/** + * Get the status code for given message. + * @private + */ + +function getStatusCode (message) { + var msg = message.toLowerCase() + + if (!Object.prototype.hasOwnProperty.call(status.code, msg)) { + throw new Error('invalid status message: "' + message + '"') + } + + return status.code[msg] +} + +/** + * Get the status message for given code. + * @private + */ + +function getStatusMessage (code) { + if (!Object.prototype.hasOwnProperty.call(status.message, code)) { + throw new Error('invalid status code: ' + code) + } + + return status.message[code] +} + +/** + * Get the status code. + * + * Given a number, this will throw if it is not a known status + * code, otherwise the code will be returned. Given a string, + * the string will be parsed for a number and return the code + * if valid, otherwise will lookup the code assuming this is + * the status message. + * + * @param {string|number} code + * @returns {number} + * @public + */ + +function status (code) { + if (typeof code === 'number') { + return getStatusMessage(code) + } + + if (typeof code !== 'string') { + throw new TypeError('code must be a number or string') + } + + // '403' + var n = parseInt(code, 10) + if (!isNaN(n)) { + return getStatusMessage(n) + } + + return getStatusCode(code) +} diff --git a/node_modules/statuses/package.json b/node_modules/statuses/package.json new file mode 100644 index 0000000..8c3e719 --- /dev/null +++ b/node_modules/statuses/package.json @@ -0,0 +1,49 @@ +{ + "name": "statuses", + "description": "HTTP status utility", + "version": "2.0.1", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "repository": "jshttp/statuses", + "license": "MIT", + "keywords": [ + "http", + "status", + "code" + ], + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "devDependencies": { + "csv-parse": "4.14.2", + "eslint": "7.17.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.22.1", + "eslint-plugin-markdown": "1.0.2", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.2.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "8.2.1", + "nyc": "15.1.0", + "raw-body": "2.4.1", + "stream-to-array": "2.3.0" + }, + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "build": "node scripts/build.js", + "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "update": "npm run fetch && npm run build", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/supports-color/browser.js b/node_modules/supports-color/browser.js new file mode 100644 index 0000000..62afa3a --- /dev/null +++ b/node_modules/supports-color/browser.js @@ -0,0 +1,5 @@ +'use strict'; +module.exports = { + stdout: false, + stderr: false +}; diff --git a/node_modules/supports-color/index.js b/node_modules/supports-color/index.js new file mode 100644 index 0000000..1704131 --- /dev/null +++ b/node_modules/supports-color/index.js @@ -0,0 +1,131 @@ +'use strict'; +const os = require('os'); +const hasFlag = require('has-flag'); + +const env = process.env; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + + const min = forceColor ? 1 : 0; + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + if (env.TERM === 'dumb') { + return min; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; diff --git a/node_modules/supports-color/license b/node_modules/supports-color/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission 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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/supports-color/package.json b/node_modules/supports-color/package.json new file mode 100644 index 0000000..ad199f5 --- /dev/null +++ b/node_modules/supports-color/package.json @@ -0,0 +1,53 @@ +{ + "name": "supports-color", + "version": "5.5.0", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "browser.js" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "dependencies": { + "has-flag": "^3.0.0" + }, + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "browser": "browser.js" +} diff --git a/node_modules/supports-color/readme.md b/node_modules/supports-color/readme.md new file mode 100644 index 0000000..f6e4019 --- /dev/null +++ b/node_modules/supports-color/readme.md @@ -0,0 +1,66 @@ +# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) + +> Detect whether a terminal supports color + + +## Install + +``` +$ npm install supports-color +``` + + +## Usage + +```js +const supportsColor = require('supports-color'); + +if (supportsColor.stdout) { + console.log('Terminal stdout supports color'); +} + +if (supportsColor.stdout.has256) { + console.log('Terminal stdout supports 256 colors'); +} + +if (supportsColor.stderr.has16m) { + console.log('Terminal stderr supports 16 million colors (truecolor)'); +} +``` + + +## API + +Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. + +The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: + +- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) +- `.level = 2` and `.has256 = true`: 256 color support +- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) + + +## Info + +It obeys the `--color` and `--no-color` CLI flags. + +Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. + +Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. + + +## Related + +- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/node_modules/to-regex-range/LICENSE b/node_modules/to-regex-range/LICENSE new file mode 100644 index 0000000..7cccaf9 --- /dev/null +++ b/node_modules/to-regex-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/to-regex-range/README.md b/node_modules/to-regex-range/README.md new file mode 100644 index 0000000..38887da --- /dev/null +++ b/node_modules/to-regex-range/README.md @@ -0,0 +1,305 @@ +# to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range) + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex-range +``` + +
+What does this do? + +
+ +This libary generates the `source` string to be passed to `new RegExp()` for matching a range of numbers. + +**Example** + +```js +const toRegexRange = require('to-regex-range'); +const regex = new RegExp(toRegexRange('15', '95')); +``` + +A string is returned so that you can do whatever you need with it before passing it to `new RegExp()` (like adding `^` or `$` boundaries, defining flags, or combining it another string). + +
+ +
+ +
+Why use this library? + +
+ +### Convenience + +Creating regular expressions for matching numbers gets deceptively complicated pretty fast. + +For example, let's say you need a validation regex for matching part of a user-id, postal code, social security number, tax id, etc: + +* regex for matching `1` => `/1/` (easy enough) +* regex for matching `1` through `5` => `/[1-5]/` (not bad...) +* regex for matching `1` or `5` => `/(1|5)/` (still easy...) +* regex for matching `1` through `50` => `/([1-9]|[1-4][0-9]|50)/` (uh-oh...) +* regex for matching `1` through `55` => `/([1-9]|[1-4][0-9]|5[0-5])/` (no prob, I can do this...) +* regex for matching `1` through `555` => `/([1-9]|[1-9][0-9]|[1-4][0-9]{2}|5[0-4][0-9]|55[0-5])/` (maybe not...) +* regex for matching `0001` through `5555` => `/(0{3}[1-9]|0{2}[1-9][0-9]|0[1-9][0-9]{2}|[1-4][0-9]{3}|5[0-4][0-9]{2}|55[0-4][0-9]|555[0-5])/` (okay, I get the point!) + +The numbers are contrived, but they're also really basic. In the real world you might need to generate a regex on-the-fly for validation. + +**Learn more** + +If you're interested in learning more about [character classes](http://www.regular-expressions.info/charclass.html) and other regex features, I personally have always found [regular-expressions.info](http://www.regular-expressions.info/charclass.html) to be pretty useful. + +### Heavily tested + +As of April 07, 2019, this library runs [>1m test assertions](./test/test.js) against generated regex-ranges to provide brute-force verification that results are correct. + +Tests run in ~280ms on my MacBook Pro, 2.5 GHz Intel Core i7. + +### Optimized + +Generated regular expressions are optimized: + +* duplicate sequences and character classes are reduced using quantifiers +* smart enough to use `?` conditionals when number(s) or range(s) can be positive or negative +* uses fragment caching to avoid processing the same exact string more than once + +
+ +
+ +## Usage + +Add this library to your javascript application with the following line of code + +```js +const toRegexRange = require('to-regex-range'); +``` + +The main export is a function that takes two integers: the `min` value and `max` value (formatted as strings or numbers). + +```js +const source = toRegexRange('15', '95'); +//=> 1[5-9]|[2-8][0-9]|9[0-5] + +const regex = new RegExp(`^${source}$`); +console.log(regex.test('14')); //=> false +console.log(regex.test('50')); //=> true +console.log(regex.test('94')); //=> true +console.log(regex.test('96')); //=> false +``` + +## Options + +### options.capture + +**Type**: `boolean` + +**Deafault**: `undefined` + +Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges. + +```js +console.log(toRegexRange('-10', '10')); +//=> -[1-9]|-?10|[0-9] + +console.log(toRegexRange('-10', '10', { capture: true })); +//=> (-[1-9]|-?10|[0-9]) +``` + +### options.shorthand + +**Type**: `boolean` + +**Deafault**: `undefined` + +Use the regex shorthand for `[0-9]`: + +```js +console.log(toRegexRange('0', '999999')); +//=> [0-9]|[1-9][0-9]{1,5} + +console.log(toRegexRange('0', '999999', { shorthand: true })); +//=> \d|[1-9]\d{1,5} +``` + +### options.relaxZeros + +**Type**: `boolean` + +**Default**: `true` + +This option relaxes matching for leading zeros when when ranges are zero-padded. + +```js +const source = toRegexRange('-0010', '0010'); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> true +console.log(regex.test('-010')); //=> true +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> true +console.log(regex.test('010')); //=> true +console.log(regex.test('0010')); //=> true +``` + +When `relaxZeros` is false, matching is strict: + +```js +const source = toRegexRange('-0010', '0010', { relaxZeros: false }); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> false +console.log(regex.test('-010')); //=> false +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> false +console.log(regex.test('010')); //=> false +console.log(regex.test('0010')); //=> true +``` + +## Examples + +| **Range** | **Result** | **Compile time** | +| --- | --- | --- | +| `toRegexRange(-10, 10)` | `-[1-9]\|-?10\|[0-9]` | _132μs_ | +| `toRegexRange(-100, -10)` | `-1[0-9]\|-[2-9][0-9]\|-100` | _50μs_ | +| `toRegexRange(-100, 100)` | `-[1-9]\|-?[1-9][0-9]\|-?100\|[0-9]` | _42μs_ | +| `toRegexRange(001, 100)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|100` | _109μs_ | +| `toRegexRange(001, 555)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _51μs_ | +| `toRegexRange(0010, 1000)` | `0{0,2}1[0-9]\|0{0,2}[2-9][0-9]\|0?[1-9][0-9]{2}\|1000` | _31μs_ | +| `toRegexRange(1, 50)` | `[1-9]\|[1-4][0-9]\|50` | _24μs_ | +| `toRegexRange(1, 55)` | `[1-9]\|[1-4][0-9]\|5[0-5]` | _23μs_ | +| `toRegexRange(1, 555)` | `[1-9]\|[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _30μs_ | +| `toRegexRange(1, 5555)` | `[1-9]\|[1-9][0-9]{1,2}\|[1-4][0-9]{3}\|5[0-4][0-9]{2}\|55[0-4][0-9]\|555[0-5]` | _43μs_ | +| `toRegexRange(111, 555)` | `11[1-9]\|1[2-9][0-9]\|[2-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _38μs_ | +| `toRegexRange(29, 51)` | `29\|[34][0-9]\|5[01]` | _24μs_ | +| `toRegexRange(31, 877)` | `3[1-9]\|[4-9][0-9]\|[1-7][0-9]{2}\|8[0-6][0-9]\|87[0-7]` | _32μs_ | +| `toRegexRange(5, 5)` | `5` | _8μs_ | +| `toRegexRange(5, 6)` | `5\|6` | _11μs_ | +| `toRegexRange(1, 2)` | `1\|2` | _6μs_ | +| `toRegexRange(1, 5)` | `[1-5]` | _15μs_ | +| `toRegexRange(1, 10)` | `[1-9]\|10` | _22μs_ | +| `toRegexRange(1, 100)` | `[1-9]\|[1-9][0-9]\|100` | _25μs_ | +| `toRegexRange(1, 1000)` | `[1-9]\|[1-9][0-9]{1,2}\|1000` | _31μs_ | +| `toRegexRange(1, 10000)` | `[1-9]\|[1-9][0-9]{1,3}\|10000` | _34μs_ | +| `toRegexRange(1, 100000)` | `[1-9]\|[1-9][0-9]{1,4}\|100000` | _36μs_ | +| `toRegexRange(1, 1000000)` | `[1-9]\|[1-9][0-9]{1,5}\|1000000` | _42μs_ | +| `toRegexRange(1, 10000000)` | `[1-9]\|[1-9][0-9]{1,6}\|10000000` | _42μs_ | + +## Heads up! + +**Order of arguments** + +When the `min` is larger than the `max`, values will be flipped to create a valid range: + +```js +toRegexRange('51', '29'); +``` + +Is effectively flipped to: + +```js +toRegexRange('29', '51'); +//=> 29|[3-4][0-9]|5[0-1] +``` + +**Steps / increments** + +This library does not support steps (increments). A pr to add support would be welcome. + +## History + +### v2.0.0 - 2017-04-21 + +**New features** + +Adds support for zero-padding! + +### v1.0.0 + +**Optimizations** + +Repeating ranges are now grouped using quantifiers. rocessing time is roughly the same, but the generated regex is much smaller, which should result in faster matching. + +## Attribution + +Inspired by the python library [range-regex](https://github.com/dimka665/range-regex). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") +* [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 63 | [jonschlinkert](https://github.com/jonschlinkert) | +| 3 | [doowb](https://github.com/doowb) | +| 2 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 07, 2019._ \ No newline at end of file diff --git a/node_modules/to-regex-range/index.js b/node_modules/to-regex-range/index.js new file mode 100644 index 0000000..77fbace --- /dev/null +++ b/node_modules/to-regex-range/index.js @@ -0,0 +1,288 @@ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const isNumber = require('is-number'); + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + let intersected = filterPatterns(neg, pos, '-?', true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit, options); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +module.exports = toRegexRange; diff --git a/node_modules/to-regex-range/package.json b/node_modules/to-regex-range/package.json new file mode 100644 index 0000000..4ef194f --- /dev/null +++ b/node_modules/to-regex-range/package.json @@ -0,0 +1,88 @@ +{ + "name": "to-regex-range", + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "version": "5.0.1", + "homepage": "https://github.com/micromatch/to-regex-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "micromatch/to-regex-range", + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.0" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "is-number": "^7.0.0" + }, + "devDependencies": { + "fill-range": "^6.0.0", + "gulp-format-md": "^2.0.0", + "mocha": "^6.0.2", + "text-table": "^0.2.0", + "time-diff": "^0.3.1" + }, + "keywords": [ + "bash", + "date", + "expand", + "expansion", + "expression", + "glob", + "match", + "match date", + "match number", + "match numbers", + "match year", + "matches", + "matching", + "number", + "numbers", + "numerical", + "range", + "ranges", + "regex", + "regexp", + "regular", + "regular expression", + "sequence" + ], + "verb": { + "layout": "default", + "toc": false, + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "helpers": { + "examples": { + "displayName": "examples" + } + }, + "related": { + "list": [ + "expand-range", + "fill-range", + "micromatch", + "repeat-element", + "repeat-string" + ] + } + } +} diff --git a/node_modules/toidentifier/HISTORY.md b/node_modules/toidentifier/HISTORY.md new file mode 100644 index 0000000..cb7cc89 --- /dev/null +++ b/node_modules/toidentifier/HISTORY.md @@ -0,0 +1,9 @@ +1.0.1 / 2021-11-14 +================== + + * pref: enable strict mode + +1.0.0 / 2018-07-09 +================== + + * Initial release diff --git a/node_modules/toidentifier/LICENSE b/node_modules/toidentifier/LICENSE new file mode 100644 index 0000000..de22d15 --- /dev/null +++ b/node_modules/toidentifier/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/toidentifier/README.md b/node_modules/toidentifier/README.md new file mode 100644 index 0000000..57e8a78 --- /dev/null +++ b/node_modules/toidentifier/README.md @@ -0,0 +1,61 @@ +# toidentifier + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][codecov-image]][codecov-url] + +> Convert a string of words to a JavaScript identifier + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install toidentifier +``` + +## Example + +```js +var toIdentifier = require('toidentifier') + +console.log(toIdentifier('Bad Request')) +// => "BadRequest" +``` + +## API + +This CommonJS module exports a single default function: `toIdentifier`. + +### toIdentifier(string) + +Given a string as the argument, it will be transformed according to +the following rules and the new string will be returned: + +1. Split into words separated by space characters (`0x20`). +2. Upper case the first character of each word. +3. Join the words together with no separator. +4. Remove all non-word (`[0-9a-z_]`) characters. + +## License + +[MIT](LICENSE) + +[codecov-image]: https://img.shields.io/codecov/c/github/component/toidentifier.svg +[codecov-url]: https://codecov.io/gh/component/toidentifier +[downloads-image]: https://img.shields.io/npm/dm/toidentifier.svg +[downloads-url]: https://npmjs.org/package/toidentifier +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/component/toidentifier/ci/master?label=ci +[github-actions-ci-url]: https://github.com/component/toidentifier?query=workflow%3Aci +[npm-image]: https://img.shields.io/npm/v/toidentifier.svg +[npm-url]: https://npmjs.org/package/toidentifier + + +## + +[npm]: https://www.npmjs.com/ + +[yarn]: https://yarnpkg.com/ diff --git a/node_modules/toidentifier/index.js b/node_modules/toidentifier/index.js new file mode 100644 index 0000000..9295d02 --- /dev/null +++ b/node_modules/toidentifier/index.js @@ -0,0 +1,32 @@ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = toIdentifier + +/** + * Trasform the given string into a JavaScript identifier + * + * @param {string} str + * @returns {string} + * @public + */ + +function toIdentifier (str) { + return str + .split(' ') + .map(function (token) { + return token.slice(0, 1).toUpperCase() + token.slice(1) + }) + .join('') + .replace(/[^ _0-9a-z]/gi, '') +} diff --git a/node_modules/toidentifier/package.json b/node_modules/toidentifier/package.json new file mode 100644 index 0000000..42db1a6 --- /dev/null +++ b/node_modules/toidentifier/package.json @@ -0,0 +1,38 @@ +{ + "name": "toidentifier", + "description": "Convert a string of words to a JavaScript identifier", + "version": "1.0.1", + "author": "Douglas Christopher Wilson ", + "contributors": [ + "Douglas Christopher Wilson ", + "Nick Baugh (http://niftylettuce.com/)" + ], + "repository": "component/toidentifier", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "license": "MIT", + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/touch/LICENSE b/node_modules/touch/LICENSE new file mode 100644 index 0000000..05eeeb8 --- /dev/null +++ b/node_modules/touch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/touch/README.md b/node_modules/touch/README.md new file mode 100644 index 0000000..b5a361e --- /dev/null +++ b/node_modules/touch/README.md @@ -0,0 +1,52 @@ +# node-touch + +For all your node touching needs. + +## Installing + +```bash +npm install touch +``` + +## CLI Usage: + +See `man touch` + +This package exports a binary called `nodetouch` that works mostly +like the unix builtin `touch(1)`. + +## API Usage: + +```javascript +var touch = require("touch") +``` + +Gives you the following functions: + +* `touch(filename, options, cb)` +* `touch.sync(filename, options)` +* `touch.ftouch(fd, options, cb)` +* `touch.ftouchSync(fd, options)` + +All the `options` objects are optional. + +All the async functions return a Promise. If a callback function is +provided, then it's attached to the Promise. + +## Options + +* `force` like `touch -f` Boolean +* `time` like `touch -t ` Can be a Date object, or any parseable + Date string, or epoch ms number. +* `atime` like `touch -a` Can be either a Boolean, or a Date. +* `mtime` like `touch -m` Can be either a Boolean, or a Date. +* `ref` like `touch -r ` Must be path to a file. +* `nocreate` like `touch -c` Boolean + +If neither `atime` nor `mtime` are set, then both values are set. If +one of them is set, then the other is not. + +## cli + +This package creates a `nodetouch` command line executable that works +very much like the unix builtin `touch(1)` diff --git a/node_modules/touch/bin/nodetouch.js b/node_modules/touch/bin/nodetouch.js new file mode 100644 index 0000000..f78f082 --- /dev/null +++ b/node_modules/touch/bin/nodetouch.js @@ -0,0 +1,112 @@ +#!/usr/bin/env node +const touch = require("../index.js") + +const usage = code => { + console[code ? 'error' : 'log']( + 'usage:\n' + + 'touch [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...' + ) + process.exit(code) +} + +const singleFlags = { + a: 'atime', + m: 'mtime', + c: 'nocreate', + f: 'force' +} + +const singleOpts = { + r: 'ref', + t: 'time' +} + +const files = [] +const args = process.argv.slice(2) +const options = {} +for (let i = 0; i < args.length; i++) { + const arg = args[i] + if (!arg.match(/^-/)) { + files.push(arg) + continue + } + + // expand shorthands + if (arg.charAt(1) !== '-') { + const expand = [] + for (let f = 1; f < arg.length; f++) { + const fc = arg.charAt(f) + const sf = singleFlags[fc] + const so = singleOpts[fc] + if (sf) + expand.push('--' + sf) + else if (so) { + const soslice = arg.slice(f + 1) + const soval = soslice.charAt(0) === '=' ? soslice : '=' + soslice + expand.push('--' + so + soval) + f = arg.length + } else if (arg !== '-' + fc) + expand.push('-' + fc) + } + if (expand.length) { + args.splice.apply(args, [i, 1].concat(expand)) + i-- + continue + } + } + + const argsplit = arg.split('=') + const key = argsplit.shift().replace(/^\-\-/, '') + const val = argsplit.length ? argsplit.join('=') : null + + switch (key) { + case 'time': + const timestr = val || args[++i] + // [-t [[CC]YY]MMDDhhmm[.SS]] + const parsedtime = timestr.match( + /^(([0-9]{2})?([0-9]{2}))?([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})(\.([0-9]{2}))?$/ + ) + if (!parsedtime) { + console.error('touch: out of range or illegal ' + + 'time specification: ' + + '[[CC]YY]MMDDhhmm[.SS]') + process.exit(1) + } else { + const y = +parsedtime[1] + const year = parsedtime[2] ? y + : y <= 68 ? 2000 + y + : 1900 + y + + const MM = +parsedtime[4] - 1 + const dd = +parsedtime[5] + const hh = +parsedtime[6] + const mm = +parsedtime[7] + const ss = +parsedtime[8] + + options.time = new Date(Date.UTC(year, MM, dd, hh, mm, ss)) + } + continue + + case 'ref': + options.ref = val || args[++i] + continue + + case 'mtime': + case 'nocreate': + case 'atime': + case 'force': + options[key] = true + continue + + default: + console.error('touch: illegal option -- ' + arg) + usage(1) + } +} + +if (!files.length) + usage() + +process.exitCode = 0 +Promise.all(files.map(f => touch(f, options))) + .catch(er => process.exitCode = 1) diff --git a/node_modules/touch/index.js b/node_modules/touch/index.js new file mode 100644 index 0000000..fa6a8d7 --- /dev/null +++ b/node_modules/touch/index.js @@ -0,0 +1,224 @@ +'use strict' + +const EE = require('events').EventEmitter +const cons = require('constants') +const fs = require('fs') + +module.exports = (f, options, cb) => { + if (typeof options === 'function') + cb = options, options = {} + + const p = new Promise((res, rej) => { + new Touch(validOpts(options, f, null)) + .on('done', res).on('error', rej) + }) + + return cb ? p.then(res => cb(null, res), cb) : p +} + +module.exports.sync = module.exports.touchSync = (f, options) => + (new TouchSync(validOpts(options, f, null)), undefined) + +module.exports.ftouch = (fd, options, cb) => { + if (typeof options === 'function') + cb = options, options = {} + + const p = new Promise((res, rej) => { + new Touch(validOpts(options, null, fd)) + .on('done', res).on('error', rej) + }) + + return cb ? p.then(res => cb(null, res), cb) : p +} + +module.exports.ftouchSync = (fd, opt) => + (new TouchSync(validOpts(opt, null, fd)), undefined) + +const validOpts = (options, path, fd) => { + options = Object.create(options || {}) + options.fd = fd + options.path = path + + // {mtime: true}, {ctime: true} + // If set to something else, then treat as epoch ms value + const now = new Date(options.time || Date.now()).getTime() / 1000 + if (!options.atime && !options.mtime) + options.atime = options.mtime = now + else { + if (true === options.atime) + options.atime = now + + if (true === options.mtime) + options.mtime = now + } + + let oflags = 0 + if (!options.force) + oflags = oflags | cons.O_RDWR + + if (!options.nocreate) + oflags = oflags | cons.O_CREAT + + options.oflags = oflags + return options +} + +class Touch extends EE { + constructor (options) { + super(options) + this.fd = options.fd + this.path = options.path + this.atime = options.atime + this.mtime = options.mtime + this.ref = options.ref + this.nocreate = !!options.nocreate + this.force = !!options.force + this.closeAfter = options.closeAfter + this.oflags = options.oflags + this.options = options + + if (typeof this.fd !== 'number') { + this.closeAfter = true + this.open() + } else + this.onopen(null, this.fd) + } + + emit (ev, data) { + // we only emit when either done or erroring + // in both cases, need to close + this.close() + return super.emit(ev, data) + } + + close () { + if (typeof this.fd === 'number' && this.closeAfter) + fs.close(this.fd, () => {}) + } + + open () { + fs.open(this.path, this.oflags, (er, fd) => this.onopen(er, fd)) + } + + onopen (er, fd) { + if (er) { + if (er.code === 'EISDIR') + this.onopen(null, null) + else if (er.code === 'ENOENT' && this.nocreate) + this.emit('done') + else + this.emit('error', er) + } else { + this.fd = fd + if (this.ref) + this.statref() + else if (!this.atime || !this.mtime) + this.fstat() + else + this.futimes() + } + } + + statref () { + fs.stat(this.ref, (er, st) => { + if (er) + this.emit('error', er) + else + this.onstatref(st) + }) + } + + onstatref (st) { + this.atime = this.atime && st.atime.getTime()/1000 + this.mtime = this.mtime && st.mtime.getTime()/1000 + if (!this.atime || !this.mtime) + this.fstat() + else + this.futimes() + } + + fstat () { + const stat = this.fd ? 'fstat' : 'stat' + const target = this.fd || this.path + fs[stat](target, (er, st) => { + if (er) + this.emit('error', er) + else + this.onfstat(st) + }) + } + + onfstat (st) { + if (typeof this.atime !== 'number') + this.atime = st.atime.getTime()/1000 + + if (typeof this.mtime !== 'number') + this.mtime = st.mtime.getTime()/1000 + + this.futimes() + } + + futimes () { + const utimes = this.fd ? 'futimes' : 'utimes' + const target = this.fd || this.path + fs[utimes](target, ''+this.atime, ''+this.mtime, er => { + if (er) + this.emit('error', er) + else + this.emit('done') + }) + } +} + +class TouchSync extends Touch { + open () { + try { + this.onopen(null, fs.openSync(this.path, this.oflags)) + } catch (er) { + this.onopen(er) + } + } + + statref () { + let threw = true + try { + this.onstatref(fs.statSync(this.ref)) + threw = false + } finally { + if (threw) + this.close() + } + } + + fstat () { + let threw = true + const stat = this.fd ? 'fstatSync' : 'statSync' + const target = this.fd || this.path + try { + this.onfstat(fs[stat](target)) + threw = false + } finally { + if (threw) + this.close() + } + } + + futimes () { + let threw = true + const utimes = this.fd ? 'futimesSync' : 'utimesSync' + const target = this.fd || this.path + try { + fs[utimes](target, this.atime, this.mtime) + threw = false + } finally { + if (threw) + this.close() + } + this.emit('done') + } + + close () { + if (typeof this.fd === 'number' && this.closeAfter) + try { fs.closeSync(this.fd) } catch (er) {} + } +} diff --git a/node_modules/touch/package.json b/node_modules/touch/package.json new file mode 100644 index 0000000..a51c29b --- /dev/null +++ b/node_modules/touch/package.json @@ -0,0 +1,25 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "name": "touch", + "description": "like touch(1) in node", + "version": "3.1.1", + "repository": "git://github.com/isaacs/node-touch.git", + "bin": { + "nodetouch": "./bin/nodetouch.js" + }, + "license": "ISC", + "scripts": { + "test": "tap test/*.js --100 -J", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "devDependencies": { + "mutate-fs": "^1.1.0", + "tap": "^10.7.0" + }, + "files": [ + "index.js", + "bin/nodetouch.js" + ] +} diff --git a/node_modules/type-is/HISTORY.md b/node_modules/type-is/HISTORY.md new file mode 100644 index 0000000..8de21f7 --- /dev/null +++ b/node_modules/type-is/HISTORY.md @@ -0,0 +1,259 @@ +1.6.18 / 2019-04-26 +=================== + + * Fix regression passing request object to `typeis.is` + +1.6.17 / 2019-04-25 +=================== + + * deps: mime-types@~2.1.24 + - Add Apple file extensions from IANA + - Add extension `.csl` to `application/vnd.citationstyles.style+xml` + - Add extension `.es` to `application/ecmascript` + - Add extension `.nq` to `application/n-quads` + - Add extension `.nt` to `application/n-triples` + - Add extension `.owl` to `application/rdf+xml` + - Add extensions `.siv` and `.sieve` to `application/sieve` + - Add extensions from IANA for `image/*` types + - Add extensions from IANA for `model/*` types + - Add extensions to HEIC image types + - Add new mime types + - Add `text/mdx` with extension `.mdx` + * perf: prevent internal `throw` on invalid type + +1.6.16 / 2018-02-16 +=================== + + * deps: mime-types@~2.1.18 + - Add `application/raml+yaml` with extension `.raml` + - Add `application/wasm` with extension `.wasm` + - Add `text/shex` with extension `.shex` + - Add extensions for JPEG-2000 images + - Add extensions from IANA for `message/*` types + - Add extension `.mjs` to `application/javascript` + - Add extension `.wadl` to `application/vnd.sun.wadl+xml` + - Add extension `.gz` to `application/gzip` + - Add glTF types and extensions + - Add new mime types + - Update extensions `.md` and `.markdown` to be `text/markdown` + - Update font MIME types + - Update `text/hjson` to registered `application/hjson` + +1.6.15 / 2017-03-31 +=================== + + * deps: mime-types@~2.1.15 + - Add new mime types + +1.6.14 / 2016-11-18 +=================== + + * deps: mime-types@~2.1.13 + - Add new mime types + +1.6.13 / 2016-05-18 +=================== + + * deps: mime-types@~2.1.11 + - Add new mime types + +1.6.12 / 2016-02-28 +=================== + + * deps: mime-types@~2.1.10 + - Add new mime types + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + +1.6.11 / 2016-01-29 +=================== + + * deps: mime-types@~2.1.9 + - Add new mime types + +1.6.10 / 2015-12-01 +=================== + + * deps: mime-types@~2.1.8 + - Add new mime types + +1.6.9 / 2015-09-27 +================== + + * deps: mime-types@~2.1.7 + - Add new mime types + +1.6.8 / 2015-09-04 +================== + + * deps: mime-types@~2.1.6 + - Add new mime types + +1.6.7 / 2015-08-20 +================== + + * Fix type error when given invalid type to match against + * deps: mime-types@~2.1.5 + - Add new mime types + +1.6.6 / 2015-07-31 +================== + + * deps: mime-types@~2.1.4 + - Add new mime types + +1.6.5 / 2015-07-16 +================== + + * deps: mime-types@~2.1.3 + - Add new mime types + +1.6.4 / 2015-07-01 +================== + + * deps: mime-types@~2.1.2 + - Add new mime types + * perf: enable strict mode + * perf: remove argument reassignment + +1.6.3 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - Add new mime types + * perf: reduce try block size + * perf: remove bitwise operations + +1.6.2 / 2015-05-10 +================== + + * deps: mime-types@~2.0.11 + - Add new mime types + +1.6.1 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - Add new mime types + +1.6.0 / 2015-02-12 +================== + + * fix false-positives in `hasBody` `Transfer-Encoding` check + * support wildcard for both type and subtype (`*/*`) + +1.5.7 / 2015-02-09 +================== + + * fix argument reassignment + * deps: mime-types@~2.0.9 + - Add new mime types + +1.5.6 / 2015-01-29 +================== + + * deps: mime-types@~2.0.8 + - Add new mime types + +1.5.5 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - Add new mime types + - Fix missing extensions + - Fix various invalid MIME type entries + - Remove example template MIME types + - deps: mime-db@~1.5.0 + +1.5.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - Add new mime types + - deps: mime-db@~1.3.0 + +1.5.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - Add new mime types + - deps: mime-db@~1.2.0 + +1.5.2 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - Add new mime types + - deps: mime-db@~1.1.0 + +1.5.1 / 2014-09-07 +================== + + * Support Node.js 0.6 + * deps: media-typer@0.3.0 + * deps: mime-types@~2.0.1 + - Support Node.js 0.6 + +1.5.0 / 2014-09-05 +================== + + * fix `hasbody` to be true for `content-length: 0` + +1.4.0 / 2014-09-02 +================== + + * update mime-types + +1.3.2 / 2014-06-24 +================== + + * use `~` range on mime-types + +1.3.1 / 2014-06-19 +================== + + * fix global variable leak + +1.3.0 / 2014-06-19 +================== + + * improve type parsing + + - invalid media type never matches + - media type not case-sensitive + - extra LWS does not affect results + +1.2.2 / 2014-06-19 +================== + + * fix behavior on unknown type argument + +1.2.1 / 2014-06-03 +================== + + * switch dependency from `mime` to `mime-types@1.0.0` + +1.2.0 / 2014-05-11 +================== + + * support suffix matching: + + - `+json` matches `application/vnd+json` + - `*/vnd+json` matches `application/vnd+json` + - `application/*+json` matches `application/vnd+json` + +1.1.0 / 2014-04-12 +================== + + * add non-array values support + * expose internal utilities: + + - `.is()` + - `.hasBody()` + - `.normalize()` + - `.match()` + +1.0.1 / 2014-03-30 +================== + + * add `multipart` as a shorthand diff --git a/node_modules/type-is/LICENSE b/node_modules/type-is/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/node_modules/type-is/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/type-is/README.md b/node_modules/type-is/README.md new file mode 100644 index 0000000..b85ef8f --- /dev/null +++ b/node_modules/type-is/README.md @@ -0,0 +1,170 @@ +# type-is + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Infer the content-type of a request. + +### Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install type-is +``` + +## API + +```js +var http = require('http') +var typeis = require('type-is') + +http.createServer(function (req, res) { + var istext = typeis(req, ['text/*']) + res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') +}) +``` + +### typeis(request, types) + +Checks if the `request` is one of the `types`. If the request has no body, +even if there is a `Content-Type` header, then `null` is returned. If the +`Content-Type` header is invalid or does not matches any of the `types`, then +`false` is returned. Otherwise, a string of the type that matched is returned. + +The `request` argument is expected to be a Node.js HTTP request. The `types` +argument is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +// req.headers.content-type = 'application/json' + +typeis(req, ['json']) // => 'json' +typeis(req, ['html', 'json']) // => 'json' +typeis(req, ['application/*']) // => 'application/json' +typeis(req, ['application/json']) // => 'application/json' + +typeis(req, ['html']) // => false +``` + +### typeis.hasBody(request) + +Returns a Boolean if the given `request` has a body, regardless of the +`Content-Type` header. + +Having a body has no relation to how large the body is (it may be 0 bytes). +This is similar to how file existence works. If a body does exist, then this +indicates that there is data to read from the Node.js request stream. + + + +```js +if (typeis.hasBody(req)) { + // read the body, since there is one + + req.on('data', function (chunk) { + // ... + }) +} +``` + +### typeis.is(mediaType, types) + +Checks if the `mediaType` is one of the `types`. If the `mediaType` is invalid +or does not matches any of the `types`, then `false` is returned. Otherwise, a +string of the type that matched is returned. + +The `mediaType` argument is expected to be a +[media type](https://tools.ietf.org/html/rfc6838) string. The `types` argument +is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +var mediaType = 'application/json' + +typeis.is(mediaType, ['json']) // => 'json' +typeis.is(mediaType, ['html', 'json']) // => 'json' +typeis.is(mediaType, ['application/*']) // => 'application/json' +typeis.is(mediaType, ['application/json']) // => 'application/json' + +typeis.is(mediaType, ['html']) // => false +``` + +## Examples + +### Example body parser + +```js +var express = require('express') +var typeis = require('type-is') + +var app = express() + +app.use(function bodyParser (req, res, next) { + if (!typeis.hasBody(req)) { + return next() + } + + switch (typeis(req, ['urlencoded', 'json', 'multipart'])) { + case 'urlencoded': + // parse urlencoded body + throw new Error('implement urlencoded body parsing') + case 'json': + // parse json body + throw new Error('implement json body parsing') + case 'multipart': + // parse multipart body + throw new Error('implement multipart body parsing') + default: + // 415 error code + res.statusCode = 415 + res.end() + break + } +}) +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/type-is/master +[coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master +[node-version-image]: https://badgen.net/npm/node/type-is +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/type-is +[npm-url]: https://npmjs.org/package/type-is +[npm-version-image]: https://badgen.net/npm/v/type-is +[travis-image]: https://badgen.net/travis/jshttp/type-is/master +[travis-url]: https://travis-ci.org/jshttp/type-is diff --git a/node_modules/type-is/index.js b/node_modules/type-is/index.js new file mode 100644 index 0000000..890ad76 --- /dev/null +++ b/node_modules/type-is/index.js @@ -0,0 +1,266 @@ +/*! + * type-is + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var typer = require('media-typer') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = typeofrequest +module.exports.is = typeis +module.exports.hasBody = hasbody +module.exports.normalize = normalize +module.exports.match = mimeMatch + +/** + * Compare a `value` content-type with `types`. + * Each `type` can be an extension like `html`, + * a special shortcut like `multipart` or `urlencoded`, + * or a mime type. + * + * If no types match, `false` is returned. + * Otherwise, the first `type` that matches is returned. + * + * @param {String} value + * @param {Array} types + * @public + */ + +function typeis (value, types_) { + var i + var types = types_ + + // remove parameters and normalize + var val = tryNormalizeType(value) + + // no type or invalid + if (!val) { + return false + } + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1) + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // no types, return the content type + if (!types || !types.length) { + return val + } + + var type + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === '+' || type.indexOf('*') !== -1 + ? val + : type + } + } + + // no matches + return false +} + +/** + * Check if a request has a request body. + * A request with a body __must__ either have `transfer-encoding` + * or `content-length` headers set. + * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 + * + * @param {Object} request + * @return {Boolean} + * @public + */ + +function hasbody (req) { + return req.headers['transfer-encoding'] !== undefined || + !isNaN(req.headers['content-length']) +} + +/** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains any of the give mime `type`s. + * If there is no request body, `null` is returned. + * If there is no content type, `false` is returned. + * Otherwise, it returns the first `type` that matches. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * this.is('html'); // => 'html' + * this.is('text/html'); // => 'text/html' + * this.is('text/*', 'application/json'); // => 'text/html' + * + * // When Content-Type is application/json + * this.is('json', 'urlencoded'); // => 'json' + * this.is('application/json'); // => 'application/json' + * this.is('html', 'application/*'); // => 'application/json' + * + * this.is('html'); // => false + * + * @param {String|Array} types... + * @return {String|false|null} + * @public + */ + +function typeofrequest (req, types_) { + var types = types_ + + // no body + if (!hasbody(req)) { + return null + } + + // support flattened arguments + if (arguments.length > 2) { + types = new Array(arguments.length - 1) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // request content type + var value = req.headers['content-type'] + + return typeis(value, types) +} + +/** + * Normalize a mime type. + * If it's a shorthand, expand it to a valid mime type. + * + * In general, you probably want: + * + * var type = is(req, ['urlencoded', 'json', 'multipart']); + * + * Then use the appropriate body parsers. + * These three are the most common request body types + * and are thus ensured to work. + * + * @param {String} type + * @private + */ + +function normalize (type) { + if (typeof type !== 'string') { + // invalid type + return false + } + + switch (type) { + case 'urlencoded': + return 'application/x-www-form-urlencoded' + case 'multipart': + return 'multipart/*' + } + + if (type[0] === '+') { + // "+json" -> "*/*+json" expando + return '*/*' + type + } + + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if `expected` mime type + * matches `actual` mime type with + * wildcard and +suffix support. + * + * @param {String} expected + * @param {String} actual + * @return {Boolean} + * @private + */ + +function mimeMatch (expected, actual) { + // invalid type + if (expected === false) { + return false + } + + // split types + var actualParts = actual.split('/') + var expectedParts = expected.split('/') + + // invalid format + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false + } + + // validate type + if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { + return false + } + + // validate suffix wildcard + if (expectedParts[1].substr(0, 2) === '*+') { + return expectedParts[1].length <= actualParts[1].length + 1 && + expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) + } + + // validate subtype + if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { + return false + } + + return true +} + +/** + * Normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function normalizeType (value) { + // parse the type + var type = typer.parse(value) + + // remove the parameters + type.parameters = undefined + + // reformat it + return typer.format(type) +} + +/** + * Try to normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function tryNormalizeType (value) { + if (!value) { + return null + } + + try { + return normalizeType(value) + } catch (err) { + return null + } +} diff --git a/node_modules/type-is/package.json b/node_modules/type-is/package.json new file mode 100644 index 0000000..97ba5f1 --- /dev/null +++ b/node_modules/type-is/package.json @@ -0,0 +1,45 @@ +{ + "name": "type-is", + "description": "Infer the content-type of a request.", + "version": "1.6.18", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/type-is", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "keywords": [ + "content", + "type", + "checking" + ] +} diff --git a/node_modules/undefsafe/.github/workflows/release.yml b/node_modules/undefsafe/.github/workflows/release.yml new file mode 100644 index 0000000..e6ee886 --- /dev/null +++ b/node_modules/undefsafe/.github/workflows/release.yml @@ -0,0 +1,25 @@ +name: Release +on: + push: + branches: + - master +jobs: + release: + name: Release + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 16 + - name: Install dependencies + run: npm ci + - name: Test + run: npm run test + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/node_modules/undefsafe/.jscsrc b/node_modules/undefsafe/.jscsrc new file mode 100644 index 0000000..9e01c9b --- /dev/null +++ b/node_modules/undefsafe/.jscsrc @@ -0,0 +1,13 @@ +{ + "preset": "node-style-guide", + "requireCapitalizedComments": null, + "requireSpacesInAnonymousFunctionExpression": { + "beforeOpeningCurlyBrace": true, + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInNamedFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "excludeFiles": ["node_modules/**"], + "disallowSpacesInFunction": null +} diff --git a/node_modules/undefsafe/.jshintrc b/node_modules/undefsafe/.jshintrc new file mode 100644 index 0000000..b47f672 --- /dev/null +++ b/node_modules/undefsafe/.jshintrc @@ -0,0 +1,16 @@ +{ + "browser": false, + "camelcase": true, + "curly": true, + "devel": true, + "eqeqeq": true, + "forin": true, + "indent": 2, + "noarg": true, + "node": true, + "quotmark": "single", + "undef": true, + "strict": false, + "unused": true +} + diff --git a/node_modules/undefsafe/.travis.yml b/node_modules/undefsafe/.travis.yml new file mode 100644 index 0000000..a1ace24 --- /dev/null +++ b/node_modules/undefsafe/.travis.yml @@ -0,0 +1,18 @@ +sudo: false +language: node_js +cache: + directories: + - node_modules +notifications: + email: false +node_js: + - '4' +before_install: + - npm i -g npm@^2.0.0 +before_script: + - npm prune +after_success: + - npm run semantic-release +branches: + except: + - "/^v\\d+\\.\\d+\\.\\d+$/" diff --git a/node_modules/undefsafe/LICENSE b/node_modules/undefsafe/LICENSE new file mode 100644 index 0000000..caaf03a --- /dev/null +++ b/node_modules/undefsafe/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright © 2016 Remy Sharp, http://remysharp.com + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/undefsafe/README.md b/node_modules/undefsafe/README.md new file mode 100644 index 0000000..46a706b --- /dev/null +++ b/node_modules/undefsafe/README.md @@ -0,0 +1,63 @@ +# undefsafe + +Simple *function* for retrieving deep object properties without getting "Cannot read property 'X' of undefined" + +Can also be used to safely set deep values. + +## Usage + +```js +var object = { + a: { + b: { + c: 1, + d: [1,2,3], + e: 'remy' + } + } +}; + +console.log(undefsafe(object, 'a.b.e')); // "remy" +console.log(undefsafe(object, 'a.b.not.found')); // undefined +``` + +Demo: [https://jsbin.com/eroqame/3/edit?js,console](https://jsbin.com/eroqame/3/edit?js,console) + +## Setting + +```js +var object = { + a: { + b: [1,2,3] + } +}; + +// modified object +var res = undefsafe(object, 'a.b.0', 10); + +console.log(object); // { a: { b: [10, 2, 3] } } +console.log(res); // 1 - previous value +``` + +## Star rules in paths + +As of 1.2.0, `undefsafe` supports a `*` in the path if you want to search all of the properties (or array elements) for a particular element. + +The function will only return a single result, either the 3rd argument validation value, or the first positive match. For example, the following github data: + +```js +const githubData = { + commits: [{ + modified: [ + "one", + "two" + ] + }, /* ... */ ] + }; + +// first modified file found in the first commit +console.log(undefsafe(githubData, 'commits.*.modified.0')); + +// returns `two` or undefined if not found +console.log(undefsafe(githubData, 'commits.*.modified.*', 'two')); +``` diff --git a/node_modules/undefsafe/example.js b/node_modules/undefsafe/example.js new file mode 100644 index 0000000..ed93c23 --- /dev/null +++ b/node_modules/undefsafe/example.js @@ -0,0 +1,14 @@ +var undefsafe = require('undefsafe'); + +var object = { + a: { + b: { + c: 1, + d: [1, 2, 3], + e: 'remy' + } + } +}; + +console.log(undefsafe(object, 'a.b.e')); // "remy" +console.log(undefsafe(object, 'a.b.not.found')); // undefined diff --git a/node_modules/undefsafe/lib/undefsafe.js b/node_modules/undefsafe/lib/undefsafe.js new file mode 100644 index 0000000..7446878 --- /dev/null +++ b/node_modules/undefsafe/lib/undefsafe.js @@ -0,0 +1,125 @@ +'use strict'; + +function undefsafe(obj, path, value, __res) { + // I'm not super keen on this private function, but it's because + // it'll also be use in the browser and I wont *one* function exposed + function split(path) { + var res = []; + var level = 0; + var key = ''; + + for (var i = 0; i < path.length; i++) { + var c = path.substr(i, 1); + + if (level === 0 && (c === '.' || c === '[')) { + if (c === '[') { + level++; + i++; + c = path.substr(i, 1); + } + + if (key) { + // the first value could be a string + res.push(key); + } + key = ''; + continue; + } + + if (c === ']') { + level--; + key = key.slice(0, -1); + continue; + } + + key += c; + } + + res.push(key); + + return res; + } + + // bail if there's nothing + if (obj === undefined || obj === null) { + return undefined; + } + + var parts = split(path); + var key = null; + var type = typeof obj; + var root = obj; + var parent = obj; + + var star = + parts.filter(function(_) { + return _ === '*'; + }).length > 0; + + // we're dealing with a primitive + if (type !== 'object' && type !== 'function') { + return obj; + } else if (path.trim() === '') { + return obj; + } + + key = parts[0]; + var i = 0; + for (; i < parts.length; i++) { + key = parts[i]; + parent = obj; + + if (key === '*') { + // loop through each property + var prop = ''; + var res = __res || []; + + for (prop in parent) { + var shallowObj = undefsafe( + obj[prop], + parts.slice(i + 1).join('.'), + value, + res + ); + if (shallowObj && shallowObj !== res) { + if ((value && shallowObj === value) || value === undefined) { + if (value !== undefined) { + return shallowObj; + } + + res.push(shallowObj); + } + } + } + + if (res.length === 0) { + return undefined; + } + + return res; + } + + if (Object.getOwnPropertyNames(obj).indexOf(key) == -1) { + return undefined; + } + + obj = obj[key]; + if (obj === undefined || obj === null) { + break; + } + } + + // if we have a null object, make sure it's the one the user was after, + // if it's not (i.e. parts has a length) then give undefined back. + if (obj === null && i !== parts.length - 1) { + obj = undefined; + } else if (!star && value) { + key = path.split('.').pop(); + parent[key] = value; + } + return obj; +} + +if (typeof module !== 'undefined') { + module.exports = undefsafe; +} diff --git a/node_modules/undefsafe/package.json b/node_modules/undefsafe/package.json new file mode 100644 index 0000000..a454233 --- /dev/null +++ b/node_modules/undefsafe/package.json @@ -0,0 +1,34 @@ +{ + "name": "undefsafe", + "description": "Undefined safe way of extracting object properties", + "main": "lib/undefsafe.js", + "tonicExampleFilename": "example.js", + "directories": { + "test": "test" + }, + "scripts": { + "test": "tap test/**/*.test.js -R spec", + "cover": "tap test/*.test.js --cov --coverage-report=lcov", + "semantic-release": "semantic-release" + }, + "prettier": { + "trailingComma": "none", + "singleQuote": true + }, + "repository": { + "type": "git", + "url": "https://github.com/remy/undefsafe.git" + }, + "keywords": [ + "undefined" + ], + "author": "Remy Sharp", + "license": "MIT", + "devDependencies": { + "semantic-release": "^18.0.0", + "tap": "^5.7.1", + "tap-only": "0.0.5" + }, + "dependencies": {}, + "version": "2.0.5" +} diff --git a/node_modules/unpipe/HISTORY.md b/node_modules/unpipe/HISTORY.md new file mode 100644 index 0000000..85e0f8d --- /dev/null +++ b/node_modules/unpipe/HISTORY.md @@ -0,0 +1,4 @@ +1.0.0 / 2015-06-14 +================== + + * Initial release diff --git a/node_modules/unpipe/LICENSE b/node_modules/unpipe/LICENSE new file mode 100644 index 0000000..aed0138 --- /dev/null +++ b/node_modules/unpipe/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/unpipe/README.md b/node_modules/unpipe/README.md new file mode 100644 index 0000000..e536ad2 --- /dev/null +++ b/node_modules/unpipe/README.md @@ -0,0 +1,43 @@ +# unpipe + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Unpipe a stream from all destinations. + +## Installation + +```sh +$ npm install unpipe +``` + +## API + +```js +var unpipe = require('unpipe') +``` + +### unpipe(stream) + +Unpipes all destinations from a given stream. With stream 2+, this is +equivalent to `stream.unpipe()`. When used with streams 1 style streams +(typically Node.js 0.8 and below), this module attempts to undo the +actions done in `stream.pipe(dest)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/unpipe.svg +[npm-url]: https://npmjs.org/package/unpipe +[node-image]: https://img.shields.io/node/v/unpipe.svg +[node-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg +[travis-url]: https://travis-ci.org/stream-utils/unpipe +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master +[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg +[downloads-url]: https://npmjs.org/package/unpipe diff --git a/node_modules/unpipe/index.js b/node_modules/unpipe/index.js new file mode 100644 index 0000000..15c3d97 --- /dev/null +++ b/node_modules/unpipe/index.js @@ -0,0 +1,69 @@ +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = unpipe + +/** + * Determine if there are Node.js pipe-like data listeners. + * @private + */ + +function hasPipeDataListeners(stream) { + var listeners = stream.listeners('data') + + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === 'ondata') { + return true + } + } + + return false +} + +/** + * Unpipe a stream from all destinations. + * + * @param {object} stream + * @public + */ + +function unpipe(stream) { + if (!stream) { + throw new TypeError('argument stream is required') + } + + if (typeof stream.unpipe === 'function') { + // new-style + stream.unpipe() + return + } + + // Node.js 0.8 hack + if (!hasPipeDataListeners(stream)) { + return + } + + var listener + var listeners = stream.listeners('close') + + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i] + + if (listener.name !== 'cleanup' && listener.name !== 'onclose') { + continue + } + + // invoke the listener + listener.call(stream) + } +} diff --git a/node_modules/unpipe/package.json b/node_modules/unpipe/package.json new file mode 100644 index 0000000..a2b7358 --- /dev/null +++ b/node_modules/unpipe/package.json @@ -0,0 +1,27 @@ +{ + "name": "unpipe", + "description": "Unpipe a stream from all destinations", + "version": "1.0.0", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "repository": "stream-utils/unpipe", + "devDependencies": { + "istanbul": "0.3.15", + "mocha": "2.2.5", + "readable-stream": "1.1.13" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/node_modules/utils-merge/.npmignore b/node_modules/utils-merge/.npmignore new file mode 100644 index 0000000..3e53844 --- /dev/null +++ b/node_modules/utils-merge/.npmignore @@ -0,0 +1,9 @@ +CONTRIBUTING.md +Makefile +docs/ +examples/ +reports/ +test/ + +.jshintrc +.travis.yml diff --git a/node_modules/utils-merge/LICENSE b/node_modules/utils-merge/LICENSE new file mode 100644 index 0000000..76f6d08 --- /dev/null +++ b/node_modules/utils-merge/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-2017 Jared Hanson + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/utils-merge/README.md b/node_modules/utils-merge/README.md new file mode 100644 index 0000000..0cb7117 --- /dev/null +++ b/node_modules/utils-merge/README.md @@ -0,0 +1,34 @@ +# utils-merge + +[![Version](https://img.shields.io/npm/v/utils-merge.svg?label=version)](https://www.npmjs.com/package/utils-merge) +[![Build](https://img.shields.io/travis/jaredhanson/utils-merge.svg)](https://travis-ci.org/jaredhanson/utils-merge) +[![Quality](https://img.shields.io/codeclimate/github/jaredhanson/utils-merge.svg?label=quality)](https://codeclimate.com/github/jaredhanson/utils-merge) +[![Coverage](https://img.shields.io/coveralls/jaredhanson/utils-merge.svg)](https://coveralls.io/r/jaredhanson/utils-merge) +[![Dependencies](https://img.shields.io/david/jaredhanson/utils-merge.svg)](https://david-dm.org/jaredhanson/utils-merge) + + +Merges the properties from a source object into a destination object. + +## Install + +```bash +$ npm install utils-merge +``` + +## Usage + +```javascript +var a = { foo: 'bar' } + , b = { bar: 'baz' }; + +merge(a, b); +// => { foo: 'bar', bar: 'baz' } +``` + +## License + +[The MIT License](http://opensource.org/licenses/MIT) + +Copyright (c) 2013-2017 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> + + Sponsor diff --git a/node_modules/utils-merge/index.js b/node_modules/utils-merge/index.js new file mode 100644 index 0000000..4265c69 --- /dev/null +++ b/node_modules/utils-merge/index.js @@ -0,0 +1,23 @@ +/** + * Merge object b with object a. + * + * var a = { foo: 'bar' } + * , b = { bar: 'baz' }; + * + * merge(a, b); + * // => { foo: 'bar', bar: 'baz' } + * + * @param {Object} a + * @param {Object} b + * @return {Object} + * @api public + */ + +exports = module.exports = function(a, b){ + if (a && b) { + for (var key in b) { + a[key] = b[key]; + } + } + return a; +}; diff --git a/node_modules/utils-merge/package.json b/node_modules/utils-merge/package.json new file mode 100644 index 0000000..e36b078 --- /dev/null +++ b/node_modules/utils-merge/package.json @@ -0,0 +1,40 @@ +{ + "name": "utils-merge", + "version": "1.0.1", + "description": "merge() utility function", + "keywords": [ + "util" + ], + "author": { + "name": "Jared Hanson", + "email": "jaredhanson@gmail.com", + "url": "http://www.jaredhanson.net/" + }, + "repository": { + "type": "git", + "url": "git://github.com/jaredhanson/utils-merge.git" + }, + "bugs": { + "url": "http://github.com/jaredhanson/utils-merge/issues" + }, + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/MIT" + } + ], + "main": "./index", + "dependencies": {}, + "devDependencies": { + "make-node": "0.3.x", + "mocha": "1.x.x", + "chai": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + }, + "scripts": { + "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js" + } +} diff --git a/node_modules/vary/HISTORY.md b/node_modules/vary/HISTORY.md new file mode 100644 index 0000000..f6cbcf7 --- /dev/null +++ b/node_modules/vary/HISTORY.md @@ -0,0 +1,39 @@ +1.1.2 / 2017-09-23 +================== + + * perf: improve header token parsing speed + +1.1.1 / 2017-03-20 +================== + + * perf: hoist regular expression + +1.1.0 / 2015-09-29 +================== + + * Only accept valid field names in the `field` argument + - Ensures the resulting string is a valid HTTP header value + +1.0.1 / 2015-07-08 +================== + + * Fix setting empty header from empty `field` + * perf: enable strict mode + * perf: remove argument reassignments + +1.0.0 / 2014-08-10 +================== + + * Accept valid `Vary` header string as `field` + * Add `vary.append` for low-level string manipulation + * Move to `jshttp` orgainzation + +0.1.0 / 2014-06-05 +================== + + * Support array of fields to set + +0.0.0 / 2014-06-04 +================== + + * Initial release diff --git a/node_modules/vary/LICENSE b/node_modules/vary/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/node_modules/vary/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission 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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE 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. diff --git a/node_modules/vary/README.md b/node_modules/vary/README.md new file mode 100644 index 0000000..cc000b3 --- /dev/null +++ b/node_modules/vary/README.md @@ -0,0 +1,101 @@ +# vary + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Manipulate the HTTP Vary header + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install vary +``` + +## API + + + +```js +var vary = require('vary') +``` + +### vary(res, field) + +Adds the given header `field` to the `Vary` response header of `res`. +This can be a string of a single field, a string of a valid `Vary` +header, or an array of multiple fields. + +This will append the header if not already listed, otherwise leaves +it listed in the current location. + + + +```js +// Append "Origin" to the Vary header of the response +vary(res, 'Origin') +``` + +### vary.append(header, field) + +Adds the given header `field` to the `Vary` response header string `header`. +This can be a string of a single field, a string of a valid `Vary` header, +or an array of multiple fields. + +This will append the header if not already listed, otherwise leaves +it listed in the current location. The new header string is returned. + + + +```js +// Get header string appending "Origin" to "Accept, User-Agent" +vary.append('Accept, User-Agent', 'Origin') +``` + +## Examples + +### Updating the Vary header when content is based on it + +```js +var http = require('http') +var vary = require('vary') + +http.createServer(function onRequest (req, res) { + // about to user-agent sniff + vary(res, 'User-Agent') + + var ua = req.headers['user-agent'] || '' + var isMobile = /mobi|android|touch|mini/i.test(ua) + + // serve site, depending on isMobile + res.setHeader('Content-Type', 'text/html') + res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user') +}) +``` + +## Testing + +```sh +$ npm test +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/vary.svg +[npm-url]: https://npmjs.org/package/vary +[node-version-image]: https://img.shields.io/node/v/vary.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg +[travis-url]: https://travis-ci.org/jshttp/vary +[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/vary +[downloads-image]: https://img.shields.io/npm/dm/vary.svg +[downloads-url]: https://npmjs.org/package/vary diff --git a/node_modules/vary/index.js b/node_modules/vary/index.js new file mode 100644 index 0000000..5b5e741 --- /dev/null +++ b/node_modules/vary/index.js @@ -0,0 +1,149 @@ +/*! + * vary + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + */ + +module.exports = vary +module.exports.append = append + +/** + * RegExp to match field-name in RFC 7230 sec 3.2 + * + * field-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + */ + +var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/ + +/** + * Append a field to a vary header. + * + * @param {String} header + * @param {String|Array} field + * @return {String} + * @public + */ + +function append (header, field) { + if (typeof header !== 'string') { + throw new TypeError('header argument is required') + } + + if (!field) { + throw new TypeError('field argument is required') + } + + // get fields array + var fields = !Array.isArray(field) + ? parse(String(field)) + : field + + // assert on invalid field names + for (var j = 0; j < fields.length; j++) { + if (!FIELD_NAME_REGEXP.test(fields[j])) { + throw new TypeError('field argument contains an invalid header name') + } + } + + // existing, unspecified vary + if (header === '*') { + return header + } + + // enumerate current values + var val = header + var vals = parse(header.toLowerCase()) + + // unspecified vary + if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) { + return '*' + } + + for (var i = 0; i < fields.length; i++) { + var fld = fields[i].toLowerCase() + + // append value (case-preserving) + if (vals.indexOf(fld) === -1) { + vals.push(fld) + val = val + ? val + ', ' + fields[i] + : fields[i] + } + } + + return val +} + +/** + * Parse a vary header into an array. + * + * @param {String} header + * @return {Array} + * @private + */ + +function parse (header) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = header.length; i < len; i++) { + switch (header.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(header.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(header.substring(start, end)) + + return list +} + +/** + * Mark that a request is varied on a header field. + * + * @param {Object} res + * @param {String|Array} field + * @public + */ + +function vary (res, field) { + if (!res || !res.getHeader || !res.setHeader) { + // quack quack + throw new TypeError('res argument is required') + } + + // get existing header + var val = res.getHeader('Vary') || '' + var header = Array.isArray(val) + ? val.join(', ') + : String(val) + + // set new header + if ((val = append(header, field))) { + res.setHeader('Vary', val) + } +} diff --git a/node_modules/vary/package.json b/node_modules/vary/package.json new file mode 100644 index 0000000..028f72a --- /dev/null +++ b/node_modules/vary/package.json @@ -0,0 +1,43 @@ +{ + "name": "vary", + "description": "Manipulate the HTTP Vary header", + "version": "1.1.2", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "http", + "res", + "vary" + ], + "repository": "jshttp/vary", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "2.5.3", + "supertest": "1.1.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ed1eea2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1208 @@ +{ + "name": "assignment5", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "assignment5", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "express": "^4.21.2" + }, + "devDependencies": { + "nodemon": "^3.1.9" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2131173 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "assignment5", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js", + "dev": "nodemon index.js" + }, + "author": "Braeden Sowinski", + "license": "ISC", + "dependencies": { + "express": "^4.21.2" + }, + "devDependencies": { + "nodemon": "^3.1.9" + }, + "description": "" +} diff --git a/public/css/course.css b/public/css/course.css new file mode 100644 index 0000000..e806a7e --- /dev/null +++ b/public/css/course.css @@ -0,0 +1,135 @@ +@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); + +body { + font-family: "Ubuntu", serif; + font-weight: 500; + font-style: normal; + padding: 0pt; + margin: 0pt; + overflow-x: hidden; + overflow-y: hidden; +} + +.grid-container { + display: grid; + grid-template-areas: + "header header" + "content content" + "footer footer"; + grid-template-columns: 1fr 3fr; + gap: 0pt; +} + +.header { + grid-area: header; + background-color: #48494b; + height: 8vh; + display: flex; + flex-direction: column; + justify-content: center; +} + +.links { + display: flex; + flex-direction: row; + justify-content: space-around; + margin-bottom: 6pt; +} + +.header a { + color: white; + font-size: 20px; +} + +.content { + grid-area: content; + height: 80vh; + padding: 0pt; +} + +.banner { + margin: 0pt; + width: 100%; + height: 30%; + position: relative; +} + +.banner img { + width: 100%; + height: 20rlh; + object-fit: cover; +} + +.banner figcaption { + position: absolute; + bottom: 5%; + background-color: rgba(200, 200, 200, 0.8); + padding: 12pt; + font-size: 32px; + font-weight: 800; +} + +.container { + padding: 24pt; +} + +.container table { + width: 100%; +} + +.footer { + grid-area: footer; + height: 8vh; + display: flex; + flex-direction: column; + justify-content: center; + background-color: #48494b; + position: fixed; + bottom: 0%; + width: 100vw; +} + +.footer-content { + display: flex; + flex-direction: row; + justify-content: space-around; + color: white; +} + +.course { + padding: 32pt; +} + +.back-container { + display: flex; + justify-content: center; + height: 100%; +} + +.button { + width: 150pt; + height: 50pt; + background-color: #7b92c2; + transition: 0.8s; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 6pt; + border: 4px solid #a0a0a0 +} + +.button a { + text-decoration: none; + width: 64pt; + height: 24pt; + background-color: transparent; + color: black; + width: 100%; + text-align: center; + margin-top: 8pt; + font-weight: 800; +} + +.button:hover { + background-color: #a9c1f5; +} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..52cac3c --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,144 @@ +@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); + +body { + font-family: "Ubuntu", serif; + font-weight: 500; + font-style: normal; + padding: 0pt; + margin: 0pt; + overflow-x: hidden; + overflow-y: hidden; +} + +.grid-container { + display: grid; + grid-template-areas: + "header header" + "menu content" + "footer footer"; + grid-template-columns: 1fr 3fr; + gap: 0pt; +} + +.header { + grid-area: header; + background-color: #48494b; + height: 8vh; + display: flex; + flex-direction: column; + justify-content: center; +} + +.links { + display: flex; + flex-direction: row; + justify-content: space-around; + margin-bottom: 6pt; +} + +.header a { + color: white; + font-size: 20px; +} + +.menu { + grid-area: menu; + background-color: #9b9b9b; + height: 80vh; + padding: 16pt; +} + +.content { + grid-area: content; + height: 80vh; + padding: 0pt; +} + +.banner { + margin: 0pt; + width: 100%; + height: 30%; + position: relative; +} + +.banner img { + width: 100%; + height: 20rlh; + object-fit: cover; +} + +.banner figcaption { + position: absolute; + bottom: 5%; + background-color: rgba(200, 200, 200, 0.8); + padding: 12pt; + font-size: 32px; + font-weight: 800; +} + +.container { + padding: 24pt; +} + +.container table { + width: 100%; +} + +.footer { + grid-area: footer; + height: 8vh; + display: flex; + flex-direction: column; + justify-content: center; + background-color: #48494b; +} + +.footer-content { + display: flex; + flex-direction: row; + justify-content: space-around; + color: white; +} + +table { + font-family: arial, sans-serif; + border-collapse: collapse; + width: 70%; +} + +td, th { + border: 1px solid #bbbbbb; + text-align: left; + padding: 8px; +} + +td a { + color: black; +} + +tr:nth-child(even) { + background-color: #acacac; +} + +@media (max-width: 1280px) { + + body { + overflow-x: visible; + overflow-y: visible; + } + + .grid-container { + display: grid; + grid-template-areas: + "header header" + "content content" + "menu menu" + "footer footer"; + grid-template-columns: 1fr 1fr; + gap: 0pt; + } + + .menu { + height: auto; + } +} diff --git a/public/images/IMG_1114.jpg b/public/images/IMG_1114.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7c09cda1090aaa9fadcfe21488a70a6abcb7fd4 GIT binary patch literal 5231182 zcmeFZd012D);GNN-U*3`Btg;821pQFsS3o2K$!wqvC|P-t)3T<;D}FwL_h+{umgg$ z$AMa_oN6_QPwUfKrD{V23PG(>QN-3N7y>~FpvWKy2nf6@wt9NK-+905`u_gT4oOz- zeb3`szu($S)K8c}@XnIAmjFQk5cq9_eK{9WVBrJAoqBR_r;v3ua$M-yM z52?pIfcet-i{6yZdlMthlfEgHzPUj5|4i$W_2r8;kbAPedMO{soAIyqik(cxBo`+lI+WaXm<=guR;QUc*vS}arvfQ?P z)XVVheT==H|bAVfHLQ0+VOq%&%?1_DVu$1)_U4}iZXBCXV1%JESNVB z_U-$ZtR?=)XJP_COTOr9ahjHTA=~MW3I8k$$F+!f-gfI8g5!Utwf6gQ^3OQdaOy8I z^H2Fz44?nJo>;d@1;-aWuLI7rN&4dppUc>@lPWN|^}-w{y^h~(d^7*uDE_-Jcd0jy zF~I-%4G?X_tT1nHCBPeB0bwk{xlw8@2rp|>zQFe@{7UY%DX(*)p3gDK=4Bt^JzN~T#o9>L`2 zGG@wTfbGjTj=*~-d@W$@a|{8z#2FVj*m>t*~XnDa89P2m0_&NN5xcp+oC zo-gGEAbpv37c6)g4%qAe>Z?UBWdN@i@_!3K_Cm(qfAggb;QJTZ@1@Luz?U+B{Q20u zgYDW6L4OGk`HQ^xFY;S|k(c~Me&?l3!uv1V(gc5do_{Ll-v-N`%X4roM!^Sv#Gk+m zR=!LNu=<5O$+{=PDL4(qa0Y$^J(NKOT!1TZ4Q|36FhMIkf^&GM1WKVCD)HWBxC%Gm z7Tg6hv_UrvVz~8A62N*10f^i#JfZwW1Si^fb|i2!8`CSti_T)#;G_Lmx?FG@WDL1 zFs>h#=Y!MoEqD)KZ(w;MToCRUb0JRd*D#J3#-4>~tYy4`3rY+#VFpU>xQJ$9eluVm zhIqhy{N;)-3D(#Z7u)L?>V}`LnAQVZBg1%WRk52BlcdsH1W7TNHZ1najj_?25?3Zi z$8O#5_oU5n8xq$=$8K1;L8V+5BOs>2^nPXk)2WB1_>7CY?(+aw`AYe7fo;pTn>t-2 zcAdNEO>DUJdfDZ+fBb&=`QD3yag_cDd>Qq{D7}cwfyv8%2G&G7L`A&ueDD49M8pV_ z@y+~q+K^;z^tz8F>$gV7O4OUzZ;-5uj@ytBEm`E@;}sVt+2}dX1ACQ^LrP)}Oo9E#ubME5KX4M6)aqeNAo~M1+n%4GZ zoDr<~^Y9hcaJv`bToQzT33qrI&H<Y7|QU3A%A@TOTWOoP}~48 zb5j*Cx9_#iY`vik4;OTucy8d&qiD|%g` zDkv=MJ*)iU+baL-8od2S+~3@-c|95{+T)!QdNJ_Bw)Hts8J+Z;pR9O<@u;H%!m2be#W$T4gUUT|IPhZSavgj zejgak9Ep8&y;8tu0N?K_ywk@aG7pMlC0gZX>+{)jGnT}8IsNG{b#IN^uF|cRmg^z z%}ci>Z1`~7-&U;K_VGHO^)mtkBz`Gxro^e@HY7z$QsQFc6W>hnpYc5NH&M0*d(MzN zkCODU|BTh|he<+|2^%C{XbVYaVCsbR8{hn3@sdB&;xGRhe^yehR(q%ycqkJ#dCv3k z@$r<-_nbf99b>pBrp6~lr?|%_y1vL^G0wMy&8no$%6N%2$LO`ntx5hfu;f3g6sLNb z?Z0jNi-@WiWs)*6M)`k<{_^(o4zngwy&00QAv$TpVto70ur5${={)y&i&nfa?fw!; znXp2sjP;-KhavdKjrW!7H*ZY+e@Xqa$TzK#{wNGbXMbA7mje?Z`Oo#A z9{5iW{HF*0(*ytMf&cWt|Nna6U#i`Pc+?)$sJOwzIQTC^l__rXwhikgYf~lfguN9S zw>f^ZWPt~&DD%BM<}X5h#!Kq$edPGo3e?H~s(fHDLfdww+F#MiDcBv?C}xV&W25Ei)EEGsJWK`1!{R*kTd~ z?-4uh(q$tt`2wNaXJ8Fu{ zJVwy+sWawBGwru%J}dm8cR}z6RX3-(w%9Cuyf$IxqL2@>&g`51+OZ42F21*7-CNm3 zi4%8WGKJ=}9c70IqGI)YvYT;S>l<>vI4uYuvT_uzhKK4 z$!5qNH9utWqfXBHqHd2O?S9(gI-Xd|f9N7KNM4HQEWyF=_G4uJzk{c-ydi3*Z?j1o| zcR#sj)WES+#&{lQj~E)#k}sRVn3fz*9hA7VT9SL0o7zEqm{Xy3-8#Ciy;PE_1lxnA zBx1>!;r_l313M!hG|`!(K?!PLPjfQpi;^IBtekF`KwLuTIY>Ae2N#PUk~aNVyHwh< zL(h{JTK05gXkqWZ-V;5>>RB6%#Fbw}J;3fUju6wwo@u%&I*2d`Ns8vl%kx>fj&2rr zJfBRCWrf_-{`@rwcC+Q?QU91?&*b{C)qva zubhu87rLSCoBNco?3lsxEjNUuWtM{%X-V>-M&voop@$(1hdTYHN#)qx%KEJuz#`c0 zF+OS-pgBk9CKICT5Bni*C{EAI&=QX-Mvrk`w>TMwdrZ}A(T1ThkQXR-xC*v3a(oA` zY%tj0EURT?G5R7Ho_!G6YpkALGn5DYG|MfxH&`1elX^9BoTKU(vIy{|S)HU%Sr3lo zhQta;7wFlD1NvkeQ=FGZoq@l#;Km{M(TL~DG}Y`4izagQZ_8tXUZMvyByJZ;2#{)TLzIs-2BJ4SIWz5xS3N`4$OWYhvtJwnharsOB~Y z_&jPPlofW=FXwE_)Dhs8L2oB6kI{wgxdvi*0_5+hAB|L9?!2#ZUJ48~*=~C%=*lmG zi1H={aq$=RE!KYtmB33IQxFfS1157zdT-^EtUY69f4@2<2?Qpcl)B+` zlMGmWCB<{08hDP+=-|=QbWw)Uvy-Bg9EUx)D6htOh$G7o>CT^iP%yCHB zWK%P=7<@=$y7~SAzp)6-<<62gcwMF(lixoOpbFS~g56VD0OyG(%q2aN83zj>u`*v^ zdQVN*-f2F^yXM&no~tC8r>`>9BZl3h9=T>{NbYs9l&zO*qBDAZny)(2q)(AU^ErDD zy_0n08Epp7Zyu69(W1(w&L11TIl3QauxAInU!l!^y^4RE$ zmN8&l98b>P)3K!Il%%CneVgN0nB=Jk*YwerhfJrNyVg##?aehDkrTE}s<5VMXT}bu z$}M6E6qY-tm7ivw&6I92J)yY|NKr`~9S~0MHV)GqXN9U+Pbp2QBJx1*&e^ zLsX>eb;)=d8Uz2c$9Q@~{z-Z`c|J70MiZLk!j7{DV1WE?!?R=4<9a83l9uH*X;0T7 zLvB~uGrFcS*|5Cqm#Zz{JsiDth-fd15zO=`4Lr_?{^;qWHgN0fC%C6ded&RyVn=14 zVN!8n+lYK`U^mC2{`~4x{!C>*UHr`G$vhj^%i_;e*qG{w=+J}t>Pzuzj|_!Nr2;~d4YuvLJ?`}{Gwj^g>#AorXG&pLyd_1X zWw@MiUgqun2-vZenfdmvB^%8ym|IAJAlCp?<|#?A-46K<<)UX=5Qc6#VLL>eVK#&7 z6JV@Mu3g^7aM6v+hk~8u;lsg#o%_MF-lqD>MuW>45uFDiDnY$X*CE=N=BFh}YR++W zgdT@eeW4e21>}3uj#`Eqcf$*^CZ6x<9r8Wb>0lW!4TGTt?oD!^R3IghnI7`^iqX?# zS4mU~#N*)@-ym>3yQu&?zIi~tQph#X!brQdtHXA9Y19vFSaoyORyjnTy~>ofG4J$K z)zjySmjd*N>v3sb8Daerf zESd2xRn2mXYhw_7{n^pQg=N})+E-$kGf=JGCdc4z9Dlj?V@vy_iIoyzICPHgkDdmHP z6z^u;1k|zi&7&doNk4P)O_QxQb=@^bb?_+7EM}($mUA-Yc9k3JaZt-1^b-$v$afxk zqHz`tM=Z4D)rtrsNqM* zbGzka?o+vAK>iVjU|$(CRYuJ9P><8TD`Q!@E;?j9S|ADZ=%fdh$g-KDo^l9}H;PZP zyLS!|;@59z*}(8=)(h>^>QKwrwXRg68xw%|+rZWS`NxJqM8`Dgoc6aokufII;N)jD~K93>Q~UvYP#m=Q7)fa+lePaxSye=vx)WP zQx2WFu2^_eq#3?%Ybb2rTfim7C&h<_lCn@|d}$RD2TF#LE|# zxt>*cEA_S&VX*VSQzerh;jb8#>$>w`{3}C9W&zn;5`)78;=t7sRiA+uE~u)LCRb&q*fn=jhrQzQOiixyxl+s8&sJ7m1II!O zbpu?>`E#S4Xu@_>O^nd}eat7oA0S&5IP++ZZ#N0|AJ%jHaJS1b4=?72i2_H!`CfF2 zNRDdCAZLnrzhfF5*KTVFsRh9Vd_~Lozjso11i*ZfZ4nigvztD?k4%%TS?(BLse=2Z zqO9n47Jn|Zt59WB@DJ2QodBYb)t0yHTgmXnbTa`n7;+l!Zyk!TshNOsUU*Qt9jWcp zSXiR-r_pYkO4##E51wAfq4XVIUH0Y>ZlN0c;zB z$@Xbx!a~)uPVmCj!1@+is@d`N+{4M(Bc_aMLg3oED>@}0T+V!G!@V^b!c0)mlNaS) z5;tkjoyO-COA}vT}pc*MiJ6(=*e#Ee7RRRca@!>10a?Mx-rlTnxNGSEg#-t+i8-!XY+tvT~O zXs@YVP-g>zMuwWB!F$5z_stAKW1EX*EC=c?2yF~o$*(1GWGQFoVO}`hE&y6LOc;I z%zky$5d*YW^Aw5HEr4`+W|AE30L=i=4!l+5Kp(3UAgvo50=B;uP7v3`AIHku^VB0x9+;?TyB_{35-&N)E2*&5JCwB_N<$ZQ0O{}w9l&Si7j^3rYvBfBBR zu|#v#O!PAwnpkr*aeCP9Q7T2PZTJy&q+U}DYrfNExAA{W^QdPA{B65o66>1S9p}i% zAoqY)m&m&Mw26B|WVjnOo;Ss|{2rb*qg5m4cNxz-2z#rMf8(5ONjL3Y(zPpjaggHK zkmk(TXL%y9oP!A6C7$BhxICgK&sNi>=P!CZVrWkz%X{+(UsJ{CR2Sw>dpPbMiK@xee8MtcS!Mro5?&NcG#-o1a2!Bs=5ma~{ zU;gEVHwvXQ)r;9tBf@&lHf+;dnvHiPFLpx!BxhpSNeK1WjxuLLF>>&?9 z?PdCV>)y$>q@|)^I@OJtix{UkHsPBhHX`sh<|>M zD@N`pi^Gv^V@a$&mq2uaEsfLi>L{Hjiq|_XZ~&L|XH^Mzd9o&}$;Y$l%aNB~NRCt& z%!xA)wnIxK38v~f4|40?7>K9BK6Dyd>}cy`STd>`lN6RIpry1!Q&P=Hj7LMJr84IG z>BXp6xt6mtpU6GNDwlpYH=9|a@{auI;VHN??2|Xst{D-WX50==4P<+b7CuR(nNH6J zv-a*YZ}%>8c*HD8liNfNg;q0U)BxIudk+LIg%96LCLZp}DE5jxgC<2RTH>aQ;PSH$ zTGEa8IHD2*1ndp7EA6>OWR6I%cs%kXA?g$CjN+pB(q2NCYz`Zs_H@y~U61o1RDBW` z@t&^3bZ%F19>i5VrE*6HHD|hxgoURaHn64)Bbr9kalg0;vt=gr(W@NaVTxIDy?heK z`QrwZwr`z~35U017C6EQbZEacJG>)rY~X|#R$nf!CN(aVfTW0)khW6y7aE2hW4_8uxl4`yIR(K zmld6EB>Easrg5*@-0=#Jy z#h8*jDv#8;Je*W?qul50SNC3-U7uFC)m*f-NwuYNeKP&7Zq4kNnLjUDzRQ(Me=Ree z>8-eJ@JT1%u>>cZiXCMdr_pubL!@Wt_J+@HsLc0HEXzDeHiqj$9+DRdxB3=howq9p zPmh}WB`FJp@%5Lx*V6C3TiQw2#|K3ew$sbLD*!~HVk<^}ie6sPvBZwHv#^2K#s5?o zsh@sVcfncV(xwNmgJ}weEVzScBW00nn!90M&ZtjL>M7RM32<|ZFXzVawnOd&9Onn_ zlZ2)}o`4Rh6PN&PO!0|HRz#?kAseRK(`3N#tVG)`SQgytgWLCBsaI4x6@PuSsvqqA z9+RRf+&lhGU1dqPkm#V68kDYhNaGr?12$1jX74c*)XtOBuWLiTFf&6l58Y;+0(nJD zq~Hx>r@eBY$3ZXltIn#77){A9#q8!MpB~`GtU7F`POZ9_(WNE0!`ZZRls9hYK8qdE zA>vK?gn)EAgxSxeGgXMpPzS1k0s@}YSzbb=D|ok9P6%(@&7T3 zOTQ7l^^WG@4yJ9;M>SP_45FN7&_K4yfgctoXki4}zt*3lW1GAk~b8B{lD87kx(z%Al zBj^M_!u1?ao>*DU)Rb)PWfs>lb-hKATkFs#v^l+(`s$7{@1vR?nDu~D9}|}+@+^yS z{`eR;p6_D4=ULI4rn_XTrHs`=dm_6*4=b)@nCS6*Kiq!8(<-!JDd%e)fND^=munvB zffzo;x{>c*@`w&lN0o!W0{BO&m^su)knk4=Sg?@4v8zlzK%9M;=e)h8Tt2P+E_YLb z_>?(ZcA=N}TqW|TaHK8ihEZP^T=9|R&c;Eq;XvTQP`(6G9S!f6IAx%Vn zpHF!`wRfvrR=^qTgIQlZ&htMPfvR1ac1t1%|Eo8g=o`U;ddhIBN)kDEq$WqDOsOgs zOMEo#BvEphNWC|0#b#zZQ1PrA16g;KJ)8+pKtefBKG^(_+As>#7sjALc^iUFsfPZD z$t4jsIE_F-dh~k5@2#6$!c3@;koA)VQm`Zi|HG0ObZTyLBG+;jp&LsZ)k$4fi2~as z%x#8N?txmx@EY*1kb9ZVm{-Q#akrWyq&`Zj163jxx0CJOvOVpB z!?a>CE;wz#c2DYn(O^j3`eO!bju`@rP%jTk zFv9l#Y6Zu^1XfLK;8Kt6fvZKc+hCQuu`0Ek9$VhTJ?iqoz4OyM&=iAd)$m3;D0IVB zedXXcDr2TYTvGt6z5rnc*#q1lVEh)LoxRI=3o6(@O)2|#9UNu() zRjkUksA%6$riP}Ze3yD@?HIA4$^MgTH)sB1$=Ks5TlL-gAQxR9Z&rHv&yLH_g)bR2 z9R6?h-|xM7Up;fa`hY9_%TXt0{2S-@T-o^X%6%Ibstsu+$E81BOW#zqncE)E5 zgR|K01Yh%;+5zF+#uQh#$UC_a|C9UA-AT!uulMGiY0LU1OPzZ8Q`_&{EN}I=Oj$ep zy4%{>$EVI^Cbj)uyzj?(d(PW`_!%eq`q#QMUY`V4Exq)K!N_@2rGNY0Pb*yyiayO1 z9(wblaC3R+v<33kJzdA5)suhxV%zU;Y};(N+MzD@=GX6y+BoRb51;wUVf9zX6K$d` z6^D+@zA|!T0?d1tpYZ$fw~w=~bhQpm03%&I5;Xy`3lm_OfZL&0GQSV(bIcqUkKId+ z+u-ua*@x_`L-EE=V*3y4ATM3UZ(7#&T5+p=gOk~;Xi&#phZCk+>BwTOhx1SLs`inp zxCTrAVyE!<3i2HmcL)#S#Z5~e>3PeIrB*uUkOHQ~QHRy(aNp9#5k{r#AT8n^rtJ_O z^y$7AqJJjbK3kI#KdG-`+7UKWoXBbLC7y-=4Xd=sf+j7dzJ>AQpB1N z1o8H6Rv)^?@WgerbDxOrPb5XUc+z)piLXm#H3&!~ob2pmPbf$+;5xv&X(2hig%I}WmOa~rq3A@%+bm1v4No+z3 zf1HNB1-vyegze)-hU@~Ghha71)q%GevMaYhbYU1^t= zw6wEC<#h6Cs>V4C9Mk1n5^@Yh76e%v!9zW)N&IGG@0MouL#jqJI9x(=d{VP>?vVXU zU@$Sa7xp~8qVQbkQP1-&iA6hDgismznz7^-N7PLtFBjR`r_pt9_d(*N8FkEJ`}l8V zQF_M&gfRt8tc}7R#32j82QBGi{J6)BHaF@BbyP8UjX5jUL>dyudowCefOoW$HkLXv zM!(uQNTcOTzP8sxUX)p9V=766S4x&3FDby`&JBo?ys7KHi@0QlVR}AU^`Y9RRUa1iG>t~D1T;)7)FNp%g$=HWBwt%B1v1yt!GBxNDKPCwt`z+Ud`o#1a zt-IX41fse*4LY++I~~T|@VHFnmXqo^X=leY=+p345j-`4+a>BtOFD6UUtAFo2OL`K zqp>w7*4v=X?@RYv=~2Xhu+PiEgKcGSppUqLGYugC(54}-C-0;7N{EDkY}x16xDOCV z(x^geRLn7XO()Y*58gd@xt%Prn_KhQnrcp#sD$841^r_ZIk;4#{nN(HcV5;*QVqHe zlJwQ#!SZYfI7e1xw&97GK}(Pi(z{gFa%A1CtL89^Wq@WRMp>w8hKDJmZo6k$0aWCB zX&|uS8u&HdW5`0EP`MqE;*<93R0D-@3Dr;wI#W%Ie=Z1zs68EocvgYEIumKH46{qA zIk2r4IWeSU{N&>p2)B>Q0lP?!O*=oAA;D|%ROX~N7-tJVT`d6MTs#Fpx4M{e;>K#2BIkI8@V7FpF?Qral zhLSH*&T+D(>IFDcVFhexL^hQaQJVtaL@N*sEa9hFfB zJADh!UgbCrW?R^a%o|9~)r``p5^Q|BhV{D&63Yslmzo5w*TfG;49u&YgBqvDtS4E0 zss3_8bQ%%Bu3V#L8&c4BQ_=RP*|xDd3CXBQrwidu5hP#5=$NSY-D&M zIZrszjc< z!LbO3QYiHsy5txbbr@D$=&IE6*YtP?-ez_7A&FmE&R@80AbZa!-H$ehvg{V?2()DG zXCv6ltbIC82bPn4eT36cD&SCM;Wio`bYYApyP|Zx+hrzO!%xc_%55u=XkRiOG_Nm$ zCo0LFHN75eOl8R$vD7g<9!XV`b+0!$AS6&!>YGaCj;|W2>TkpCF1WLDwRcacz*Nlc zqrFWPNa)~Umv4J86yZADumYB?hRW3<4;KGfRcHr#2_z0^&LXc_F!_!ZVn=u|!&K&H zcvhF^9HYUM$QF&8Q8zkt-JzfQUHvVP4QbI18YiPnBiLeMGcV@%8)5pfSk5MU}6)tNO8Jt z8>A;!q@-#>GLXR>kz2N!i5utyfI6t$`IMa8S-{TD69CUczRfTqA5)M6R6{Fu6}MsA zA4Y)m?HO|kYvtb2<4Ff-M#+3NsU9rbo4aH*%l!xD6vW9&$lXnHVk~gA`;n+$`QvH? z^t^j;PIpmBP#M=0C9#f$i$LA%a9MKtgwxWV!)! zl=+FGi6JkQ=942}cg=CP2=3q-Neg7iR(jeFD(?>d=SObEJ@0(XkmzVas zY$+_++Gt?bZ0rrli-awDc6SA00HPiie<2zMPTEwOiZ@QcQs>ng=j{Q-KBxzcJ)?Je zH}ZT9IYW_1KHxdjPj$eoYdl#`Dah+s+*8wvg#q&5(Vlw#uT0S?0a23Ce4Ovmn|5C` zXt0-sTxDvm-Y2-aN7Pr3D>|`yasq)7O5u%%(rk9(4%uRMq)O0?Xb?ih4e58X`-f#3 zKoe09gjd2_#EPXTsrwJO- zw?WWPTos=HmsT=BzNNGymO3gWaO-?XiUxC>~X!#FDP?j?6;{>pJqc|;3L zPM?(`t1(QoY)30-*V2I1#JRHQ5zr*B0ne4@*aks{(yK14w5u5Dcd5(83Iq%5`s6%S z178bA)~HT}2QGE46SQ-SQs6`9%;TKQHalwL1k9B0mBN6*!L578T86rZp2i>0bWX|{ zz3}a~l0~eOJXIfQ$@I=i?FQk|CkV=lPp}C^QMDsJPzvOpr&fw41l0$~Rd|`k9+QEm z4OfpM3V*t z#i2hDUe7;~LGx(qZShj;C!mETdHxOCXpEFVjcR^#mZO7&VZXf(GEsTcQQ?u1tvoBs z6OsgZf!)*Q&N?XF(g==~cNsZ+#2*5*=#2Ea!gDa2ME}mAEb0M>htSxuE|4{f%qDI% z1crewyP*|?zq0E1x4CFF!9ex^QH_mi14kXrno~8bA<#vTIMb^rAD0uFF>^vGf-L0_ z^cM5noFl!!dP0oX`LCN%)rI7Mzk&@7Db8iO&}ti#`9l%zfHkquo+9!npL3vI2{VN! z=M? z{$Jcq3ccs@0@8F$&eYm5y5?fF!;GG0{veaX{bC69U^9m`BzFt*Gb3x@e7#ODJY_fK zf1z90ee`4!4QgsONr@3N_lTLpk5=#69c(Fvq|0AvbxjP`nO>g+2CEJNPmsf>kqGk` zrK$Wte?wfE`sADgz2qCa?`W=ej7f$go!6+mGH4>vDDa9*HyXaqpJZ)H!!_RT=1i4y zOsE?SMt&*i*OZLWV_TSa8*E2)G=H=RIVKYt(VDZ>2;v}zrhusziyf`xeGgi$H0QP5 zqxX0LT9v2tgwo!lia#^Bs4V4ebw4NPPM6?%Veu9dI-9*JORWk)AEiU%YR;E5f3?I5 zk=;4S?~fO6X)c=pX+bdQ+ z)v%@i0-U#cPa4F(GU}G!t7rNDfSX0U3G9V)stlj?5!?s$)0~>L_A{GO4D2ZMXxsgG zhZi9_RnM@h9g@|i6z^`ENCQ#ZSu$)GxE#1TAVVu*X7|%TxrX8NT^f*2^fl{w$e)5H zB-wDxlx_&NxiK>cpXPKVLa)Qd>rRG*0eq10!We??t?uK{%z{)VAo0ZZ5OtSY3IP}8`WBF%(& zAwUVDkUgZc)}<53ZlttJ3g$QA$Z`)iYXbCn$VRhL{fLP!&^1Fn6zb%`T?X@-U<0p^>Y`{VVY<_?L{(U6I_ZpA>`2X=mSI)p6rS<5|VU zM!}lxJEkCyaZN1sfvM*>>nt>+la__36bIx38S?E3=E_3_%cPlMMT`Gu-d4F&7y}A_ zWStqk$MTTtB9I6ozVhNX0ZI}#3n}8 zk)S2|AB-upljCeYJ_Ta;@@Hn9DRaM*v|Rivf^yUsH)-b+*+xBtd$#Mrr;F1H9^smP zR%f1vf*O(cH|zPwAh8v!Iz5f78`(o0JRzQQ58WDu*D!rOS+%_|K$LXa*dU?PRoZb$ zC=JM8w?K}>mT=SNR88^M#%tmuPxFX`(lKMzZ?!$Y+SF}-1Ds90c>&>7aTOiZy*&8v zOh+R#03rXfTR7m(4ghW1)WF@~;;usNU^Bsq&h71Fl8pWnYWMsotm$&9BO$dp` zS~72OH%ZcTscH0ZEIO%uQCFsLL1)ym(!_8G}Nvlzm+M`V+>-;lKjkxMhld6@6Cs# zM->5b?p8k?(O^_LE{8cAMyukEbzD@5{Qemdw|HETLpUu!5GGz4u&NP6v#~S- zsw0HG)1uhB{0=I<7m79vW!Jxd$j>|&@o|e2{ZkkX+fFswN6EZXiP#GBh9+>V(p=*s zzBSx8V(=K3KP^I&%BL`s*JX|%BFuA zQ&QIf`eQlncVhFF`4_WptOu5^H*-msS(gpY1|RA!Hy>0vTMWXJhyo~vv)U$y6{Cv} zwW+|l#z6g^-0Op`XbsK^tbo*C4yb2LulxS68Qc$2=A0qo33WHF4yNBtZZ0Of#}qZV z`){LJ1H*JH7rCyHb?t(i>wiwH=YKUsT(d2^G({YMK1&bL2UWqZg@81AKvRrfbm;X` zhuf6`bcjvD=K%!G? z@zG8s1bs}ZfK{0(p8n%MX`l6ib8TADxmVP2d2go&ZAa6!kNm07_nnWc9+ht@+*0e% z%~~=0uIRghfateAbZ$sC^sJvBexcu4_JP~=V>LFj2X>TFr&s^-KYQvwDfrAp9FE^%L_FO#o%F2)x$3FW2p{9MG9`e|+IBIq3G_SpHS0(xV?4#V+9J=(%g;n3C zUp#d?yvNg}YUXc6@7_LTC;DV-$rVjB#Xof4`|p4I+tQIEtWQ48+V#(yDOV1Z#<#w< zcSmMd(;S>`RrEn8OhH`-m5tqD{I{`0mW2mNwp``sU_dToF?oIJL+8vWMM z$>aB}=2%ix-nfGfNsHf8=W~f47O-6l-l7{$hVz%7KH5bjlCroF`qOE)H<{eiyP_*3 zq1SK+c3T-9SU*+lW!}}}wSkVh}Wo0!#&JdE^0UU9EievWAO5r(t^oeYE zLbTJUIoHbKL3}_u28baRiyuc=<-1%)f*v&tz|@kB zH;#*s<_E3_puL)_L7r;Z`FXxb*=kjbe5*A4}@!J;@fPd6LBBvLY@% zlTakm#FnjxmPK{Bbwu!Z=5hOY3;%?NZ#U9DTZcjiG!j%JE$9polH%6A%O^Fc&zM<< zq)Pd8)6Jc?r`6oi3l9h?dWn#KsBbaUmmRD6>iPdj@=BF6x!uU0N8YIA2tPoy5E`a~1S@CVw0W>J|5b#}9BI$dYdVv49=68FdOelK_Qu+$*cz01!C7XB^nFAni6zGnxp*D#O|aA~bn zd8n~3(hT)1X;_WZ1iUAwHkyeGqveJ|R1FF%JNj~hN6p-7Mp_*@I#+Hq9jXfMEK#z~ zs--@`5`x>4+k8y2@FiU@*2$G*OXh~eK`UC zTX2^T?tP6?xKYNlDmM+Z7lW#i5kM0Oq%a<52aSgo?W{rxJ=$XdU8&Q|ltrCyZ*~57 z1i~-Jv~oy8^=f}m0=goN(}Y3ztBt{BtFZ)q;PJ5$10v(rr*P1fJFCARCxAv3dc^F% zM(#t@qU9KGJjU=@!$9O3b{=N0VR{B8~%o>oT0S`gQc%WZaZ`pPIrXF*FlG!_=~ zRyB*N@WGwc(-gb!#NkY4jSP{kj4Y7>O;v=O1Os`o`NL6Xdc&GUhCDj~(M|>|?IuMu zup=16qdv{q_?xK8ZL7Lc;CTzYNee#E7!ref3xs42X>KHeB}Kd%VvSqPV{#n=5sD?f z8DU4mAb7O90UtQS@#touy~S+E?e*!(HDtte_h;S1+1G~8_-V)Fiy>;MbEQQ5x4OX9 zNNlL;IYRW8<-cwQ7B8%o<<`YS9Fr7AwzI^;<@SNg4g;L9)ouwMU$d0Bf%WO`XY}VZ zYA$qDgt^oPgh4x6ZXzG09(?8GK(_I0H6y-kOk0VDX0yO`Yoq2-Ke>AppE8IT?!jsW zXt!7_O!04Rz;_eLmh^h1%ZQ(?u4LpV(Ph;vZ}irR&ly*_RE+8n_$onO*k$YE3h{B_ zZ-OmIsS*O0t)ny@pkQ1~@+%CFFXtC2_Y0-a{|LR+-&W_O2Pxc?h`ha-9ET|I03GEG z+YIC@=ud8eS@B&5sYjP3i96PnRr5sXZNIy+gG4W3*NkyR!tOihz;==yKY$howI89= ze0ybOEkoABI$LuN)-0O~4SMmn=qwl@M{1>yS%WI~%_m4B_*cZyg~>G~!(@@(-m`K& z0;_`N8)~UbwLP%L422Z}WPj4{AdN*&GA1dwxw4BXtC#s7b3o@6#=AH2-6B=B_!$!QI6jU=>IeAnoUeiDye91Q>n6G=xz{W9E(k0RL=AcoX5M1m1_)K*V>5Ij z0-7=nYK0{TctQf{9HweSw@WmQ`?IMybZ|7Ez&)ssQVzv|0IG1(4-ouY97hA`T#QcZ zPc_xxQXwfS?P%g3mJa|TTw=Lc4j~FVD!JKBVB||6Q)O3yPXyK&c6gyZKTM3t$UGqp zqG3XBYeozl9b`+zU8Ha7BWizOR6fX3q3;qKpS^SgUY9oXfQi;E5%gu}+%(~%n6}y_ z$Z)!k7pofBv3dWSt2Y5_>P-8GpL3FsNF)g(8as&)vU#+i zYqk8}ArL`or0s;oVU*>;Z z-*;Uf*VU0>3CYQMp69-Q+f7Q#R&eH63C?)33N`|wEes%*CP9xTB&NjE1n8l)MR+6o zjA*V@Mk=JH6+O(BObv|Yl|xUZLcy*0t`1TqZ~HwaZLUE1*Hh_2h5;WNiVpSU5b z**2?1Pwst*oKgo+tgCAMLTsf`rmGnbAeBbIil8uNh%l5r5@4tU7T=0fj4Bhs`5FhB zG>%;dg9TMq)&Z09h;guxqzX`BM`AfqLvwJzjV>_I1`u5TVU7*nZ>9*bniKrj_z9=z zNrF}oR!qV}LGmiM&I1NtB0b~A-mSV9D~6N830&!DaQ}7)Q1U0jig~QNrHQCCrFfw* zg#ah@{D~pklJdC&={bv?Yb|?P?JYkY5YdG4eCw)0RieRLbxfT6UBse zHSY<>cLs@yjCU$XI0J%y_k7*R0G6;xqJX+Jm@IL#{w{6cr}LaA1OeheQmaWwcE3wo z2wYPNR4rjeLa7?XGe3y7W(3d9=#iV1Zj`EnK@#Kqe8j`eVf+Itf{TC<|FHC2*oiVZ zr(G@thgCR0QS|rKHwq(tac4*%wIlM+M!C~j9lRqx{MmH@ZpF-sfWak-bFKy6>K7Wz zq|dh*%*Hp8=(-eP%UWzM?mI5$lMN;QDr}r$C!ltDZ!*L_qjPn)#HXFhBgs3ooP?W zuhQM~GrR$DU)i$8^2>?q$g&3pt}qmPuq(BOx z1S3ihYBP5*u! zxzZ-BT&2?SC7z~dVRgSZWo&w%8sy!hRVgT<^tti`7qXPM6iXZ?6VAzVfcPV%hJ_sG zJsSZjL#yz`|NHS*0u!Fpr+vagf(MK%@bFJGO-xBN;NQ<+V_(Z~Lg+56`DF z%NDgw&yejERO7B*H3YBgbLuWk96-frY&=yWiM_&>CwDBC-xNl~(hsGdKVr$6_U`5DB{6?*lMh+8)F ze@Q~>(=syBB_gC>-k9NWMMb=aXw_YZEqY7`ZC!0~!0A2w(QeuKV6x6atW!o*>WP+P z9C_}EP3VzM{x)VMs~~I_Kgwh_yrQSPRBt3(c5%WN^Fnj}IgqJJv>1qez2axLsOzJa zl~hLZB+pph-OpX^{Ua zB6KBv7#@#`RAJ-ZAmY9P7OTB^F}DaH^EX`41U2`gjOpD9#TjnH?sC z?x&>4y>?%(3FfZ)(^ZdSbiS6~B|+U;9QiJ(Eq1&>71*62>mokv(u~7oB`;>%6pH5rYG6acF(o( zjyc%7kHpLK#5Jt1o*FEr)`S2$O|J(-i-XLw%-MU|c^W0c z9$>3w3Y`AQlp{r6aKhriV6Zc4Ho#mm8$yE>ny-VTkxV;Oyd#l8C8GH9pkzVgZBYI- zD&C=>`g_UtoV<1|^m|#&TxCoG^u5N*nGXviZ}P*V4;60=@UD=mJU9K78*pQ7!Zzq; zRYFx@Vudt5fU>)S!KFI{w?VgD+uatDM9bs%%`=@f4whl2a|BD)xqdX{^`vfeGJ2w9 z%u@7n?}fG4I39EeZv)*VMmrEz!dIhMaM{*aCih6=BnECYk)FQ%!>J;#;|;=-vL5k= z!J^W{KO1j}%MZ@Ml5Zsm>@)r~69@}X=AbA4-^PEa#CUpHENb8*ZEZ8%&6xdR!0VXajpu{M#o zS^=NL3MCyey2uEQ*k`GWdv`nlAeJ;JO%8|+ zMdCw5aALlVt{is}{resx*}^UAr)Q~I_MDt*v8f`*gcpX#4o{%!H>ckgAjt)%-pjrF z7IakRTGwx1>D3XC*o~T(dlGLrG>BrL|9LK`KA?k2{@tnJp~{C%Bp`6MPOurW-CS$> zIn|*r$@Jt>GEnB(qboS!X?=>QkGTMRwkI3E{;&Y{74}J^>=)aQ2KZ4on@KHA#2X;WCOftMz#)Fn#-; zWFpufS$2^}F~XH$>#$A)qm&SkVh}87b{Y9PGXFL(EAx#c8qDkGVJXcM~ zNVnHb>HjA2r6r^#Nr$C0&(VF8U6PXc+M>6A^@w}I3d%?8b_IQ@s!S1li_3y5QhwwU=)hL0JQSOhdsy>_W)wm_t=QR=wht zkvW!k@gjiOs<1kHje~RSAup5=4nonqQA>vJKN@9*O;%lgW$iJukfE>JxUTj zVBcyS`$Xjt2MbU_05u8dbcSlwDD=FMQL;Sp8|h|d3L3jjE`Pmx{PaMF*ii~`#v|%) z@4LpC1@8>85kMc5mBv8#g&QIC!0>6w7QXh|pcvgdM^-4RjR7^o=jS%u zANu_zO-i?7Oni90-aFGey}$nMK>ouInBb(U`LSxx>pSM6{^)op?5yfj$(&WFAqYl| zbG(x_a^zg7@!A(%>=7Scr-Av{Rr$L_X-olC*4Iz%cuF!h91R&3O%_JcK@bzM&h-U& ztK-?C(zMnw6lwrT^M_}zkUhOp$TN~zMS50=afrx&TfxEI8!y5=c0PloMWytsLqOm* zfc>~mQfh3gz6_{RXj}z{AlW$Z+STFnv^)_#*cEwb{ihzQBa;19C39cP6*Do#MXT=1 za$FUs2MWXCElh@ACixFred5zP)=%uIurg5RmCgZ$)LAoRq0DPQjH z7f9QPPtuW@TmVGIu+p?);}z)|gOxq}lth*+;)l$l1!X-qQY)ZB#nW2LD+-=9>c_1T z23P`&xRZ2AxA@#0R06BggQ?bC99;0&1{JK;jDtOKP#D16&G!El$ZNEtICtm)?5`O} z$C%1NIKdON^}QQqlI#)Q?v4dhc-EV?%5F300=uMAd#U}w9sb`Z^}z3{y`(>6 zD3RN;W+#CBXve9u5@ti14b(&Jb$-fKS;1{lO$Kkkxy?eke9oz89j#R>%adTsNKaC1@8(G7b+T?*qnYH^`6p$Ijto!2W6jy1=}qZz`Hez^(&xa>p@>pj z(p3i5nl(YtqtE&EyL59|Kd^#Ji0A2WX`XSAr#O3jdizW*3FaUv2Upcz7q`w4*M9z=l6yowWg*&6f{07=aW-#e@(w>}y`znX zJA!Bf$F{3ifs)Hy(CK;?+UOl=Q0Ov>*02q_ew&NVpBPpebAZI`&*7%xc5gU?xWCja! znv(u14Df>-N3Yk{Q7seb@!Tw{F4$Cj{W{`}8Xh`N3-k>mM8ae_jW;;-84wgOBn&7P zSfG(kyK;qyT4CFeIqyeA`c;S~Dfmo@sEe?NaBan>akyd;rcGVawa)TE*hywnk0jEx5t{l=vORuW=+lx*h>xtUV)8;C2(Zi<>DF}vyu&OmnwC--K7+dQlpfwsWeC}0pu z!>O}w=Btm5cd+2eh6eF3WuDD56nadj*IbQwE+Qi01%%evVs45MsRu0t5tl@&6_Drf zl5Y!7NL2)?%{OgNSV|h~lY8XsGLGP^G!6jYxT=6Q9;OnaB6&S=rv01?f;(<6CM#X# ziI$Q`{~4njN3}ZG%B!R8)ZnBYSP@27q)t*24b>#YG9}LMzEhzzz{~2TA}qWJBowZz z^s`F;+7@B(RTYJ+$R28se$0sUCPeyO2h0&;AiNg7A1*ushLVUx$7}4jLsZ3LO{x9; zOT4~URT2c~09d&$O@1kl*;V0IJIi;3Mzy!}1@d?$${9o-zWFs1dl!jihE-)se>i|l zND9og+Xc#M<790D;#LmZ@Yc6_wUIZ#&K(Hj7?}Coit7V-jl{d!vyIZ$e!(RIeDRXc zM{W28W|sN7S(9r}e7VA4>jN@)I)S9-+e+-NQyVn0?iL%RFP$<<5fk(k z*|r@O&mT?~q#W*MORu}T@GnDY1#i78n_4Xz!-fB@1^Btp*GUG9IYJZhYt=LBv&8;vWz;UOjwU9(>miMwD6F=n+<^`T@k=dcaRVA-Jw`kpZz zlF`hb3?hu!#M|q4*tTl0(3xgw@8_>FXULN+36Z~L5CEK26G6yd`hfJd%(Djp;eiA@ z5Wy0@^j@|2+~H;u4v=%W@aTCgw*?O;8M3D!Kz-;To#X~bB7mD+cmp*lt*VPz zNTQW}0KdREW)cQB+8iz|a&jI*XYR-7&pFx2RMd!C!3t~CNIy{b4*ci*ng38YEl^hh zHdkqYsBfk&-{yxi*w3m6)tDfI&OY=sQBQ%+nBQ3jKv1aie!y#nj2T+!bZw8c2nJ4; z<|Wzo^fo%9pcvwfUvnVE$PmOELP%I#@AEBaG&f=V##TX24}C%i!t$;LY&jgEWABlH~r`- zvRIVe{5$LZpH~Bt5--B}K^Fwz&^-#|5i{D7iyTO|R;yRhbhSwyU@TBzToUb`>JM`U=6>jV_%a2OEBMi4`E%5D- zR691yX)P=*N135aE|Z*w?}`Tp?ek&fqr6+X&4>ilomq07JYiD=;L+JxW?7pK+e)~m zuSP`>kl-Y-Wwja-jj)V>KnkZ7ftS9>fA$XIyK2FhOd?!`W8nzV0js~a-BoZ0X(jg$ zZQJ37n92aSf@0Dpbg%f^jjteYb8Vi@5=y>nbh9aLU2LL_5012n7t)|J*2!wWdP=(Z z@Hj2l)ZLj+$vOsg&}@Y=JrT{Vv(&jhp+U%@Mh~_NG>EL9cy7(fAFi9^eR!0tvNVZr zN{?~4S39SS1H2D^O(Kg|0Vat7ibemCvjWTCPSOO6PoTYbR&q&OXEc+Z!(an1X}*g1y%gPD)hIxv%DrW+f- z;1WFiCwT*gAmb3SCSfh(=e+@ARt2neuqX2h!haI9et1*_QE3N1XtZK+6ex&`P12-} zZfUTey2ciKI;}NQMU8e!wiwIrWnc2}@06&8ZWEJ4)T8D4Y94o|mw3EfoVatZ!K7$j z!SW7G#b1CGaUZ~^WGfsu=Y#Y4SLeCGrP3Gfp)$<=yk&K)58Q|il1L_a&pRu6)D+yG zDFQbx)lMWNkyqr^<@?%wI>=7Tjb!DsWsEa*polK5c$N?$S%rnd%eNsrgJB^0By493 z62!2~7#p)uWi8Nc54qIE9%^gb@7|Cz!zMVM&=v;&O>!sbMSdEA?=mi1P6 zsdyTWcQbIcylttNW5aU}9dqeEt`QdNyw19v+GqlU%<>r`;tiDpA4`J4ke2gU>~mhX z`3&vF_-Sw_vxV+1M4{*8H-KqEw1ZRD*IX|jwdZ`V$T^)IjIvg7{t&7;!;TdTTd524 zUhUZV*aLxJ55j0}5P<1nT_HOfM=$}~iX>H`=?WEiuEkRMHShjiB#ny0n#1g-al z<-<=*9+l^ae?HN3fy1ZaoXdX>5L#ewJ?f4yhW^UTpR9m7La#czcG ze!1(H9~SMMrRGkTxS7XctJurO*W)v9@Gf4kWm#CPzS1uhmAM6<$&nxcG8|@uisdS5 zgn0N{bm1(Wzg<&pjhd~yg8SvLmYwYqx5_97=<|4!q=BS%uV8KHIRpuAI26OA-Mdcj)!8@siflOqCd_)>i)6R=bvZPeC6MFR4-L`%cvBD z-G+l44P)h*ZA3JHO6Kl5X~<65Dr_f^%)bv+HneJJ@vscY;o-W2rw*bPhEPFVNnLb0 zUW{%ty@*x1#6#DT)Gs`h5d4%pqA2VQUvV+;`C}cdALfpfEJDG3Mxx2ikYV{8Y9B?x zBm0H1BUY=(g`b|u`;)q~zjL7t0zEc(cizIrgY^&2SrHwiFf(qK#s!KeR%!&EanCmQ zE|)gLee@Xn7EIpzX5yTv`6w5Y)p7X)2K+C{>na6l=+m9q6=ZD9M`ls=4O*T;%(EI{ z=u?b~1VZj|XeJxE40p>sg089r?KNSgLxLsR+Ia*&TFXHd9UeYC4I zdIC-#8^OYkb-UmHp>ugO`QvbT%%g+$E=lBBpWW~8tXkLvpm$t2&?P+Unm35P^gh_G zb6~Od*IoYVhEp&YwxE7ifc(5nCZ$3YUnA@A>D1iavqQ9@$ZrevM#wtR{?f9|^jF0r z!nZ%OozeGQ5>1TsxFGwrLbRW=M~4!`+aGRw6)xD&?2Q7;Fsm$8lwMHvwYC7(_#^~C zqfKp(mZu2a04}HWNVPK~$YHG^<$6MUnI!3~v(!W8yhFni5(Wi^369P%E|Cx&tV6Ie z5s>mHk-?3yV*5I;6P_*ie2YiAhSmCeY zk_g73rfmah-K^H4A=&|o{5h>h01Mdw@8-&1O#dt-(?;|4Wj?;9cVq_)Casg82++J^ zPK-u$rQ)^3e;cznZf1uP{RwzzQ!C=gYO&#M`ev@138s;72=<+UPRcOR8mB7MRaYeG_sx8b$Jz{{d8XqA3kfR>t+je!QAC+zzp9*%c#++;W}q{QBs%qmiu4pCPswj zfVX{Z)3=7n>XP2ZrlsW*Usalo<`Rm5zzE5!$L<-M+^TC1nf4hXIv{;m+R&j&7aH19YnW|OZ*{$VsIm*PUYH- ztv7|Y%2m8?LrbNY{OghI9!}KGw1xb8OKQE3vA> z{{f5aIT%f{65v@S5nJM9@peR73I`!yvsX(4!Y!v8Rs{5llI&zj>xTh>-46=Gi{s27 zVtOwoP!S3ARLmp6tW7AR!pc+W!iA!&vWvS9Zyh76cBn+=cQf8yTVu;sQ?JyI+B^_- zh$}?D*lCCwdFAE26l)XRy>DU=yL@05iyH&9q)4 z{MDt=Y}^ycYzcp*gf5A1 zkOr(A?;eKjc5_+$TN6JX9~Xc+38u-9rLWayP6(ju9kpmV+#?)+Y16Z?Xb7P*g#u(@ z;(O$X-+ILV4dVjPoxeQROGrmT?_LT=_t8sNpOT0+hBtJ{%OA-W)%ZQZAO>Abv$2*{ z8CyKUqyKT)zJ4u=Tb3;MI{^Cy&-x~6S?N~~iM-^cW?5``UgEbC6dUj3uilh|hhA_> zJLJ@(oB_~QmoJPRpr?P^>rGy3tQkKe9m{Vv#VXC5G(b6C0VohV<)EY_c1e>M;b4f( z$Y9)q;$>MH;x}R1p1^qpP!3Pi*W+DF2CKbht}sg1{y%ucU4FSQ?^an*(;8;!d(Ete zmHx|+u<0**u-~wRas5)yL4?D*SNL*wn(d|Nk5O|`lS5NEo%*y~`$xy9Hx^s!{wggg z-EsZvko6~1S3O_b@bBJx*WOcp_jbhdZ#rrhmQOj{7iOfrk3PhCekOaeDSjc+@o7W* z!%q*!=y1s8oxl6_k_TOp>myfe!*vi7|)n>7qd7TelMTUC-XnJ7y zzQ*`o9 zkJm|q)~?JcIPUE6Ex!xa_JBNPO)(9^#ewLCC`Aps#`S;lW^$)e1#VBqge~&@Glef{ z2C{upFbaVhtt~z(J)QAco!%Q6h6wA-1AK*Iu|~CiOtaomx4x=`mBl~bJkR<$tmN=L zy*}sf=GnYNS7RSqexI>wk)9H;54wlx7wj=Du90uqLXySw-PRUy`*Nhtyrqe(*eZ}@ zZOolpDG9pidVT>?KwYHDCoX%2dVnKoe4tvC)I|tF!d2cwIF?yK=K$n+)nK`KMGC`l z()kGTgD2Hutj$%wh{l)89rT$PkJZ@jjUB={L>xo^mxsS#TKt`q?S(GHt- z0B9;k(?mZ&VE$zM#RlmYT^y|}&4wIz8q9PMkWi11n1skRky|maVV*m3ssV?lbaO=6 z9xMQy`8Z)NrvHi|HzeXPlR7pBoUAnas6WlglX@FvjR!0 z2qi1s8;I(Mp%D@oa3F}0-?)S_K=26T8(PSQeG~a@fFyTM#GiFdkA55vixWDR*t%=b zy;O~Icby@h5Hvgm>~UxYF$&|@4AkA_B&AR$bVF!s<>h_0v~x6x9{p+34#};558r>F zNtra6GYRy3Ky7I}M1khPUD6ON%U%eq1JQ%o6O=>iT(?FhEb;z4I zwUx9E((;ii_|$Pt{xciLrkgZ+y^@}jKR(U6lD?X8$TfN^z?u}1Qb?;Dz=wJr0IDa* zq4x13aQC~)F_R?DS&P)_P@UD7ywi^^v-a%`genJQ#h50h_#WI1W~g+$zH0%us~87I zeG@vt95&d9y#YinNfE+1eG?ZY?ZeK?WObF1u-vo;lhr?QNmHP z+#FoQgzV{(K3G&Jqm7pz@$8_Sexf6wGAoC_R0Usb2;lG8)5rz|b|!~Rov8STZ;}Rk znnKwBD1pl$NKtKE1%b3=(-Fjf+_*#hXR!k!SSgmDj{XPJMm$Yf4A>7!Z(Gb^@xTt} zwxD6Ak))Ok#A-IBLxk{_-fwvEuo&Rc-E7hG=0s8*fXwS6Fu@q?B#iv#O}4qeHo<3B zPYpU$%N#}x6h^WtEI6P2HkFICG5e_8Pou4J2kKrQ${_9ClyYePi3#3Y;9Vs!rP84s zoSoO99>xm*jdU7B*suI3OlM*+SOQlE=QI%>b+ZuO?geH8hE_;b1i9I6#XZtn=%?{r zB3h2GK;W##=SmZb(lXdv+5rl{{D=z@fwz3L=niDwArP2HgK{~$oKzALKrvozD19|_ zXM-nlsit!fNYNtRVG^qL^rHx`79ky;1IFnA$BhIJa)@kSvNL_<;! z*^HMB$z}3M5DE|AdDPaVdPnQ41r5X@R?nsM(o5P_IGWHmzmk5u11{wL&ZBzOQ$b-feC2Tm2o^5&?RUu3$z-bs4^tE6F@YRlr(TcXVIu2Hf9U%3nl3}1xJZr#j*vaZ(xwWs+y>4AiMn} zyIM4o*H)#vdl3r-(R@?9gMLF9?pElH^EjkPrOmR3ZeTH=>wF-DFMi)cUIsXTkT@BJ zXQ7uVKr%c#kxL!XR-6Pbykqr0YezDWCizmU)bJZ41zfXM%uXiKq+N zRxJ1!9~J``c#cg#!BnKs({#YUR^tQ3l`~;kNjV4l49QH<<#-qY+h@seN9x*`gAtJd zT)Z=)UT_9Z!J-O?rZ9jMI>Szm5^t!m7?iBeKmPxHV5qi+o}>^&hQS`QdIEb%{sdkz z>->>O_=tkCbwX2Fo0VKNyFELs;}_ZA9>ZhnMPU0+g>&~FS=(**Z#@BSeTe3-j z{x!%!=p&GFd?V_Hawr^<+cRg5g`Owo?uHs&=9xsH)Ypp13bYC)tY`hzm=3`zS;0UT zKZJ)=DO6S1t`nK5+zt^Tcuqzmh}RU}?l$!6^rRlNdcgJyf>`TncAfm}X5M}L4F6ib zyxS1eqhS2pXV`K9J?89^XKLwOtzo)eu zTU3=va9U>13trEG3KK5hCTY+xz4CIGM@a6Jk%S#*59IJpa+>wyroZUG1Iz|dE38as z`dPBczMY@GAt4g>rb;SMdj1}c1|(#q*S5OM<*d zL=r?@Oc0ATPGSDBQPUdV8YbkbEusj-XGn^RxCvxDC2khijrNvFHX-%SqLRpOHHap$ z##rI{2IC(_T?GvvCVt5eW($gxVW#YiL%&ewZlv1r4%?#10j3~w9K+Bipda(Kl|JYl z5Zcb|If^0CxiIsfkBejxBy2KsR2YdlwccKx+(dD2HtqNL$R_v=P?p4RXYp zkMrO#=$JI>k_dabcsem}K~1I@$tGT-gwa=0i`^%4j(n-QTNN6)G2%eE-b8IJNwTh3 zP?y*z*LnRW^UmCctk@q_8y+FC1D2C4_Cf-|U<}X^lnPpx?SK0ni#bcTX>wB70C6>- zk{I2JA5VR=tkF0dW}=1H5sq@4n;ZoyQtGTYjR=D4#qNZUL+!8@i$DjFZAn!W}QLOI)lFvSh7>@=CQ&W`95cw}dz%bErBex9H)~SF4NxT3Bc0u!> z7@hI$&q&3NOP-D9RQHBYRa)WCZruGt*7}Aen5q(8Q;7J7zuy$T)ojxC$_$mcow}B0 zpSOO!wl^?$WD-1lTPOA}xSo*TuKMvL6VG7$8B(vMCbGIYtC{`x_Bhi!4PGzZb!CWk zdV{m~KakX!5#daA^88zlzW3rVsmZ>%^k-Ds)5bwzV|IXnTQqg;)NSF7#s|Ec0-Wdx z#ORT&4Fe&gwm+lT^D*W$YkeYM2Sm+j9@~Y|M<>yHWkSWp{6|$2Bxz z_vq*Hp8V{4?7Dk$4Q`S6bBJ{N=pKTV1igC=$LY>jjE(6k)z&V4Mqspxu>?lb|2TMT zei|g@WA+_AIW(053C-ySN%MTV5z-E0d2%5tFG@VtO;#>#`~X(JFZJ;Nc=yeqnu~vw zmzK^hX_@%Za-PN%si=`|r?27QXwBs0;ch4=1?5G&A}GI~z>t3vr7(f=M@D$$1!#yG zBy#esG1S0L&r(;2hi9@%VKDBgUec)K?|C|+&(QWEnt&TLJzjG{T49*a! zXZ>HnEX}YS3`sRA%(H}iYt<!BWRehhH2}!xL1i7`7-W#;=)owPUUoHm+*0@-=kmw4z}@Kn zh48|eqz=BnMI#foHfQ`%(E5S5PI(Qn`a6>Q%xtL zLQVZ-rz~W=!&RkcaAvV7!a+VNQbgiqkKlH3D(naZM2aY$oh;oFV1a-7!(eAjx(J#{^jrUbAaXsZ-J z@wcpB+gYvj9}vY#le)@qSO*bQM9*ZMQp=pbXvbcTV2EX~FzaF~fwe%HJqZLxQ~+%xBST@ABN=^K4o>z`1~DF8&up z1wWpsOYC19rDI)0qO$$S2htlcfhzao1{^Ux;`WR`8%)$&%{N@9z|w&0_Nbr8Rx7zF zmP(J6YP;CZthSI?Waw189qkrfdw{t##yv!GX6zG<^gjJ%dM@T{jdvVNbpG&{6WoP&ym?tAAsx@JI>$9{Tsjml;swMGfy?kpKghL4)QI}qF zo~R+)rT-dU6zDL1Sammgl%rp5*B+kORnb<_RX2?d4vd#5XGBXC;bLaExe)IGguMH-WXoo1!g}Hb1wGX_=MQ&$^FhU@|p$q)PL3L zwuDxLB3@1a=_Lw*bgKN8cYB#U@04RSww+jvUk;b&BCzVkDjDlroXBoDr>dm1^hj>! zo9&F-3FEB`_!T$W*LrtAFj#QZD`K1R^Ty?rddJoAt$$v%Z>AtbJE@O0+*o=cVfmi# zvd_8(juvkDUTK`{ZCdl?A3NVZ;}ve&v;OfUF?X%m?3W&oRHa_Euen!tK78U1QTXEk zFJC8nuh~ijcPuTiIJZ-qqge63bngb#*!J2xgeTo;8!Ej=IV0VU zzHKkUTybayZSy%`kz=kMORhi8OYI~is08D^FhYggr;E-pvv984je~GTxSmOxBui0~ zr?_A&iO$EK`(3l_!0Q7&%Qzq8+zq?(cHnl)&B+LHG#X4RPZkyi* zi4N#9?_)MotQnYpfM>Fg^4z5HvKWGpGl+;ZHfmPRzE1)U=)s7_Up&eTm`~cMk=k3; zZtP!$=dVN4;Pw*+AD-}%f373Ep)z79&zWO{VExQ``e4E~HOy@ZUK^D)Mt;8VtTZ4p zUPVm~E`~SL&I)G)?}+R6+m?c`=vjO+Y11MrZuqvP7aw7L#!L3x5n0Eq7s$KCdtsK& zoJR-lI?x~wWe4_RTuCKND^swUQX{?C%pl0NrnNrLg(Mc774w?S8bP;#vUiFQU|_@W z8O*%39BVs}+)H-Z3n_=pnJ}43-kVzUQqdOGNBWqe`0(nV7m+Pz<-RNj(j{sX>m^QH z&B^m8Xyd!EMjr@@8>Vg6%mwu>L1%{`1nX@+i1EVk-p9WEFaEIgDd{^BefA=ZrRQ^5t z8Lxmh(z^!+`o-~AN9XDn$6kK4^WjbRjOupuciJ9=bdBwCiGRLvoEExn)mqDt8t0(Y zHII8Uxzm{s^Q`>NZLTNNN9d1ASJX0_lPygm%lUk?1Y64v^&iYCJ0Cue;{$_49SjpY zb2(eJsn@MWb0+B!aNlALF~uF{j@(~#Bz!*V>Ts#z%I8s>C1@0(ayu1udW>+9DEg`e z0?4Pj_tJMOo`0^pU;KPs`S^71kx2FGofi=%^lZ`k;jtqDA=-oV&H+qRs7>T=UFx-+ z3;Rj1Il15U`Hp3n;-yKkBQ9ckmULE)emc4CH5NcmqUE-0M217t*EqF~arMlCKK#x0 zap;a9e_g&F!fF^5AS-Bd*}kjLXZ)ZaS$+1W&bg?RE|KM~C=OE{(;qC+EFBYGY;Zct zjp^OGt*$PeWiRb&AFcLCs(sWW-F4&6GTvbaTi)AvUx3M0Q%>8ZW^>T`Ao}m68E=H- zrLC%1BjiQjGj1vIaMl4@F?9^op627KP@ooNYlNGf!j#x*WUT^(jC`J3-3f6R%+X9& zJ$K&6KW=8$7_&EBAa4{2*u>hBh;0<(*BO{h_j!CloR*bwH7G5c)1Nl-URb0$-s2n98RDHHd`5$7j!K+Bpo zK_%i*S8(?aPn=XwvL0fLN;#`c$C%~-vX0aD%`rp!IAFvg6mMbNezQ>;hS1Q_+7F^q z4s+gBvO~61xH*YSPy9Ec@qWy%B#Y%Yuz5$As11-++#Tj6wTWvJ1Ft}bs#6$x7)%!e zq>0(8>m4TTtG36Pno8INijC5(k?%pxqT*kB)taXNU3yXK6C9s?()R9#5BxeXU*f>H zV8ugwZoxevK{9ERGK{VM6aw#PM?2u@R168tW@MP5p41I;A@fE})Bc-hISw2oLG>W>UWy(#%zpq3?f2NxBbc_w`X z;vvg@;_)Yd26X8@48$5P$D5YpJNT3|D8oKQphry*2%{rsJ%V!c9kq-PEN6|iHAtA~ zMsBr7_I3`yzq?R8og`>13P0}cW}{zZ4m&9*pb| zH%UC>Zxf%m+TE=I3gXmxQ)UR*ZcNUi#5>NSgraTuAAFz=CZqy09B;`0lEsxtef(9y zvkco;6-xR=QWaS!i$uVEkrFtT7W3~KZ}O8Mc+-<2tpHKw>o8VcYLffJk?i#ou`DkE zLrx{mP<%{ZY`}Zd-k{886iN8|k4A{4nyb8wyqj4f#^4ozha2_=?jIuvmrcXnv%ti_ zyzn)Ez73gN%tui43NfMl3u}^~B_cjJViVXMZ5J|*ftOJi5#&Lf!S4{Z3uWq|Y%m{_ zc3Sa-V}8Pb<_duKQ!q$CBv%+b3n3q}VoM36D@N z`g{N=DeJobA&X@+gVDKiq+p=1RVLR=tQHIwD&dzLT2X{y$;Aoi)|9^kfYQjOSV*_L z5m1koWQJWVBRY%?C{YD;At(UbTx04&` z;`_k>kG}nhEhW#^2RtJd1d&azAwILz=p9!%AjSApTSy|GD5rKHHJ|87Sx*U z#Jv-t$UBjkqVS$0wJij47s`BWf(&I3lNIgpI;b0kSY5oxevw(XRv6ebratzo99@>EkXyR63g&{8+n+nhBH6Iy|ZFj$GAYZIS}DI;}zm^OnuTGIfJ266W(6WweM%U_cD1i zfR$CVG#iYvjoNS<!&lGVD%2YY`2Lv)CCl2gFFxe^}_#J1CqpIe%d!2ayJzx{z22aKjZg3QT~Wcwmeyp4^IgY6BeSn!67$ zGcX>x);doePJwP4<;D>-sJB3W5)y`S(ZHI+8EkBLb`FCv70^7eUxMf5oJCp~Oivmc zpi+i{V_=Ru{CFK<)+s4Gf>5@~Ig7*@AEnY~ZzZ6y>LAu%Ck>Y2g`ALR${hrJC)JvO z$Q(iq2pYiELC+;DBABwHH0KP+bVQU%){#}&Dr)_x#h5bii1O5=bgbrL5hbhTvVKCJ zjj9zF4eP|s3@Ps>n7J^~7Oip$YH)xYdOu;S2Hz&MwE=^E3^p4H-gPj!F#LF6PUl_& zH#<((!LtZ4pQyLoM$p1Cl*jWX96{7F{{|N;;I3tDYm^3?en(bYtV5G>WQGWzjPM{K zhqK-Clza^x5CWd&S3xUZ1Q87An>qYBAa&O#R#h)2Mb zWj$(PYa+!gC!i5e5Q^t~iXc}c8V;v7;=7#UJ4hA?I&aU{ZNwd+5VAe?EH-jTTDdu@vHFfK{1&5+eL0O04VujdRbaNZUNyJ4^4q%JGd1Yu3&mV10YQSX_& zI&MPrVJkqjef574Nz!|e3qn256Q`3dX@M!l zEs*Q1M|7V5?$KqPfro&{D(*adbK1Z&t&H}#6o z3-1t7mZ>DQwxB`c#rP!GI;jLS;l&g^!iHOtoR}RL<(PZbB>SzllbgCTBDaHaqWb6R zvMQ*}X;&4ju`+Rvc}Jos$1I31>eklGpKfq1-|*pWy2RkjKdJs{(f45{>B)QKTd(3K zgbx4I16wNgA3gVuOCxuvef`>lNdqFIxO_Cfp+^$7U||*b19u9Fr_eZYpFMEMG>0)P;VXU zVG^q*!g{;J$2f41+`Y*wFMSw%<@u7hOxyq2=*0kohRi)IgwRD_om9WrnAsOQ&3QJS zV_lQ6YpwC^Mcx$%hQ;3j}^98%m3$IclAqJYmT93 zE9+7}#wrm4a=sTGVQ*Gn(g*zHt;+ElMP2bexIFFa>5xCjBI9iHTM#d(e}CoAiv}82 zA9;>@=Z|`x-~3(Oj~8yr!%g$s7;KSW2F<1$%@2gFS+?!xG}NPY2;v`T)d|-4RXrXh z^6wSK(OQkt%#uI9zx@FFV%j)>e|A2W6<&Byo)d(*t!Cap6^Uiu>)8X{WV|66VN~fx zj~6gJa?6cs`9%?>vR-j58AqPFE_@StrgrPwC*AY8^WV6CJb*s7JkG#O*?GkQA!FcK z985*&-W}vXP%kh}RB>~ZywRLwJFUMf^RC^&^0ULzfi$19=Oto(p?)QVAK0k^yt5Je z9oOHp#BHX2CHb*Nt?SKf6AoK4Rt_9)d7pLZg=(_eebE5v*_iSNUcqrBy(b|EE%)&7 zxgN6G!0t(|h3q_$w<~OV%)@WBT)qoNBL44JtpA615m`Cicj(jrZD2!}965NyqJgFm zY49I+*fE|Y#3+3ayxXf(M$$nl69Bd~1hFziD2-QnXU>Q4hK2=Z2MaNvyiFqSz9ib+ zn|@Oo{Tk#(7?Kzp$D(h5GHI;l|KaORz?wSq_wVPNBqS0cp$gbZBvHChm8G4QW!Mg2 z)tN5h)E4H)7VA=G3M7IODBB4L($>pF6N9`OrG~*)Ic;`n_(fLG8_zKtJ8m zMgc9GW<=wNo(*>o(%inkvM~?n;=(lYOl8~-o0}SBLv@Yn&E}NdD21_=G`gw6$G=_q z?+Wt8AyZ{u$;xXY?)mqAwjXRoJPz%A$~S!KMvupi5x4>dct2xgj2$W#wMRrUBz(v( z*nQ;HMM=&)-36Mz*z=<^DkmS0G24%d5E`x$k!SFDKx)QO6_N3j*K-h7{Y<%LbY!tb zbLCGjg^y$EYQ~=e;sK=2KM8L;PN!#u3NV0=J)py1xjllLYxV~iwT6BJ2vun>t#FGZ zG(watak&9S4#}itF0=W-OJTSl0G}t)HmPu0Z7`KDfx)O~g2DubO6|<>m>A!GM5Mp3 z4N*npwyEB7+aP!tp|Y2pOYrv?r(Lb|@f_m?-ExD4*9N0AGn&%%;ww~YBMJv+xc;4H zOv8wwAldONHk{>ip1TT7cK|_>G=l54O6DsUQQ+>up$h5L2M;dZ$Xg_MrgRqev zitX1Pf%PZ_UK92WZjI&Y&uHvT-lL}dMvNq&agKZP&uSS#zh#psbzjSUskk~YJ(llX ztrR5HYkgwiQ(Ttg*N79Hip&@5cpLd|ARhY1OzhoCQGGDMx^E8$4cMVs3Ysu?$h0a&wQWu4x=ifrhUd~v->gpge;@q}@z*%1_97~KVq+iMjE&D(3Xf@soS8j__% z4`aJ(QF%x)J(x2gY+d<)zPTx>eg~NhHwQCT(Uwylgg8Hg)y4Lrnj~@NCmed|{(lU{xR=EwN;tRxe=}FhZL|&J|7{>YTR1VVRQ5){@Z7xW$;2K;aB-=z z@q(!`5pi{}B(=KB4*EGJ)yAP)?bfy_2od@3^yIIj-Q+}f9k!=^!iT^8)giGBpt+YW zJ!2TBk0T86K-i)ZSk{>FbT?mI|-Ez=?0h}|mooG9rv8%*VHcf&?ZqCKOZ|5dmJ zUi=(oOYO$;*t2Y?|DQH%{#;g{M1%vosL5}91h1>@V#Xc;E8X*u3|6_ca40-Tw(!0T ziDc4x&=Qf%!m(~J=ay5WgT!}IPryMEOvfak~{X zS|rPza$*||ltwd0#dzIWwBBDZ^Mr*!ZT>-pRUY&&S06q3(lxnwL+HkI{>YgvXf9~+ zQ_==?tz=AqY!|%dTN{GLQE?b^;Ubt7bsz#^l2^5au&;FKX1Ga?_;&9!Ur^f#|AFPS z0}%^2hrNwbGUJzTTo+t3l|Q2e{BagkBJXyjRc6Qn&*{+tanZ8)MBVFN)jo4d8o-a4 z#=Qq+R3<3OaC*?4IoJ3277}N)7YWMCAJKQ-9oyHDn*m}70F&q%a=Ifq*v24M@w9s8 zgfI{uz*;A@X^?pQYwxVuF{z(y#3i${(ePjSovkZN;J)x0E#LPGzi^;9>T_3gE0EYq zWLGkxTv{-RJ<6nZQmH!G$C?c&P`$F4bE+IEey9C;AIe%rP8l;owBbI&mYYs7Ue3~* zEn#oXd$0$CUfQgImAV$P75QJ&s=m!K8Qpw{AVzx3fFAu{S8zq~_)E6?&Ogu(d>!X}MK zvv5_FS26sTJ|hdWa+63j2E_H@8yMv6a`Z@>VTH}+AnrVH-6zKDUWB4$AQ%q-Jhyn% zhzLl#G{&#MckT$+k0&wtcqYGgo{1gX?UUuz83_$M)~?0C*`_zpWJjwf67Usb3Vv}w z@<8y2N0x+S1))6Q5xdY4xuula?}c}3VFY>gnyj}~VaNIY!Id}<){%3j_Ke`ehLk(@ z-yMFJywlR6J>Ys&&OuiQ_2sCE5nd6_xpeQyByTj?lK*I}Cb*Kt_ObCr!TId$8s@95 zJq!~a<%uTZQGIefD!MsgyT&JB&4fzex^tGA^e$Dd{A~K8e}8vS-kA&3`x4r-M{{D1 z_Y&xR$79s>O^fc<1?7KS{n&~^_Gituc81s=vKmI}lNjNHVp)*c*1GbhwnMJZ&^-Wf|i|oXPlQjodm1ac@*9%6MRDUHpHD7>skCp;a&Op^_83c99sD+ zxwv#=ZNz6kPdy2Ew&&Gf$;8#KhmK8G?Y?uLR!bk$ub$(eYR{=hOqgzAQ$#-lM<^@DuX|$o>%hg_}Qr93IHoT9kCPhbuuqt{Yn5@x034s^^Eo zc#~{gdV+{s5S(Tf`xPdy^4`PnTJ4`UtQMIDt3)|U+G|XEX{k@$Y=dQnPB-CvJYni9 zUVP)E5TjJhVC4bF+bKWqVYm=8^ z&n=QXqlCYI97a%)dS6q{@?8bE!HXVeQaMzN_b!wKoDHlidBG&^?Ykp+z&o(1pEf+V zccM-?REWQS&vG>SwbGXwhjnkCZ(UfKS~o-&%_1k@P!B)*=cq`kY2tfB4BAjXtK+_h z?kJnDqSlcMYY5PKPM8___>UKLAB{$XQdxcC(l2T*@cMC557NV4xx3WWv;2;u>xdD( zk)@RuB-Yh4%Y{Ov1|o^c;8P5JJY>C6T9fCkMB3$8iK7;{)pL)#H6Gm=PNoe1fqjnw z2`*J*%Rf2ECW9aXrRkUbH|zt)F<~HmN@n9KHzZ5xWk+G8KM^;$Zvk9i50|0 zQ&FXgkXIKBtom=-8g9l>1hu$3(rNaSu;%%AP4<-TA+tEBj`0AjxQnk%xg$Q>#2`(q z!G4k6KdsYD0r_`A7>pul4fW#7A?5D%rGM65d2H3eCi-6=>aho5zd4(*nnt9)w|?t% zp}n)jLte=n>CWr04_bbTce_>ummE_#&$w$nz?A83LQ;c|Cg!Wx05N|9t-z95c5umR zMeva)dV2DTGGb@c+C;Ym?<4Y*ue3Hiw=y&uNoC$=)9?wz&6$teq6X3Aex1_*upZh_ z4{0|B29O&CFoW8Ji~UbH5fmPGSj*{2Vh8ZMTgKHSYFS!CN<2ce$Wuez(H`{E@z(xl zhAA3a11G7UsWyU|WLFq^#LdEk%UAJQmP7!1DNB!Qb*PJL#HOBo$y%8|qeKp^3lEO& z*5{LFYt6qBoYuWd9biWzGh zBqhWf_(`VoH>J5{rya8@3kuEj-s!84@KIvpyn5yA6FvXxp-LJ`Ixb>S zsDqB{^!%c^4kFK7E$XfThx1w=v^P$0ZkX+C*T}6@vrjDvjh1sPK{a+HTpRHB5+>G% z5PQg11P(b4e4R8vu_+Jyq8OhOUa$nCr&fhs>+0Ws0sj`U#7V`A?y-*@K>NGwBeV>YwA>Z8xTT zoc7C12WM*{28=g3%eU+BEdb90Zma3;*5?4k*VIkm&n(qRI_x@@4dS@e$IppjEN~iZ zCz5Bm#?38>{*%?11LCr?nRPpxBwlT?Q1esjhj|BZ0WhNO+$KnabIkGfB!F?t(M7%6 z)^R)u`#>}0V~fPv32%s7V7TcnhXTpenhBuvZW~>(+nW56{Dh zJ-xa93vT`kvtb0kmXo*cv=}oZ6^s`rZAfDO%oIUCEvtv4KrL*Zhz0*yT?5Y}?FXo0 zrf*u09mL<-qf8ccc(m@2OK1KITu z8CS=U?^xQ{3VyzxA-+0Eq!bgJcRDZ=Zc|||!~yFqMF(dJ>yLnXtHj5N#&dB1-t350 zVIV6231^bmsj-Rko=2G-9BK?|9qRB=SXsd!Q5?Vl89jGu9xf_fLDBFNmL430e-Toz zmk}0GO41?p)JI%{#@>ov)%^X3HQ%voZvx0wOSVht-JXZJLUY8<4zPLr*hNw>yBvNY zHMr*B(}zi996LRM4%p>tQq%k;?1Yq z(jh!P!e}6oQ83oEiVBboM~-0kLSp}j#_0>EI$nvCNRb*tFFc7aS4w7eR*r9vbq;6% zmd~)#K8nS~NbbVam~VkTf!K^D%AZ1iGmI`^R$=0kTOK-?DDx`D4>rsx?Yx zDzS^O<0+LmXZor}EIFcDxHw?7Tr0W}jVDr=^8fZF|G$37aKHb8z=6BRhobZQ>om^L z4{XZ6z49LU{&YZG6R5wz>^fglwGt+hegl}*8G!2H;VoM7Kfi}sY9@SYHGV2QBFcLR zj6>fXLn-ulb6C8U_I_$;OEaWs9?#uqw_Fu%bNNR!OTOsB$jV7jndl!2S6`RiT`l!s zPHB72qnZMxdjv>)=_6Y!+(DZx?=7eh#VdufC;HmM#Ml-Z?SpVT2Aic#=!sD%N#5dZKjE)(Lxe^E#=*)4UG$yEioxj@DMEs9qL2bDB*^`E~ z+Q556ZlD|{cH1(4J_rZ&U_roLvo`NXM_DCp8AYmX_ztLAcJF_@^q&G5hhu+lt(4>& zbi-AyWjJ}cT>AwIBqHCj2G9dmerCRqLR_y`ImYNlY89^62Z-~F{Y{cH!;o>`E0sjq zpp>aI3{OSjI(s+TO|_%H)=`VM8#<`qA%?ngtTmp-hO|!6r~sGzU)p87PH7FHsCKE|#OJRv#C*>sH<=Ft^pGS;=lBPh<}eo(>l=ctV+@nmg`jg3}s z%(9p>DUf){WIUEE>3{S*;`pu@8ArOmf~a&ho&wc8djc@Ym1T6IXHCQBa4-ja&|s;a zcs`Q->d*m&=PWxi-o=Yd{%Wha1*F`O>c^=IJk9HNG@1ir0(g%sh!4;yCTXnFs$S54 z&P+`LCm(o0SMj|NlPK4nx6%65jR)iTX7Rtz`QV_CKwdQg=o0kcbHC@9=Cgcyrv2LwT-2h$Vr#LvVAb_U^kkeclx+;OXi61^0^1EHAPlc ztD?KJX;t)3+3pT?nksd***$$IqC~bOY;{Fp>VWu*+q&Umm%r#70IchOlwa(hc~6i( zGKwAq5X+sQL!nL1-nGy&6TZ1`7sHPmn9OW!(H>Jty}Ikyx#c~7MDgD%HLklPV=N{D z8lkCb%Rgun?iS=G#5sORbin3wuv#BAyYDozHf+o71Uy1=q6!fvR4z+@Od!sH%g*;6 z)c7Np=sv_draT+NB6~{;=T+_xuqshGDxPfyiWl!ar4lO!5uzFeYeUF2WO)5UeUvzM zsjFNOk1KvA?eFRNSZ`7uTZHX9)@)<%@V$D(=WSl>RBVB!(1I>(!b-fnLAo9Fb$~Xl z;@Q$r@^L%9V5xb{#Ij*H@9Q%#xmq*K&1fl!C-=94ngy1t`?N{8&1}o@?i-!3iLS$SU}|m=EUYia+UJgwX!HOrk4K@E678T``gW#u4n4v!&KwKysX50)H#A_Ho*aYaWw)KXaQKMkJ zYySm1h4(OkQanR3J@CzBQ1QvSpc>`kj&4j$P)nRLz*pA|t(L#xU<@)}NZNfGEfbYZ z!oYd`wpHrRKD&fxa#?y)y(Yv11|38l44H)dYwz^h47=*Ny2!0qzwG_2O7f@Us3Mx` za&&bGq%woPXUWmm$BO z{V_e?4;oR3L?esq`E~s5z*3{#5>p0!72m)7- z@Atvwzo{Z_2r(!iUd-nK;AzcD<1O%2?J%+GVFb6Bbb-=e!z>U0w=SBL&c9W=U1)uxpjM61;)-R&f(Qj<; zZOXxTUsE)4eT6vL=%;ITE!cfP)T1mhkcAM={8^T?WZ1rZ3Y$eYtqjm)Dj+WX+lzPTTZQsyQ%L)1^7aR;pt4nxe4BFd zus85oevAtkrMKzlCc`o1_^x)$`O~39!$J~}Dj2Mzi&$Q1=$E8wvu%W)^^ZF93K(lg z2Qx@ru^^NE(pBB%e6OpKJ|Bl4&0S{AL?A8@>FxUoYSc^P^yMscTa=o7Ac z$A}%ypINMDAY(#HRD19Svz3b~+niexU4)-Y2NvGWf3!x~(oddFAy-g^%<&F(kJ!%rB8gmb_vPUOU{W8br34Pj+s;K&AHu3#r(aKT6i=pwGL&$v`Nf>)wc2~th9lDOWWaWpETC66~VRnVWqC0DIHpNHn3gB>wmyplgLyjio* zvzCJ)Q$scTj`s;PN#6{58^UKYW>_nCPLsEx}X6(Ud2 z{9lF<9*{>AtjsRM`E_i3o(C#;?+QWygKklwRaQfVr~=e%@FBnhsh1=2jx2rgtCFY= z$WPeAW%=P8^APC0Z|&1lgzHNg=iOMMK}>#W%qS|D;s5O)i*{Eg{^{>Cja46GZ@{gJ zj0q{%S?GVhD)yH>jZzaP29w(*=wv83>>mBZw} z*Vq69e59PAPq=oM+oz9!K$PguEeTaw?Y*?TIF_a7H6Q< zE*)7RclDA)p$ngFu<0Xxas++~!+t(Hr)OcZrcv@mpg)8x>JPlIk_cTx|)! zXy9xX+Yd6ZEnr;fGnFzwk;kn6*3I++b3hWbT%rz98RGEPVaYBJNaz!8^qN!6W-(uF zGom25@U217%)3jKXLkH$(VJY(nd7aPR0u2n+NpYCZmE()zT}$xi!+7dM)R+x>(@namf)@|8v7vpD7EoCAS_W<=ATX@xU=ep z5WzAux-srGJ91R3Ue}J&t~tv#bk__+JgQny?lOGOQ8qnlf{3YzDzWvo*yp=N=B|H6 zn*>(Fg;9ZFDA_nbmdk!6aSf4kguHLPnCNORHzd<%H|z>)oIP2ol6gVxId*ajbrsd~ zhT;2F3fFlRJ((tS)9j+sj5+2AkW6_N9f|DE3+B@L9}>Hk<4dlp50^@XoqL$w!!XTS z@{1mus_1U5&vszqy2~*!zAN53pJTQ{4;kFYZRkD+uMv(o?poZr7#%c3WQSduh^*Oa z`HG{7;Eo4N3A8pe6qKmI6PI4_7#9!53^%_&fEVbL|p-ItxKMSCwQ* zL$qmW2i*&33%<}g^(j{mtARxpr$>0bLS)+UuK0lVV|EG!?V?mcd&WlZIwiP9<-Tzm zPj=1haS`(>^>#Qwb%MxRR}Yw*sqm81<1oqDb!rbRm)+01E?xF8CoH_AYEF5)1|>8` zgRSA;2rLkw{RBK^IGZVj0G5mlp=;RWr&DEyi^7cQmHfE&kR*Gxi zpthT|KJk%Rx%&9raN;|s#A-j8Dg?$Id}rQyDWvLyN?x%Xj&wz^nG>AP@LAT<1g3cc z&U4c2CuSRxVupd{mwP&Y|3M`Vn!H0tL{{Be8+Hwmu4N?~|F~wJsqKO`ZbbE*3gk)+ zwhigE990QB%oy+3;WkJ46tb+QdX$sV^82}Fg6PhB2hbuc`Pl{|DKsU(^9)K2%lEDu z|B;WT;c*XHz||7BbykKBtOT=gw($)t4cz?R4zk#*dKm8YLqB4kka9=(jUt+4nuWnN zZ2#co>ffdyf_@9QPTS@VGrK>xk^gK{3Lv~atX_A)cfqj7j(4n-1Yz`ggpBkELop8M zMmkr6M6qjOGBoJ(*jmKD&lZ~AH2YdNX@Jufp_5l2J6pt&!8vopK@OSk_6!m}%R;~# z06!Tp9}PJBw=d?J6V{Qb@i`_hw`Gv|_oY}+4Sd=(al;9fq-Wh#t z#|x2kh}2yaOYIQEeYO$V1 zHMvd-R2h77YDzVTQ4r*}1>!`-Y1;?C+N}fmQEYgUujA1`;XcxMW6uT$7B{GXnchs~ zV|2)ys??fN8}Ni-{c}jfu>)Wt6T(EaN>oy8fmFn;D%qx4!|)yjADqu%`4YDb!jE1q zTB2aY;GjIY&Qs4W7y2Nqe>Io$1ztO5N*8qmPhFNUuF7u=N&NV%^p861l~XiewEoFb z+%n!#__C%kF5u@yOM7r!BeYvNDZEV)99AhLole;_7$|VunQi;D4+(!W3WyqhH5y?Y{g<(i=7R0}{j)c>Svjj{u-T7la?yW$1 z%XR22j&z6BN2?<$NV&Os6%l{-3oScIR9GwgE;$@3VC9^^QQA>T2 z4L;pV5-|T83U@-U(?#4=jhpIo+Zc25Q9X4Lbo!l~^(qqDc=Vhv$Jko&<@6V{qjZ($pYvZhP7T*qrgBr!}ZzqV1$#@CH&+u0z74V=dlEZ zMw9x%#8|(~22Hp*=zFKrcHIq;U5oDSFL7)CHf+^8JY3lS^X>e9{)ooIm};E6PKUgv zU#WuIjy(U@8x6Ko{2xA272ZbKJS!>rl(`U(bqi~%`TzQZ{KxqG|Cvr;L3(kyf9oK`ctf`H{?YEl$!Z0r`mvHCr+vsNWo|y7_%tnt zDBv1+9A}%N9!7IjMK16xnJRnb{TZg@WEFOGL&8?qC!@}un~;}8up)&+($Ca36fPw_ z30|Xmu!rM1c?V5D^0ilBTHF0;8}U3Gx{>@!-cxR`n>`EtaeMb4j>DAdv8~z;1IzlP z>|>`y3Fl@nucb-(y40a@*S zPKQbJl8ayW!*FG4QPXIbaN%aS2(Tbb_Sk=Oe1~7*k{WmT7tU`TgHj(u!$LFYob?{Rq^R`YW-yw_V*&Rub@&_Ljztb|cXY|wXzYicP zTsU)9_;9u7M~hnBjFli-fZ88oD z9u;bji_-3ZhV>c)jYK#4RZ^zz5nCY*jq>r0$KiDC5N&Ae%;f-B<&Vs8)#(n0QtZF+ z!&2(f&AB{aORUL)wu!S@+^;0%dW`3~73s;pO(TSr{~_lR-|Wa$;WJ5GR1QWOkmih1 zM$m8UaD>BMMDzO4cV~kd3YGC1Y_>jwv%xXG9LQiFVwVu@9p#h75Y)~MYTPnX0kOsJ zLG>hT;j_#rNI+R?+*WO)Y^H9e*P%{DeQ*zc1XK3A5_RY;eo|?$%0La?6<#OLC|*z3 zwGG8eZju)UP(l*vo-?~#J{dPGSRIsq;ltxj_o^pCzUb9d5BEA|rR(Vane5}GkyT^W zFN*vQhD4s%j1~>;I_xz({n6h}P1_4v@{X*k+)!DvIzwCd$qcMST2eIPc}NWnUnvV> z?|&YYpI1%W=krnO<7AJj)0S_*gjWkYjZ)vHUCzP(s{fgOX216>mpCKdv}4f=i&vy2 zWcZKU?{=6?=U)W3Q11(o8mfz(tyW&)$q9&)qpVCkn8Rr%7qC<;S2TBse+6c7Tla`t z{g1+*9-!?RGuLc=#LIpus?6h3aZRGM`s4fP{yr!RVF{j_WhXOU&(_0-bFW7&k#2<}`6SX9ST`s`drNM*h z2UTjF>#nQm91Shmsu#(JiMF@Xelf&w&D8c1QBhGQ@j#b}8w}HKSZ=eXH>7gnLdPciztA%LVq}PE7_L4n*m5~~L*1PDL_9M!R)tUk@*ofMbvZGO$7_Z__93ed zoZg5L&4&6M^OGJ;sdX2%p}Xlh+1Oo4%?xF|FQvj~&*FS=7luqgE$e3M%7Nn5Nb6>g zOQNL~6Lty_yOaEY-7Xi<7eDKbT;*LY?ILb9hJ0WN)+S0<`B~xm2FxLt{h(GKKC8Q$ z!_oaauk#TxPvN$|oSvzso#PBraH0IV9k}~DpWW}{UVlqiRziS8OTT6t)nv20{hw~_ z5ZIu)GL-(}&u6l{1tbp-#3;-v#_lYlt&JCu?uoJ`eC`p?!ad7fKNO$bL1*+roQrk8 z8|Q0qN%%<`7jH%_>>XUMI0w)OY%4w{!^8mjwhV37k5nEt6e zfM+7V{w74FnY5z4Zj=t3Q@x7IWtV%^)0rt%BG8=8^Jmz|c+FW)?n0O3*pYYI^mSjD ztyjo}c;R%RF8(`id&E{uy=8AyIC@+e5)tpfXfY7+2q|Bf)|Ucf7=tHhC? z=ctAT&nJfZlUJ37{4bZO$SK-2F_J9&@Gtqme?=wnBg?)diO+B4rs9Pi&cnry?*?xu z4z5$>*67li^0P~?^8l_4E`|8be8d1B`?>N5uyh_#O5PVn#%p*g-xDR`?Baz)wE;YM zj*yZIJe$#^3U-Sb0x6lwV~_|Uf_xj_^8=Q5kSlw|Y?v<*$WHtme?pgJ$?ua4IeR%~ z&8eE>w+jYQd~k`pwRAp*-JS_#N7KNg0B(Joy!D$0Vz$`HyaN942Emjn6SyE1+0@M62R-vx!zgjdURP#3d|C` z-a_=f&N2CWtH(Wx)+;~Yj8(AGk4V@1Bw@gyYgGiYB^TnzcZVU++d6XW`_Gp+=dwW^ z0C%rPItaQ`hj?&6yot3RK@ul%d3X99L^-KR>`#>0<0PPR2V>0panYj@;lN_Ar%^Q6 zzTJ@Teb9|L>p|>XI%3p7&aen#eINeXPGiG?T7cyHYaa4CtCzjID^2*O5z41(gSs{r z_1Qc??z@Dc(O;`J-E?D4_h&=}mlVI#rYUBZ?>)?&c+Pkp6gYy9SFrwwbBJb#wejnI z(du=279qKBC6W1IuV)s_K!K8qt4LtXG-|8gQ|2Zg4kPwo97^hx#{RGgk7aT+DqPu8 zJm0* zI&iM(cP_2`xr_Wc8;EO}BU%PNPfy4ok53w;*r8DKT-FOlLQVahw>5?uvE-wl8?nSZ zj3MZL!vwi2Im-F+IuY(a+5yAtxnV@_W_@AZOA=O=dNEV6fWsE_*AjlDT}#7cXNH$* zDz0jsY$7OTi_~bKjmz z|7L>pSKthu{*xS(YhRvyYbfYM+dJa{igVitSIc83VtRmV3qZg-6O>R04|c0aNS^=F>yZQk)K z$zAwK2%f$ZSIhplNj~fUVUiEJ_v9^b5R`wqe|2qQifl}AQnB~DLf4mlQ4@xldRX|( z=E?{5lRD~Gat-yVx!4BL{otlVnv*M`+I=|}%NfsWoaRFHFaW|ivRs_plZP{jH%z&O zCPuMl!d`s9cNBIzfL{AEJZuVN=&8lpx5(-4`XgZxU(8x#iS(MovDFkL{Z|LIu0H1u zKh$j#jZFfBt#dG)b~yU}7_Bdw@EzNeP8kkgnB*O7$|0z-;ao7v_?3W-`1EFn`e@QS z+|tMUSmR`Z)cu4tjPHS4Ry*gX1Mt`t6;@&&bnmGIZ)KJm z?$T5MS!iX_{DhZ01yupN{pU-TLlir(8QZryr@n=UMjydOO}V&klliWu$G~=I3}pMo z<5hw}5bGtoT#U8mdvrlRY7a9FRI~Er&g&Ld-<#<@$;LAmx*P*9P?7MOw%lKW3NLU4 z9HWT%NO~%Y&k~lJ)8OIB%G7Coi0ToRJ%mE~7;EDm!rR)hmjfK(eoGTS+ni*qhZ(n~ zSL%EHoD?mW9^k}jF=%?kSRqQt zTX})p@I3rR`o!|Yx0XPbn99{>rQTT`Qm^swwdV2@_le%dWDS)h2OM}v|p--{}#-@NMNPIGUy zkHx-IGnJWJl5L>+y73rGaiNkCQ3rX$syn{}GS~Z@E$nX*ES;#95n=OVW-%yj?M*J- zzYvF`D)%adx4+vu!Vg~_SBZMhG``w9R9VEgx=SPNjX1@6%>Og;=}Id;nG4iFEhrJ_ zWx8I2Eyz;SI-JA7!dRs?YH!*5jR<9B@P=KzLA+l9O6q|SrVeZahD-#W4Al3k0l=JQ zg{6cTbKAe1@QqW9!3{qtfVYVE2xFcrbNW=H8xuZUX`2~=M?MJ9roX@1SflX=oa!F& zQf>c$^}JlvZHCh8$yxyoh*5*F(z*07Ye8X4L>putN~VkW8Fd5xDfH7P;WyfOJ06A9 zLN66=I6%+mBZb3!$fRi)GD!1a13IoDdz+Qk@DOZdd+bpeMFMn=@v3ErHjMJrpTc+H zdAQ-?wN^(B&ZGd(0mFR@N&L0hh{O`I`#Kno;`d5iza?2I2a6jKH2wWz* zsPzG+95Yi`+J|E8L&~P$Z^X{uIk`Wt6iR%gO?f|w($a4i6QSh#fF0j!m6qO*F9ew9 z3zy)>zK`q#4OKjL>ORgohdRg(=J5bzPQ3MSQ8viU{@UL?GW9ztc+#qbV zhkiYdy%+TLeX}_C%Q@Zy+wg%7Wx!fd`Hu@=DQ>pwW+SkjaWKN^OR|CEfPeY}&O((F z)Z<`G;qd|743&AMiX)4?>mIZC3lxkC2sj8sz}wG)*AMs_03)IYEvH1ndZUHa17ARcvY}!z8F2FQv^FLz0e~wY|eI6vC{h{PFpuuxjsOrsapyI z^g>QgImIg)Q`KXK7S{)ZqCT|;mLg&BF+GWd%BdT$@OD3-saDq?VQXJbWZpP<0y6ds zO*Xo{!L1fq>PQkcohQ(eF~$Sx4Z|?NO|lP@-6aqOCGFURx6N|>=TXhnghj=NU>r`Q zSbeckEynG(JFu3;JNFgpuj=QVVpJYL^?LA%JyOJE_Yq0L5S+q9;FhPCL(%sxap^v) zA(N>z;t}#EN4UMytRPTZU>Ow*)1hYxwRGZ+W6%@x$+jT2e}G^D5QuwD0!t-IZAq%B z0;LR*Java7$xI(1t_S4WD-)q{Tm-gA&5|3!2Ur(!^~+H{5X11=?5PCClcjebLFgb8 z!an2M#aBa|#dV#nORg1RW(eoMGJtBC)4yF#+#ROr`esMWL60w;WrRDHNh4<(E~<}+ zB5(tN;Dl$|a~e;FM&T_euxaRl>3_d~!eJr0gyH_}{$IlU}T8g>2c)*7KXq)6!4-o-+h38X*RpN2tVx}yx5wn$RCcOG2^J?DFZat-VmSfQ}?N2E! z9Laq{pP9|k0ta&%8xo}>c6?^9nTdTejWsh3x1|3VO&6gisSCubQGp^hg*JD>3V1l3 zXTkegA_8#jidl(g5JE3rS;s3xnZ1=w0tDl5Y$C9QOKwQE+VFdKg`fM4(G1)PVOZTy z$_%=o1{evGh3zTkNK1FQo!*!M^Ai|IRd#x;0M7(7X_Ii`jnQF9(gk4cp~PiCfyE0C z;ql%Fiyn*JN5P;2dUGTtC@of_n4mrdu7g{|O9ONL{VGYq&je~G?*Z@7u~vjesLEFH zu_JOXW1qlQp&U}4jrLg))jVv_F(21&Lx%lig<{x3?>`ESxuV=u0o+e6o8<-HLGGQL z@NcW!+h*r90?AD<=Ma#BRQpSpQXqvvKbT3jsWq8;VW92lONu78*8o~0K9D{}+wBkT ziKGBSsYB~^*$_IXi9Bx-9khD4ZkFn^O*Q1O6{f(G2vu({%!?$g&TNzSq{M+utM;Kw zDYQQmca2;53%n!QxYv|+*PgJQ6`1>i_yv3m2Gqa51{EFzz0dKrF71WbIShIi};hG`R|*!IN3i%Q!QcJ)9ee#H9?{sl>0x}mHl(JKZI!*|*d zw1^}#q3cKlkQmGQYVp67%F765=NwOkN{N-aE5j!%hv1cn6@J<>NTWI<9qEUfZ9UA% zyz70eQ~j|UB&0Qa76*fxY&1-+am^t~U%FmYe~XUy&L&rn#-SwMM=w^P!5hFVZv>Ot zuomX_-=XhkDes-$(&hoA}}3&1%7KG0#6Il3TN5L-16K9r?Pm zVufD<0-@eDvt0CkE56BM7eJU~XZKAk!y8G24!2pMry0Qu9|}Lk8`C2}!SixSv)#2r z;7zF~3jhfK^nx&EKKbwh=CRq+BNpATshKRE}@TRj--m8Ys8)n zG&pXz&-a@cIc`uh-zf=^!YpR*ba|Ry(V)x>R8xh%;Onw zb7olEg%eGLhfCZTvd)VGUVf8HS#rh4^A`)X zbiN#LkmWIDeZs(d0$p<;s9Xd4Z;20tLUr`~rD$A9tjYDa_yKBcC%Inj=kqGMUp5BJ zQDxG+IV+`G25j8gT#j-9BEk^w7Jh+UzP2!KobB>&0Yr13E2ba5bbD4q!@=**@*pL>$O zY3D4%OEKs52&busxg`|Ul0FeMu`A5V2`Yz$=Z>9H1m2f2)SE5rWW4h*Z>wxg=6|b_ z&Y*-2^sp5WYRs&#a+s`4nbnIA-r?-C*<{oC6hzpJB`r5`6U>|hs@7YNm_%H~(m+&c z3}y%Dc9w6vVh#?AHLRBSxO|LG(ny)wZpHgyU=UHdrUd|5SsO6L-l$vWLl*QQ#~&?w ztwN+XAo=GL%SI+Jk&AyKAj|{;Cdm#~D85l9RhtP};vGrmG&s+MP2Lq%evX|x1TYo8 zAVA4x(~uOQg$8qoJ^}87fCMS(dO_vQ_b$PH^Gu>QC<0pDAexe{*W`|ZguEk&gDH>x z0;ucuQ!d6b;lp3SQrwc@ z_vUK9)tRyO#inepJFaaL?lrgg{wo$KHil=KH2#@oGYy$Aq%AzG)+E=bn>C2~9)F0+ z2|eX&u=|Oz_f2rzw4v6eIi3B>^y0TNDT`<~m~#o=I@~jMDVV6h{Peg7ysh))s~lBp zb9w=`c}~WnV^=Bs)`R?Ue1Wfd%_}boTU1fsI@tBX;b%?asa{vtXKQr_w^g7ey3lk= z6gNN%?(z*CzTGtsbxkhKDQJ@ZW839RM)jU|`D#=8#J-rYi|ws{-FyD~4d$N3Dbk}i zucO2S+mvrN4mmsA-gWcb>9OLZZq z3oXd!(nWLsq@fyDJ^h-PTQFnbd6^*`pf4MX$v5deDcglD?>!J;-45S-xqF5y#N;_E zEKggy06;@~JOb_y*uY{Q<8TetP2{a+W?1@ZEz)r$4Kd!Wv&-$^Dnnzyq6+Vi{J3p5 zUBtJ9KRSkJeB&N|^of+D2^Ain%=(;gR3XTC~;VdermDbxIlcZ9JKGXIB5e9s9#|>x+bt8BJW$W485wIOUG zA@>{ElTHx7X^6;>nkpZCgolEFw)R%YgUZ1w>82K*3u8)5a}AL-J6@ZilF#hG{K2qR z^Yxa~8((T1%4EKTlyDjCHIvjbggBXgw8&bzkyWOEnO30j3p>OBneTR|bStok>L86v!W7838V#s^6xQxBybdz4HITvxf1 zjUzn^sqp!*t2;LJ?d#ZT%5bvn*d2D%yo=xFE50RZLWZSQgjD6*6>@t)5O?uqU8}@H zTKzcFY+q{iCD)e4>tC?wmQI5^)K_R$H?7|m2%w!HLVH%(JJ@6A^pQI9B&^z8??X&9 zzmCgyB@0FBF8p%aZ2LV6u)pm-(pJFt_oqIWooRfSaJK8;7lns)e?Gd zUWrusZvMqS!QaBbXjOW?YfXlKl-LO_Ssv*y&DByZHw1~Y6m+*vs3?^|HvrLmZ%u~t z2lm7fW*wJ>iokqkV0npi)6x(S}hXtKMPwjvNZIBj2V#J)GT6n5RG+M{1q5d&M|_w`vi|z$<2&Qcf7QjQ#w54+uI~x%w}`= z^6^A-s7w`>Uq=LQCSelH$b{@^odljO{fJTJk4ND1|U;&uHZNnS#kWIVXIR%hshDn;dFRx~X`` zY012VO%bakdPT4vgw^tns#l+KX$yLC4c1XHFLW;1g`kGO(nX?9 zD~VjC9akTG=i= zk(6-6`?HCfHmAyF=kqUb7TF&ZCa&B%+weB|?ntkc7hjYAVXd>wyN-Ibc~$4e!nb5) zf^+D6zc$MZ=9O$L&wg=+IRlW9njbSA50S`t&v~^LN@V>e-K22_u?m|z-_BHd=m5#F!WSJ^qZ-@YXU@ z>RlK(pqp%zbu0g_l0OQtJ$b>xL;kwH89piy$JBrqRjma3l1cXJKnVhRcu%>tOzYY; z7&mF;?3c=GJ2@Ic=*^zUZ#IEtAZXta{&lhUsg=Wbi5FDB6kdgMYh?Ks6$OJ;OT2I* z2LN!3dxcwLxbf0@L;5 zt=wCOa35&MlljQ_#JCE0dNX^M5P?ta?Se1m%CtvpoSFO;^QRsqT8WX%pG<}eI;Vqu z$pnu;+haWY=Ob}2JUGW?-ftqIRZnB+N2tPN3*G136!q78>G2C4nYm4{)ypv-bJP+l zyQF9$zU-8DvT@l1f#Gnkh%7qaZ5h- ziEfEhi^gZMTgMKLwl-L~lCN9Nmk7L)C+-U0%Lwu4uUf!7H;M!DFp{pMB=ychz|5%8 zTE%G>ycK`<=Z=N+1&;{Pv|Tj6FcMd3{tUeqcy~L_Q~Nw zW(E89i}e}kx|zwJiaQsokE}YUmY+H0TKvy$gk7GzcAJR8O*Rt(og7U%2swRY++10WnXxDYLw55}gG>?BwJmweb6W zAifPDu^1=1SR(CTGS8mq);{3bTpBE)rLv)Ol?^+?c`;zVEUQ$8=-+AwLIP(arf#Fqi6};BEN!Q_`&-Ao>0w!0lE*SM*s(yrEfs&+v3LyP%i8;XK z&r+}DC3omeM2;b*R|I9g3=T*#zwZxQu z&}(plUaoV}D*O~v<#;q_>AVF{kwU-=EL&|Z{5v`p?;Ip!iqpsD);d| zS;Z~iZp@l4@9{YOUO&H3;WOclq}&ILu};pyforzZz>tHqz9z{?0z$qqx!a!J)Y&KV zk5swDKgSdw8%gXYZ=Z#?jS;{9PT1J200Zy~iT9p@cl>f`$O|`^$ks}QM@Q{O$#%`v zJu_bz8xjb{)D{M!Q5B7GNQpx zJm*5SIGWjS=*gRzlbBgsl7s`FFtjt9Kkq}EW2M&tQV@=s^9Cf-*z^~e(9I>EfDe@w z3>a(LgeyS{JqWCN&pbhAhO9oR1Hj~|USi)ZcFK8-Obu78Lns>YSoPMUPRD^j&Lm!b zS|clKD37bfvCP9k0XEv%H)4`PoQ572#o7g{2-eMMFf~F>n4*UP)>u;~r&1dc1qA~W zK)xiLXV~-Z?YW@yIL-ke>QRr^y02ECU>O(43@W+i00)D|J`!QU9@%E#x(Eg}7?D27 zV#;nT!Bv3*JAo}IWOyknKyaa68-7}cc2<<1T?A8{T5bJ*^6`2VNkKBP8t8^h>S`ti z-_Eo6nViQAPvx?S#d+-u$HuG{8euo2!VD5VuT3>5-17?2{|aokGGY?0We5kXVxu<| z4ng&?rOAxpfowVp<96TpRg^3W)eaaf9=LA>KM?hFuC>5)e-=%>L^;M2pdzIxKE(T1n>{fbyH zQq1@P2T!13$tw4}I|Q7`Q2`dlK=D1ATQZF`|Wi~bb2KeaIOXk`Wm!tVoijcLG`p6F9ExeC0MssRd{Ud6!=JbzJK2U zZ#soi!Tq_bVZz%pic)p$@8$|jZm{%Cvz1v}t*|3MxmWS&eN@UP1hGRv)T|8v$FD)U zu|p!JbcNpSG2L}hq`gL7;d>(FU!Oc8l*Mvv0%p-qs6p1b5uL@4Xc)5P)?f{5UyoeD z36=CD^lcQm;iH9c9BSK}?Cq?@C|ng1s1j(g5%@s?Gx-@+ z5hU^Gs3}Tb6L-&^=959t)#-(CceW& zEY`CK3S>ycPI*U6nd6^?E}iq1tZ2nu*EQ|BJ_RSaK>`o=1n-0ol{U&X`dlv|HY16L zO%bv~+vQrzS+XAll+9fk9<#l6C>WtK93bAO)cafiWeUO*b zLZJiZJc1LNXT?qy?bIDRUn0@D^QKaICD#dE9iMa50rn!jT?|6rDsp!3r7TtWJ|Euj z5GHRHt6PXB_YvrsSenG8h*EPX?GmAqu|T0F&ze68+34+x^MW|J)5Sr0tp76PwpqQ~ z-v6OCs&8mGWA&-6dBr7gLH@Mr=dn|JQFK@^b|QCso&6%YKiuaMC1|}q4CvR8FzEkm zmtkg+e7IMggGfgN_=dP^&dmLTW9{H4J1WVxA7>M3=ZZmF{X$3G{H(TW>^MjJqMHJD55#E8 z6%UJWmCgf=W*76mO)HcnOhETGKIC1qXofaP~Wb#~^Cj2TI>2aD`9#T%}H%Z?B~?N2QT)l5+> zM9hC<7<9K#5xoQ9>dKHP1a&gmJCMsX+<>%I26)s#f}oFEddG6yJ8@qRiW289F%+T~ zELTL{sZl!vo7AT8U^np-xr95*MLm_v^p}1{)X%?<1hbg6*j(>S=AHhM+()*H>ar0a zC^k(CF=fN_2tc~V(wF<%ALkxH&?|HlOXH-*oxLi54Au8I->;G*(Siu?#q+HM_HDq6 z8yEGh19)y$Ct*q_^t(c%!X1vT^K?LKW*T+5+P<#=rLLL^6h^OzD5VGNr&8tTH)9S>>Wp864?E&98u^`0mJqXbt^m%eztZCPk!Ya6Pgqugqj zLGMQVC56`s>22PJdYosTKqCze$A{L8-rq{AC0+^*hsp{dQ+a#>I6!`U^RaM{MdX)~d+mHRET(55;Gnj-m!G$*wIyDL(7t9#PD+|R2U@HP^MW&Q~$l~MZf0Jg(J z&z9qciPC+%NM=|?SHIUh+yd-|O7qjl`9p@kx;*E|SPEIG{0Eu=P#Etewx(46YM6!v zK5SwMR+!dlBuj*-cd!O*%K5D8_cTW+h=TubUo?x;>aVXMhW~6YB7GaF%Ys z&@{1D^pteOC<|r-O)>D9RKV@U-A^+yOn~wd*kR9pSg9$)B)2nR(VGSUS(zJ_|0h|L z|NHCHi8^kXXPsLzwVrhDsny}P4?3c9#RR$XqSJpsYVfCQ=wtwAiFP_{KF=} z3(Dr)a)M(>B?58k#@#0zG@K~AoJham%J$Fp3Ip!jnluJI&u7vyk`FilPYZ${p`yhtG`ZaEw~xA&xdWV^F9=$qK0^hCQAyMk8xDGhOCaL zu|e#~F`Q{XBre-ODcp)Z`Qtoex`+Of_FeC%9qmd}%$m^Oq!n1Pk>OS~YZq^!hp|6% z*%MhBq^G}f;suUQb)FIOf?o6^IImaeL^g(ZUC$GuB!f zii&oa&xmvLzc()%g5@!px05@-5<5I1j`e1%e9$EIUk3fgSk|L+jD5LhkXMK;c4EB> zr**?*W;MC}yb zT-RHZ2Q?coSiAtcStIb*!X=JMtl#rmSp+5*^=glci9>5zrC8vmqn-VE&R|UY zUI;om1c1KA7Jks7#GdpAw3BAXG{%C%KqA3%QVDE)O$$H3x96gBI!qB-`Ga}@k?Pfd z+x0?=c4wP>jpT4=oUGd~?*w~WP9xcm@ro6uIld~Iz)k6zsY#_JZctgz&oH7o1xzRMHNZRtazPxM8~v!Rka!moe!{giolF_JL&uQMFmLOTG@2sT%6S{snF@N4NUfZ_3cs8ndQ$jc#*&&QS^Pce32h z2@8YOuO<|Cto`6nyq|m%$dt&3Gt>EOc=nj-aN2}2%Drcx*AdE(P6%VR=VWFx7X?*- z$J^~{b$IH_vPV&N42Bmz(+0vbX2^KA(RxG;(@x14y$he3GK9Ypiqrx1P_WqiRjz;f z64E2m1#QVIX`qf{?~~T54bN^7gpD(R#LkC0oCoI4v;oyp_4oLjz8u8{=M1?QR}YhW zyWi@QrmT>!L{5T`dcUC} zzqnyIb48XU`j(8`6Iu5^)b^5-T>nqCPp3b#9^Kzht}OeJCEm}v`{zBN^=?CmRkKxz zd-63{7%KU`)UU*UPHVwKiP~A`4ZBsC@RBT0efnPAQNBXJ>HLTVzn!j?9LlLwr zWI|AB%f5H#Ai~bQ5|y09IBl_&S5rVnI3>V_5WKZnp8sD@9e18%x(170Gnlf%3QSXB z0c_VaNq!ZIANev+t9qAyRG;Cp2V&)tF0(1sM!*O`1GW$;YIKZhLJbvpW1ZzZQG{w^ zL^%lJaKyvVd?}eFSkP6(7zmXuLM^}#vt0!)ew`IZZXo--p2s}b`c@misRDXXJbs_yIkgAoj z)mI!jVpSe5Vg&?z|8T7$sFIi1zvWSbFQGD$1uX!gAeY?9yMy#zQSdHE{&B^QZ+xyBwf7RbM2|#Md2@9BN8jqaV{4{_Tas%- zx5rk1y}YDfGo2{x>Zv7hC;Pz|@-E;`*2J%Z@`NEuo%a#$oCUB=gOk0rT47!(JVEyu z>=;x6Yj4c6gN@mf`VzP z+Z>H}(D}rV(kE+r?M~K*TG(Y%yn*F4J5}1d7tm(_3UWbId zg)yQlda?kINio{Ss>fBSb?b%L*{f1}vEt_az6zPKKLCPK1XOer&()n1cW_8}ahsNy zozK0QXgov(q;FgK_R*)4>qdGudd3`L&8SN%=@ap$nkR$Lhc!{Hr6I3SCG(uH<|vAu z&Z>h>fa~cLteVLKnZZ;YhbJR%_iF&y(U^q=h z>uJ^4&AZam70TMOO5&5$;2K*2(}mX^NxO(ZZ>&JZ1qlZNj|o>F5DG9D^PsCriPU`j zZgr%`%_-jZsuiJ@X2T!LzTedXh@yDqMVA{RUi%b#USF~Ox0)PpoJVP<*Ly16Yktqs zxkqoy;1t&R#PZOz=iIHrVyk+E5)KD}d4uBk9#mb5Jx3w-BnvA^h{3U$TZ@Kbe;694 z#3yUw8swplW($3I5Xo2-KfhfSQtlM8&;$yAmE{b5s=F(iK=o(t2M zCB}{4uOr#D{6{?);a8;hwCoC7d3Qj#cENPGKKba{+k$-F6n~B-Ybv%y=O4(WTkCgn z|FM0{JLsF9)u5r;!#=do{52}4?XsiL>Y03(N?xD-QB_pqSME+74$4ojq)$K+dH&AJ zA%RZTN`svt9+yAgm-olZepjcg@r_%LBj+E1vvkU7?n5*?eUEP{{*!#L_g{wOjumg+ z>C5xKa>m z+dYnXIdf!m9EOC!)q1Mxcm?mmej{fb9I%$xIlR2cSg5KWP4{m+VMTr4s_ijzX$Tk> zZVjqek`0*+2enr-w~O+ovy_Ji3Py1~XsF9svkA5KxDt;nntsXR{4_aA9wW}U;X?$J7*UFu8pUoO`Hkl7gLBjr zCXeYz2(8ICdfgSoM}?ey$UBitUhGU8S6xcJ>vUn)b$z&+lBXe#xbkL?EU<=`|9hB> zCCvG|%dK*1YF7)nD#B*e@&P7jcxY?V?g||a9cSI_~0m_&OSjNzlp2ztq0(tdBH}Q*0KYc@z_{Y-Z zyV?4{Q*XO}yw0Wl8=?WpHLOnjez1$Frm9B}&Zyj2nFbP*{A|rWPsCsvqhz9_f*uU2M9GIVn6REM zvF;4#IW|@JmwV2=FVk(h*Y0UOai6njui>0@i60lVNTLxlA1&a5PwF97ouRKJG-hCD z(BKqTD-GQ7Sp1YIso{y%c1aIefd}Wa+qFqa)*r>*CohJNO3>1$lb%sVn8ypO7=BUw z4Vo#(qB7bYp&rj|d!J8m0iI4M?HuHtV4_bpsDk$5uoaG&sqJ#~cayz6ia-r79d^a5bs58vl=qEP-5P$t(hYH|r*MB6%UgIER7`sS%{q1sd40V*%+z z`1vBzhNAdJouUHgaT<1*+5gthXhrK#ZU#1y^26wi>>#tg4$a*uf3#zx8txWcs~vJg6;fendr&yrJfh-2i!Ye!~y-i&71SRmAaUy+hgg*QyiG=OF*G@i@3W&_kdEX6Eug^@_FrX6`2g9~z zjzu#dyl!V9lfHFB6}F^GDe{|W19Kvj6KUMk&I=~EwQz5ZDqPDAOC~U4n_@(9_sdqdOH7o$K|Xku8|#0jBTTu*59PCXg4~(>O_;FLIBV6j*(zFP4hpAH#BL zy`#DUxrrckrGFAx^(HC~Kq{I8;|eJqVC{Dz-cmIZX$`$dDjJmi?RyAYtW@{x%dYhQ zlVlP>>!SXC9q@3nKxlkG3k!dRkbx8G+Z!l12N25frcwq>)Wcq3Q1cJfdb0(mP-atj zskS`0808<-)E%*+r)`<=*f?{baU-~zm`rzp0Hh1vrglZJJb0Um$<{~pRf;s4Jh*p= z-a#a)Of?{$LpRx)45!qY98I&q%mKDwB8q5ytYx(<9*FRr627q1wkBdk+lsyCey&!v z^4eq+bgszkzUR3a1laRCt%R8R_7=tGzYOzE_A+}LGsxKnlWU#)-zXeJLBny5_sc$v zk}IIuT~*-%pyydDQP7ih+D6Ewt1T;Q9W+GHnM{xA!#gwV0f~Ut;Z{8v$i>MQYKSDK zR5Ui%)T}6%oLz+;Si`ujCHnE>;;u%C3(eI^|lr-4n6Dw2_dYp*}c$U8%;PH_w#A{IICPBG2)p~taq8*c^ zEHjYIGD5H@z`iTkTCkVN3NB!ZF4f6AIdWIB+dGIc5zxAjtHS)J{t^K_glDD;CaLi0 zyu-Mc4DYd@*8WorH+3fBO>Khw$B9L_NMK_Zh$!f2FTHs!!{4cNjaQ$$zI( z)U$8HW}g>7THm0&6ye=RfML*9jfkH6duHEP&daLSLs-59Th!$YatR9p>*1WZ%TM|a zh^F$vobM*pb6!H1t;vF#1Qq7o1IruA6X0N=KU@ITuf?XP1n<8d2F(0f;Psq5`Zmg@ z7iGfLH(@z>*f3%)BH^b@F~OAw{jZMDzR8DNGc)zHHuF>1SbA!1Io((aeIDjJA8Rb~ zD9mJ!r=;G_td*Y_$ZpDYQTZqGFxB)Sm1lvp8Yk%1ndq6;qV5QIa+&~(<-(E5kZ3Op zW(|bT6k)r*7Sh8FC&H%~mv&DR%u(h~cC=Z1QX0nA>3WxMBYWz68r#k9D4Vo;d=dJqyQ!so)QN&FC=XI1M=!Dk#BJR6Y__Z8^ zs#NR0;ENMfVj@2HKfe(U6mWr+cc4AhB6)ij58}8MydU9TpVexP6SS(X*zg1O|MT7d zzklU3_z|9t{#uKAV`?==gumh*G0lpIiq%mUN`q=>YP-gbF#U!aPVt?bx#dy9IR%^( zy5JB5RL3JsxX~d$p>C8Lu2$|&aF4HEU+eT6q?%t=_hxBHVUP(Umy8LImKSprs{q>cDiPE(Z zs#RtE9rXQ`0ioDf0Q60CS&Rnz^tD{o?}Cd89Q=kYFP{3RcB*St0)3(>mU}+TKM@qJ z3mHHz(f`o%V88xp6aCj8szSqvlLyB$TE#<{HxDx4wNbcP)XlSk78Kb#2l!a)!nl1` z6kbtYQBOH7Ph!1)tck09acB1o9_$Lnqh@Tt=_mPFkTiQK{iQhd>XV;#Q|GKhG>S^7 z|G>?#_WHhbZTn8{#MJ=qC(smXIpT}y~H@5MUJx6#2V>Q~S)NWKd0_SC@&tv~<)i;N@dQaNdqFO0^UYRgV zUTM+!Pq4s@A~Iv*r>D^W*l6F)M^hLiGpq%y$4P)GQ6SbO`v~Uyhz_v)^Rj!81Crn& z-mrW}<;fbVWerfZKZt*K4FL3?lFSMs=Gnu|Uww@kj;JTCwVGNzdsQcMc+TE4(Rhac z#xv(6FQp|T3)NF=YyP3yA-N9tQ|*p=07Os*v849l`z8zn@ZZ%U-VU;vDeV1CIXdUS zKXB{UoA~+Q5dzF><#Ta7ojsEFsl>h}c4hTg4Si(Zz@~oV%ZlnN&@Ic=GhOf9V9M$< z)BY;yPVH&~Zw(4ZGI9F7N|`W(V5*0nE^^*1q)~{5q{Zk&FA2`nrq+$Hd@xXKP0Z8D z#A~N-u69Smn8}jp?tC!m>Hqv1j935M{GaEZU0FSUPqMSSx@hCSA3CIu)6X9nxq>`h zf)Z@Onrp5XLSOI#n>%%mDrsBZDWd3MlqM$^`6UezxvvGmqb8;dH}D{RqK!?j3VS~w zAAGkhzx2jMXV1o4#FK%oeXSl59Ngqx>vdZIZ%nydy2UT4{&6na_=-OGMo}t?%Qn3m zHkw=3@P}Xw^CUJ>?S6ngGU=EH8*RiC2sr{h)gr>iJHADrZyiRNb5A8bad&w`v`DhW zsZ`+&fJv+BDQUFgO=5#=-EtX;M8%cq$tAb~w#z6i@W4_~W_`~>ryby1sQ@2+&bSk< zNW22h26nlG5BdsPS}ROc%oc$O=;t+AcTDav=dh_dY^hn#ndO|W5K9|vjc4ek&k)#vlgue z>wnY#G={(mt$`qR&562jZA~m5DexOd`SiJX0oeH2<~mbDg!YCWrsku`^n?>i>WH>btbx)>MVe@1M{ z+qKB1U7~7!vDIgV>AklrDW9KGFzzi2tnQX}${c^9+E&TEcuW&d(A7)4wooa;;X4pF zzg{2m9_OF`j*IFY`7HUyj!CPIt6Xhwu>Gb``Qql+&D2BTn}LBjO9_ISU!vaYz_7cQ@i7;e0s;c{iT8+O>&(^C z_j;D1Q0O|rOLqUL1n#y4Q#EfYvJ`Mg&qXdr4GFpZmV+?JG=u%8>rQjG{j|VRw)zj^ zXq-6A&BSNnQQ0o3Ng%7_%oG#=m4&{$oNQB7p4u9Dlo^XtQ?dB-_+#s`RF?Rh5#nBx zd?-DM_pj^@A5G|(0qRk8KD@jZl~Bn$rN{U7v(7bFqG~hQ3VE4`?k{Lb7QP*z7eo(k z?z^B8fKZ)qq@(zI)w>}-Na%BcK0NG_c*g7z)I+z9H>zJob#irIwXECWA6GH!;#;Z( ziR;fDN~hX@RB@a@9Q%~ZSY$Ist%*5+ZTod1zZ zP<^syf-db*Z@WIbO!@X&)K4dwDpth}3aiIHo&Lyi#RZs&Mmb}h>7_w*cJ%=+wa7fk zH(sJH>~lp?-Gys5y|K9sC+D@6GsL4YmKmlTq*3;c|e~2 zJLGTijs{bf-k;d?{4qx@DjV2r6lee)O-ISJ!NXRZSo%zfA#aLKgqhz9RB##0f4$Ws z4=?`D`bF8;rh&ilblMp<0{wMi9Fn-!m zQha7_Yza^;6DxAh-QNTvrY2#o`9#L$KEn$E3zr{H{UN9i=NXW^)ATe+aBp{2XKMvv+ybi5fPy{WlBx^iW|VcOoW+S;?1U4M_Q;(Tl~JDz$5X4&F%KLNC(Z z#u4J=kQ%=Uh@oeegP7U zjUNCav!Let79k#)}f7e_MkQ zR@hT7T)Co~bA{@&&*!rGy>@TUy?35lc6f<#dng8m)bworhg}1AB*#oYmW&~ZJ~$+H z6j|I14na&pS4POT@vy(IxbXy)>3Tb-RNk)Zx!B`~7zf*$w2nY)8Fmeb--W0wiIuje z-Jxvz#vJMGaO)=HlDiHZ)Gz9Cp;xr?46k4bp8tAlBD?sOZ zDVTKIZvtxgAeTRnn$vR)CY%tx;s7KOhs`|l;w?MW?GhwJ%wt4)b`L2-0)o2eoKzPK zJo_R8i*_cPt&sczwre9Wr%A@t-FU^EjR=@Q{iupt*13`xD}+TGGX`!s;a^ z@~96r(9QS6Iy2m3@=y-r2Z79^Btck{Jd3JN*iHx)iF@GB0hz4kY#QgEYK_;x)7W4N zX7~2kvh$7Go6B@h)*VfyBA(W+}3%{Iai~KMv@ueEK`SN1o^%xHZcD=yKYOu}ER zlZJdo%G%c8?y#+vQV#C}DNyN`3aVK@bS|PXK~x)(OjA@YZz&0XO?(Zn!d2I67toY4 ztyK=n_5AcW0Kj;?BBCr(2%K%S2=pc3lTAZR( z4}eb&u9YHAlvD)eZj7Z|RQ&_Qam{$exZoWr9@0ZnDyel^^K)hsA^SDn_=b z%3B$=lD;ciC;q-o5EDuqX<-WqlL*NgLixN-|7cp=9@t+~>QZ?=loK1^*lJrBwLi61 zs()@(blJNa?FJe3K1)bH*yU&&r1QHQH*T?lu51_J9i3=UZcwI|$rDj5_Z+edEKBRy7LDi7vGtz> zvb@9dxDzDzl9ddJT9>I`D2YryVasCJd!0Sdq-{aJM74!VnMy4RVrTm5Rg`z@KF_ew<`PkY%~E_KdbsZA$r?f z*17rp#Btu~Cw4Y9a zKKCMg9$9@~5ua^D#@ho2hOAh(OnS?v&(9Nd*|{1xJ-H)$#*n{ewzzAZI|@2fwPmPw z9HLpXd_ujCYlfUpupawdJt|x& zjPr+@IGLZupZb%mCo=D#ZBY!cU}TA9ct=c80Pgt3Vo09>D*_SOF-_sWqp(=I4$^us zgK;oAC6wzaWLV3IYucn6^f`kGHE-0p33||BXPH6Zm4RxH97WQRQJCI4#J-7#=LzrBjm=iT#`l0Q z&0Znm+QL)!$@9NgW?A$srPzvFo04~bAQ4ycZn5tEO)%ISy-bZ z|NV_}Z;Bls){Td??vB^edBZL5!kF?z8#dv$g#lrO=%U=;yKX8=n`e0!sz`t1PA)~b zLW3p4L}SM08vf_mTzOx*(+DpkLDbgbKoyK z%rT@~!=bl>Ek3rs5S5MgEz49mFR%V>1wAGPtvmFEy8hUf=WZ9t>Je3H+ zm$56NDzEJM9z6b%c=OHmTbZcqA5P^*m>(@O)&(|~4bp<}{Wlw}HN`u7+MGQ8nByK+ zjAUvfucu9_`@v4^$#iX#2rxFcbBVT~uNWx?0k72Ce;j37b3~UoXs61O37zZD@Vy9n z%npTyjW(aH-#O2nvB7%xSnk_{hg>h>wsXzS8I3t+V*mH*G1kgR0cMtRy_z0mN&w5t z4L4h(!S-|%Y97Kyf$PDQV+2Mw%QO$Ls`pF+B%#7#$#90ON8S3jSH61D&iQP63xCDb z)LjSiN!yp9Icbaf{<_Ji#e>a;dtc?ZNaK~+`iNS(Tjtrydd$NXc1Qt0->c$a#y=0Q zWWduaZ%&IwDJ>^Lo0R<=b7WGD#|0Kln2%&Jlx=?$uhd$bh80{d1A%SAu=b0a1_xiB z&z?TnD}3LcRgrBdauii z{{+^VL#G14Flg&35}C#2r>|RkeNb=>whlmih_L*1c7rUWTpAsXa6n|6)q8YmvJ$~6 zNn)oU@|sd$w-;52e%Kz5=W~g5_Fd4b)NFx?;q)O>9z>Kw$g%v+v+=2VSqv`zAxz_YYK-nG&DOi#0LAggXLg5LnzB>|cHz|KSKj#> zvFH6)a($_+UKiDN8KnM?FYi-{8a9fL7p|T>lx%QLvTk(;5tH?pjoj7buqij7spOU9 zF7?~)%^^QHzi}ZUJ%2^Q)*oI(wxR>?%Kr5WbZ~jz;El;ItCP?$>%MEHoI{i@k8WZ_ zEGCyI*aq>sh!lH44y%?kk2H-@e@o5}Jj5m##M{$4_C;pU+V8s^9@R}|ViN9sFx`U1 zm?GdTx&`hgo<|Fxd7SsVI^-*bx7SAbrfTw$V9R)sVxxTm7Q%v`5a-gpwgbj#h^u}i z9u4Pf(&AwQZFbD%u+V8Ze`oVBa}ccSkS8199;H%v?e+xB zl}eI%4!l?)vil5*8k{Gv2*RBP>WDb6)H_&D{spwyg*Kbk>bzF9WJK!iaeVv;hmC2i zR-K9mM@TeDX&|Y0;iW#+LFKk%Htj`^O%ia1-?oW&RPDL83D8oLJ~YDC5_1sg+sjG=dcv)xhWZ}R<;f_DC=vk zqLLR=uXDPwc19U9A{g*T>Bmf?1Nknrtv-}&SXt+^Ab zF_gu4Hke>^&p5NrX_j|)WxKDpKe(?;Tuf$zz9NQ$r=hdYz_n(<&7IdZM>#&M$<~oM z=A|8Pjf{z>&_L@rkBki#)9ElRKa0!(Drrr0=FMUNW_oJvWZ#vk$-7mf&1pT=K=R=b z7GaV_Vl>CMP9-UzPTS$`skp^Xi)Bkg`K zTU^s2J|mb2+%3i%qxVG+Vf+z#+R3C68gelq!WP>vl7w$2cggl$U3#BbbIBPmm*`$* zCG9mC&J*<+Xr+F{+kHC2$)=~1dec8kdBA{pMOg-Ua0i#l!Q}c;;WZPLrR2U^9jtmm z+x|i5A^-y1VCCz_zTzbbt97B<&I`2FWBNpM9sseDtd3)x*gM3e5ZdKki`ESF@j*`vl9&? z#XZGC?^Yi40bEOBIBwbCkWsU^Jq8s+9NK^Gf*{726Kwu@t_!XWKD1EY;ObLZ`m>ng z3?l{)6w%E106%274G70B;*T2?_IT@YUwkcR$Q0FxQ0hQ3tljAZBj6>@2fo~RThwR+ zx;#YO9Rqe;K%*@%i=I{xOHGM4IXs`V%$%>;o^2w$U46>G#s2f2@TLSV-@1_{_L*Gy zSpp4<+6H>*tIjqyX` z!?Th5O_qrsLT7Rb)`mn*WJC>yGIAedW^I}ueZmY6S!v^-43pv!z+6x4LUj=XQw#lf55#BI-+E|r-Y7L~?mQdiw+8Sp#XWOa~fG9SQ3g-Uf zSfP6u))GTb_`Xxj-nvov=iyTYNGKvlrwMrfhaUPJ_XM` zlF(i!);J}g81^WIQcmInPj`HF4~MpuBk}KYl(^xXyZybX%a2J?4ALZ>W5pxHA(Nen zOE0ypmkc018Zmy5h&mHXbR6lQA0@*_Dr$=&<+|OQv)5^Ji10s5g_0>a8B8$V`kN%HDr7uCgcROOl8SH9r!N9d@(3 zySi8GG;v5N{h~9saG`h2#)HXSwbJK}?5hiBrFzlvT`h1p{&vy9Hwm0m+#r(a9}QOY zZ!BA|=Mf!v#!ggLIhM1;?hGoz4eaCU`9pDPfrJkHmmXboEumy9=;s-=z zZY)*AnG(=z5%?*7NBg4CMT=333_xcLyzZ}NBU@$uIq-cYfeqn}j_TPfBC^~Gll>M& z2acNHnm6zr&>O)7n%1`OL#~3@Z3gdwkSQ%x%?;#WXhN+^M=T3CgN-$$WHpVKHH>Pf z>IjT+LFi{^CA-F%h580v?07B4uLMoE)YTCz6TF_oYBw0%g*_8&JFuD3>OKzsJI!VkOhC#gtl|EdD@8cy){AGvhXx{4S~N{Hrzo^dbXu zjT?Aqb7_=yj%cT9!jfU4$OinC3+cxoGn~a|=AhyEjA)o5j2fw$KAGDfZv>bsf_LCL zWVN<_qM?COfg?wT?cV{`>oX!|H5R(?s5@rf*31Fc7_3gi6qu}i5`@UCzqsLj7MHG4 zQfAcKfxn-|63_Hlvh@T8j7wZl4ysA(CWF+(E?Z5^8cZHBd0kXySE?}pCb9RhV4p`l zFtO0nd4-?rJP#uL88SmX*4iR(`xptKQYQ~K6%H@!@+$n7)i{ZwNQ2&AJ0QFf@~(-V z0&pi}h?IdXW65P@i_F3TCs2cHZ=G=1eu{;2S*=6ZS#16VqFDZRnYt_IsN?lh3_0?I zLP`ea<4ins>)VIvQLbSk%Gtm|&yo$<%$sb+O!%wYF$-J@wCPwuCnGWFFuMnnF2E#w zK)d{tqet%#()0ZnB@LC&lC=i5e>FS1!S*IuInVG)ozOltPLG|xBUJhl@wn>#04qEE zM=@?OauspfW#-UTF-xsBVFVSox?XQLdjFbo_Gg&&Mv4f_>jWqsbWQdSKXeZISgDI1 zIBJN8@+Qvd*d!_bmCp>=1(YGK)FG*|BU$(?Fv>`UBRv7H?aWQZ@9nz19CW?nB<5f~tP&`dmDXl+;F|zd^_{waG%zPG;)l`(e`2}yqJe;Hy zpAd};AJeF;kb3)3El!`e5gA~)?(zFg2^dLpgxH&7Va4j;2gR^LMJ$zqSqXYOO+1gj zsY-i|=6$~J0iZ|l7)3J}-naD&7EsgxW5CUiyx>WW@#D085v zU=EKT5F*K0rH7?Fv{HH=?<~@<(GbPkMIBqF10kXUQI;DJv8@X;V}++~K|3vDEmC#Z3m3FX1re=P zFa$znQ)DR!7!dkDnfdv8wZ6In$<22;pL5>l#xb6Dc|2(tX3!kgBPK}wdv(^6hnzdE z_t(X?CDqE(fzzBYM=dwkqQVQ=f@5hkP}xDoRQwy{TVu&U7t`+Gb|p%~x|}MOPo*#p zd$#sFzXGyKmMWrUwsBD#%VN6|ta|7R*Q4^AKu6nI_3{6(>lq?9ZhxxskVfI8-$OK?#s0u1uymum=?9lzhm zfDkhPj5!ggm}ip^kRkaCHhZInxIME(A~ZcPVI?*o;3B3RdBJ&0y%CaxecdP;7>bgS zX>UhgHar0E_Q>v#P=C^(cF$%71W)V&YsDvmRuPPB>?;9ip3xH#4)u9p=JQE4%ixqh z9Su9Y``fvTaJAE5XBvbGx;KSs^IPi>g~hqv=&L9H_CeayyNQBCf!Cpc+1g0l@goMUMVJ1^kl5; zVIL;%M1V110HuMEQAOZmL$-u!Ui7g6_8>u@Skexxa0S`XMV@omge?$z`Y@4)eo112 z_yr@}xq z^tCXTteO1xH~4l-Z_2+z=hv4j6Ctihot%BZ{!5U8MA2EdN*$9@<)Hc>sxpJ@=6@NG zwMl=5%^)!z^Kjw2o*_Tq6R&VD_cuJAHrOD>@{n|D_<%3xaNN|GR6ia7!_+%wj;fe1 z7hU|Zb!9QSK8~8W*=6F&RLLw#;BAF=GCbN?&mU{C;(2YNF5*46Sj}>RfFmrWgK6g8 z4I?#AtrZ9Xc1I^Um%GdXR5T>$lP1rIDFezEff>)kqn13e)-m(fdDS$Uq^a;Rl_SEJ zKvNP2Ow?$j?nI?laMH5sSd0W?9;NCz~Z)D>cALOt4xjOz=l}kx2Ggws$kn zc(}uEeO#)9u{a(Zibr~}$hdHVFR6kA*-BoVvTK=!XNAbliOVUHZA@6dL==chy_c~r zJxG7ZEHwp?lAy+-=Ee6CG6BgP0s?G?QUXktmKF|f(m_R?<;) zezI@$>8YXC)erx|tQ_6{T+`}K*dy04mugGUALm&0PoKY+@a@1%d>Gdj{jF0%R`$}o+VU^27T0c`J^jc7W=YFp8!O#j5rVZsL;O1 zVnAW*#DKPsf+SnbWn*mUZ$&>j^KE9kr+&$RC-(34<)!t#R@N z7ht0a1DJ{gT%8RU3#s^0 z4lVMJ1cjb)yV~b9f`Vrwfb>k$aExy=`Ek+~tVlJ==uLkQ42yVeYoRC%I|a@R#03_%Gs7H-(0QX>95r~}s2vq9cG&W~_ll#9 zI5e~}s%0zA7ZW;YbRWNb*S(QCvGmAt6x9qcs4XMZJ2z@ALT$~wL0v!B3sB#j(c|Ko zR~FZD`S%{jM<30xI&WU_`RGQ4sVoizwdVA} zgZ{Q)7?d~qF}6Wb9&`Dk#%ZJ<+c^r3e~~>Dl`CgB;*&YAA;eqlBh*tLgwOL8HXNEH z%J(vc>?KKFd+6#B(V*a-yd=qOMt}tmBiP%{7tmI}IlP0lBItZGBX=5CM{Y2anxvDN zin%i8a-X0G4U1yZ4=DR-rWgo%92`akt+H*F>I5-yZYfmQL#*x*UrP+xVowD3RdoL>`}L2G!u;ly`yE`9BzU&5P<$D5#wg&sR&ODbxeo-N|9T*-2o^EP>ofFZz8?Jym1ePEFsnC2w+CtI z&bP-UEjqUfmbPk%dyi*GOk>U^*%)!>HPwQzHAJD?c%$*fI?tk>3}WrcwtQG)EX?T^ ziJs3n>k+d!+0^v*!2VYgvKO{oN(#8B^ZrUzO;pUq;wWvc?%nhFtzn8RZYW*(v-{>i z@0tb8H0L~()GYYzt- z72^SU9fV*@WWSk{SqsN?JI$e#EqBHnxn`W>U|MW^(HDA6V*(^OL-qQ$-cu<}L#KC*u#kBN&wiH+q-lI($vaKln`J#q`Dsi$_5?I3L~p_vvxQ(o!Z6BMwz?3O<}a1O^=v@${tr~5 z_kULj3Szx_kM=&s)2Sxvz21R_)s69YRO0H*HxoDBm}4cKaqR8vU%zW<{A2jGhJAuhO0uS|1{Q>U_dj)l&90qWf>PE;ge=_|+_3JKwCK<8 zJY3$A<*#k}?w-~CH)1&)^M#-{&a7v@Y+M=_sZ6lnz^Wn2?p--YV*!?0U*wVYM6jd z%|+g97N^kEb60JUjU^_dgW~%b)D7~~wR`3EMdtnirc9NJVF)xcpZ)%D=8|6ujsx9R zA6UlR)Hs@RR1{h~kHWj|ph+e!=yypd$3z?^$1_Cb;9}N!;=1Uv?HLcv+V0>?>H#F9 z{Zfdl<7|rX{SUhwltyqWL4quHk9k&PXme+&$31PMY(zSsF$pr2mn#P)l|}py;NK`S zdAT4I7>p(##J8rpW!j#XJaHH~%d*Uv3ZDA=EXhUL=vSG=fhmw1;?my-}hl zGnKogUrX}h$OnpwynVxs5mTvl3I4~Z%S9MXMck`b?XITUl-;W!noVm3N61%x@x-xb z*IXD<%#5OCp*^U`Cc%6Lc+&*N*K-u?<{%!2Wb2mSY>|UyLqXv|wsAH0APb`gMcq9j zy&?CVfM*wklQ*BJ5JJTevvwVtA00s7z`*E?`bY>uBlph87ntd*mh=# zMc0sWl;8^kdqtueKANEq4fO!KILG66LZ@jlBynI#^6pDQjDRGfebehJIf@MD_(5?Ju|<^|CW*^G{>%!J5p#N=3kKDFZf*PXV8*mM zoVYiJ`j~uh@w0i4FP>WUg2TstEO%Lbns=NKPEO@V>fZ9M8M^#X&ZDj>BD(`wBGcwR z=85E}^hRb#;qsbMcEcQpa>{!EJ}2-Y1V;JaPlA^QyBQROOW=EhV#8 zqQmP80X7b^o)(+Ro@2oudSK60_vm1Q6fIrYtaiiBr0^CEf@6$QKmFPzu&axbk!s9O zJ@{+as=qFyyV5hp2;Xvt)V1S zA9Fo$v(77L-LIlN?$vphTtFV0UCIJ8Eh1YZw>6n_dJNX}Eth2me7UgjF|YA2b|f*a z8-Eb|`%!1P1dRS2O!FIm&&}^%kGe}ME*14IYuy4O7q$oslxi>Z2Eyx<3NnIwI`AJP z|A)h>7~h5R?G1nS0v%C~*M^=nG%LSYV{UfX6#;o5Ye9qQfo}V2UWaZhs6FZxM6`6= zG|aU5+_!6s;r(2oIOEi6->uo!P$+KzbnPlg@X!QEz!mU|a9#m-Wdi2}IJJFy>an-g zPVXM2m0trS^YLUZ{!Ra=^Dpb^eWQC|@eO8CP<{U56zmNc!0EcA3u!1dwlB&y28_~v zM+xl6a3??sUv1fO`0o~yf6o8|s_?ymeeKi;q%97#@~bLzHKuqfvbmQJ0T>KjFBrVB zu@0Cw^h9t1&qVqoM&?O?lzg#WdYzyEi=3HdaRw_SXVQc5^QL=dX+RDz%>G8!!}to! zmDLL+tr~hC+&gZ5Jxdo@k5*!9ycQzxbKT-m=N5*6p>zz>w}^!l<`ITD6|k5t9OQfZ z4_fMLf3bs3YtK`PG7z+Q)XBEl-Qe_FTUr?uxlx8EhMOPV!90{k2$|r+N#Xk z-li%6i0hS8EcnhP!;Bn$1mIjyY(Y3L%`+YjW^0(f(Ym==444QdIB4QHThLk1Cvjg7 zM@-H;yt>Mb?IX~J66Nv^vCMNr`e=v5?Fu>5D%MjlxDw^sU`_Z~JL3bB?rLNKi)L~s z;>h_pp2mHtx5kB@fUldiQDBKnJE#^r_T8{h&2oR+ZiCwr!IU)_hah4?Y1`Q0BVsM7 z<1qcAp&nQ(VYrGcCP`=gaO?@2I5ZYSCOHX00?oqAde)<6oaE0T%@lBXiu&QgQwXJQ zNUq$(l-3UkB=?v~9_P;E4(cwUcNMV(+R$W*wg(5rnGEv%_I!&T&<`VS&G7IlZz06a zIJh>c&h){c&<15msBO^55#X2{J7`J5oCu11kEcpUq-CA8cSH+s^E(E0E(xwZ3MTGbcwNs&w1$CUI#oB`~h#9fxrXVfm4M}DTh_QYssc?x#TtPgBCq3c_-@5i(C^f zX81og$vx^p^Nq{#q);0m+ljW7v{a5%9!m_q)$K5SO zd<2re2Xv>W*xE-91R24No~FbQti(yEnuWv}0C6I-oeosVl9t&)f+KMk3%%IU13_FW z;s*yvpUA{j5i*rbU;rQ@dUC(=-P^LwX=@4T!-}5s0lx!}-!GWzz`kw3T{{3bFlrDz zwKy)se}iBrbB6)53^%aIlkF-AfRJ+5f}F`R^II%n`7}WIq_?(MG_eDhDES1k-JWvu zu69&U&_NZbiFKT!$_aI?O`buI{Z-(X<=9d}bY4E0_C@ z`$DD9JS_|Z4_<|O45O^LL|2{4*grE+mB8{c!vLDC=J>*O;|Z+K@_y`CmMmN4ES%_| zWX1mX{zwUC4fCou^6h!OFSOps;^zp(qX7{rmLonwSa=<_V;)frK+OUi#RQ@_jD+1r z3Pm%a?GEniuZZ!SlK65R9oPu7)-VM9nx|BSB>+@IO3xqcdACsMrNIoxt&(zJ*A189 zKEA0?sag)3I))av@e0Y!@V}y`V|2f}nra$N_zE0=V~D9FE)<6BPsU0~Ny}hecaPCX zT#|d95cm+upco`5rVVzVkgzCoHU>yhy{2Xte=Sh0i)$;pK#c{ffee-tk8B&>VgKr) zxK_7}lmlrjL}MlUhmQ|ray#;G-CxGVa-g2Ek=I|LJCMd2^OQqu(dbc`c}7P#@&YS@ zC@RSR!3Ol9t~kLRihUmN7F@pBXPh4YSXl^9*AZ4ofY3sl3I4!@%>!=vWF8Ml5iZ2N zAPcJqv0@agidO?_``lu&p+!ehp{A+`)hEQWWcy|NANUYjWiS99gt`{I2~+bd+PD`A z1Mm)D@dzv-nQ%qGlOU}eai%@`u<(Hw6lTyE8JmIL(L9XW^4>lGU1&keB{xD|^y?{q z#Rcxpyh&R|15KNE#ANx+W+YQmI?)Z7X{6BO;eYJbB3RQ$Y4>D4 z734~oFed~j+A*8h$0eL|%DjgIqgZdjrF^1Wb`K=xUwa17WrR;f9+sRx5`5EO<^Wj* zD+?3`>sps{t4Ra`F?_%L5`{^XFsPmLHxEeYu!$Pdi%yyx6>o9tfn|$zP+c;WhIAC+%R3JF)M_y zgTdfi_o1y`SsgF}J&o?S=d#FkMn(3`@qRwrd*pA_JZ)0p^`I`c%6@i; zh|3B@smNIEM=Lqex*I*wO4bbxg1A1RbqLs{>2*jS%@<?6)nE z>8b$ReynBd8sigGt55FX7{z%cBJ_0}oJXfo)4UAT6Btrj7~C`(gfjF6PFtQEB} zYd)5$q5YBx#4~kX{44$abWm^kBCFsA%2}(F|A6gC;dj+S5PijcoNr8|?tiss(<8d6 zdI_4ys+@JT`&1uXcHP0XeWtQ@gS$}CQzfZL-q%Y)(sSX<;jLy$nBVG3lJN%b=D-V9 z5yJ#N85k==SDNC8_c=(s9Kw9vx`23Cu{b7>8$j*F^iODoT-YMLBO7L>@cELJD$iOj z{V_UoOw{&Nq#M~wO;<{i{#teNZnI!AR(hfxLj1bEA=wA~jRDb=pg&XSB0V~qtq#_8 z$u@7@)h_r9B(u26VVhLZA^i~b<5G-vedjHL&gLaB#@?3> z^^xEs1~l-R-t~#`x=&v1-^T~^$g}^7DaD$GY*5B??ksk>L%h#xd;&lOBzEoSF~5mr z0J(71grPPb2rv?YQE4cuEc9vcE~82x!yE&M0O6hc#>JMxFuid_egN!R}4p-f_OH@4`D-0DyP8%4U@+< zS{pg(9lLg5*)UbB!mO0nb9lgK!?JuNvwnH|Mxm!K7?RgM$TYj>7Y8(W@n z*0?^w%|5DZK1`5AQ!46(F9UA=d25~QgE@qs6U5gZG0$BwZFPMt&|Mg-62v;oR-hX3 zfGA1yPD|rR13Fh%8$L+xT0$Q_R*Z4@uiU29-`RkUPe+3nSWR_!Y7F~6^qIh**Cuw0B|Oq z(P#3>lVenp8~^o3Dqpir8)l;bQLK5&ySnkB>*KmQSI<$jcmd2_KVGWsmKOdF{eOZ5mCElVv=H($5FzQ+Rh<_V@LhS-3DfJ3+xxXMBF&DaAyH^wNQ86(>8918jy z3PJ8V)M9vCvj$C*w{W3}$m&*Sjsn2{ir>fqt@F0R4eJ1dk|u6=^>UK$EZ@0vt8}d4 zx~ec@7kIWmqyyQc3NGp3RP!?MEHU(Yi&6r$XIL0zh?OPQh`27ps!Tbk56;BDk|f(eMeGYqW8F<RKp+*z^8mu!wc{zA?d#=&LU$wSe5XCTlzLHutaY{4Hode!*wKBL&yheTUWR&xLt6gkM2#D;5aMW3o=3RJjbV^P@2a#mzWPHCKe#*g)_jM~1% zhWGk$_|8uLd@sAOY>$yyS;qZKryn)TeQ(RQEtDFbXo<2Nn^vx=W<0@MN3wOkWBC>o z(&kN$*sjH0i|gY!#OQ8}AHW4E7<|~^@&V}foSg|O`u()x7m!o3#WG}H;x(_ZlCucH zJ|dE|k^Rm|UC!8g|8gNpQh@cI156t!XW9$GN zFG>B)OVzkTlvT+#umj8&a;Q{3p&RIrZ#28Ndla-;zQs9u+sxI#-0B{&L0uabi+j_$ z+t)yZPo7(@JZGP8s5}+Sr&h^Eo#>WbCf1Z@YDA%K@(kycpi+1bUUCUU*YSCdJes_s zbfVw`t17yd= ziurCf7TBjkug&p$EQC;RrF1zzg2f4G8-QT@WW~fVPo~ZI2(i=pW#BUA!R++?DbGz` z_zXx+#q&99L&_-^unRr_lFLs|{R2*8I3@JRUOxK{9HL@(Q-hkkKWG;>V`U$Y>{qTO zOsB~n%|#7ucBb=(kq8*4-dDg^7y5yTny$!0OA-+cgPe>4Yts)HRUnj$L>)YN^S!b7 zbgBAexq*iFpSzY4>aRfJ2w_F9cw^@G8cLUINNPX|Eejnt6N6KN$;+pXJGhPwIO8sw zTC-;GlEB(a_Mj@g&cq7Cua5M_mhB~d&NmAYvYF#XVnu<$@jB_TlNS146LIAStkMP zJ`??;(HgHgw5Mqrxu3x-etodjWN&dX%@so6Eu%AuMO zH&KMTyGcUeX~`GWn8*4s#qAA=|I%6GHV)~-D|#-h>A)vSI3M`n5*Z8}m6+b{R>xLM z*u|7}wyJN*zRYSk7v0kR!gph9;9$N?9 z{^y@r-vod4zc)4>c>d?9Zz^WWBg2+`9rDwCxZF^d~>u{q+?4?v_C6e6~j!7{4Rs%5%!R3F*yQ zx~|enZ_esY?v0H)e3y8p9tgX3(=}e0+3@Ak!0F`u@bf&K*T5eJxIDH(P)I=|`qskl z!)DsQXp&b3bE!}^sGHmFbunj9JB6A`+Z3cae|yA7L*mW~i>^O?2tGiVDYQKREhjU! zf&zGmYx%=p_<%<;UZ4uNc4L+-n#i4{_*M3;#;?6YO z)P=^f^f{9r9%EO^Jw0-m^E9W8-0C75?4>rA&EVd&ymX3= zdn!11)s)@i?^v7Tv%+gB|EV)s4%>4=<%eUQjyLS#;EIlAyzzotXC^=;o^8B3d>%86 z6go^%an+|&r|?bgscl8Lvu#Y}$uXhP@_t0`hk+R~vD%d_y8o}5#rjxqvQR<0jTNYL zH!_sbUNIcEql5WK=M!HA>#-NN8t={KW|{gqmydnc)Dc=h~XZs*VR6|7My&xx%whPLrN*~Mt6RD{9E$$=TlvB)eq z-iO$VChbU#B0W;~hcxXh^i*m$_{~((>n1ACYp!>e2tGRE+JHj3gRm*FylXpG4B){*;L=L^m^;SL-4Pu2?7orFY&AdY} zGvl!qB>o{c4a<1K8s9e;n|kGtdqz;mR3eHf@K!m39aSCC40}k38Uj@Xs&Lr|tXSQW z6UWa>;O{%wgJE=Xm79LIVcoc{rzMf{p^G1*lZR*j)Tq2|*Phv1swlW@+BzW;2=+C#&p_`HHEC zobzx7BxER3_Okni9(O~^+KJ;Omny2%xi|z)UrSVJtgxKXF0o(|Y<)r`u+uEGXXo4^ zz6id8Bf&%X*2I=EQ%N+;&8W15dBYNmJdBI~I#`bj-SFl4LYU)K4%iXadwU<#fH+n~ zwwr5lHC@Sl24stS`Y0EYtqCCIB@Kykb2)UBUXv^Qtr$`58(IgT|J5OFf2%klbL&no z?l~v#dUq_fexaUTn<8?KE62b5Hh z>4X|pL^e-F6ozb{u!7JxgcbnAcIY63;Rz=_4(-P9c%CGg6h?wBXTwN`xCr-WK*)+x zP|Vq+Fc{k8;QNn9O^(|5fy&8C7=$L0#_;)iwFl0VILZFp2eQBluLKt0gq4P?BRp+G zPqpa0aMPQaoDg6J0A3i!cA>lFK;|hLJNj_fK#VRpb#b#(qvC z3_!I4QTOD8sy6sR-LbNwmb((S#>+pKJH&X%(KNvv2a{KDv5MfT3h2ZVKr9kTh1D+) z+*D;Z!JuS@dIGOfB(PQ(iyTHd%iDzmy(-L_cYP;to(oi^9QTqu1oZy{72pRjAjfWiyA#F38Y#mP)<21Iv? zhxYmi0gc*3McF=^2FUrtCMhkEV|(LK!OWHICvlm}FX2C^vTxr@Xuq{izK^S38OFr7 znTYt3${{<61;y4QbueR}sr(2Tk1k1wM#Bk;ZQmpZuzH;<-i*~JSsg5B6PSY!FeIpu z5QKE_YES^5RPd-*)p3*$V{b{bB}WR1F>N$uvWMo%@R}{B6nv!2I(NUK-p(- zm!BM`1Q_IjNXxXtDLx2kOb>_x8agVt=k0r=ywFs5*MSImE=LCyguEDd+Svg(#ehf+ zHY;+7J2xLH*4!8MIp2A!zgvDs0)gelxK-W(ZIu60Sq=QQ2 z0UQ)S1+c9G4VhDSNVOe?ig}9_;}ViQxYU?TW73dt&K?{HLW7$xpjGQpZsZWfAl-t5 ziV+2Snn;~|36LZL5!Rdjy}pKFq3kYEZAZwlTkV^WK`hcEHq+wLV_csw4}rDbRtT&# z?x@6#07KX>vIlozJZC+rGwvX;e+p^UnOg1ma=ew>0b??rsaqt}Cv`gjcA!tAE)n%a zf_x8K5M0Y1E+jEw(_39}V(AvLA{f0~<_H~x^1}dJyyIiWAcK%I*DbIQc1waP9y7{z zDTbzqs9lB5VjizU!r}KI8;0H$dYk3Tb8au=e66;UQ*9lV1ZH+jLT^FkE?&rMiQlj) zj{!ze$8mxon&=7q;Y44JwzOjVhV?j;^$}0pB5nLp94q++F7`A`7Ug2($>QXhqqZ2L zo-a7(O0f6hv-jV`iIPPw>Bmd%U-_7lR&sF*8eP}(Pwb3L@BOB467&KwQo(4Q#yf zok@Ae!B4xN3SGym?P9>$fg8oiZ;bOwze;|I?$NoG$f>50lE9E-jaMI?0jeXd<@B;2 zjcZ+I@*{SpUA`l60rNRGQQm_#zsd}M9Yz|zkxQ%8U{zTneN^AE9GOl6E6rs4dp%OL zJ=BJcUrQo~+lkXi{d_&U9aB%wgzH2PShSsKIuGQd`x5tL3oIWKI00Gq_~z)8FceB> zST{ejJmBgY5ZJX{#M`^rWk!@-v!+hwvjhbCSr#2X2TjlTiqv^Il_YPe!BM?_zA~8s zOq;8XDak3cv)CxBDAqoR8rnG6S3gO+_R&50s-xVYp{w$OyJ)mC{_D_oq7E4qay zbW8}o*7n>Lt$F=d5K=$coPO%AsPx^HWt}qB25&UGWjNgy`i<<>;^2Gto8l<5a#i@5 zUBAL8)%RWq0f6NS>?MbFWG65j3<<<9;I#329{v(ln5Uen#=(sw&1gL)0L1{(l}8F z8;d(=a1l<1mgGsyCS$yr%4TUIYy!!HEjmRGfY-6yU@eT)6QXhg30_ZZ2e@H)ttt#C zX%4u8)s2VHgjfoX-~W)7kl{2T=^!Pq0lD)8heo5Gn}VUnpz5$|Q$x);VViUB=1iD? zk-u62#ocqhvmf6O>shHRqSyw;0$=#IuH3AJI|_&An*%Qc)U8s{kVeL@0Ois--jz z!#cFx!grU#&o z*VTMeLUi@>bt(gTyjB@HyG1@d{mjN>6Mr`Fw1B-)KVopJwi=q|Mi27VN!q;xpibqgx+xgI_mXdAUs(BlL@P zAdz<&l?qICLe$>=^H^dHS6+bhO$<0@`FJPX76RLGg5QC+{$vM-hkg>*jsWPF7GHDL zEh5%?iH0RucTsewvAZkQqP}OA-#4b-^ulTc633)3!rs4N(IEw+ zcANh6^W={Bta_cM1f>5t{*J#^^du6UToAH%jo$|h$y`S-lt)b&S~TQ(v>Aj@ZMQJH zkfn%DP$8P^bD==K!)J2xXipuC5Y!RJdJbNqWE0zuCu)ilk_lw0L;W55@x0@e#4q@VWDqAX zpg(_K2(gu5sYj$8RP-B_n=oy*<2;_ zo5n=f{ZgvjyjCrD)z&Sl5cdo+8=D^=Lf79Rv!$i>q5Q|zA6S>alZfLgCh&*1mpwtl z1-#lt$@{uBONOVnaZ5lu9TBktVmLkgb zwsf-WE6n^ohvwW~FL{H%8*AWD$<4#lc0?1?-*A z*%yt8evt3+wtEkaQmV|D#?XpF%i+<=1J zJR&QVm8uD>_il#ya9j1n?#6sBspn#1aJ?ozLm(&2IeVOl9CFrg!o-!jnYg46(+5*U z?%*X?vZEU(rP&#S$4?jU%KR?s+^k2G!IhsbS?uavDmxFC>O%o&+q0nDJ=y=~y)n6; zYBy1sl9=k<_C8;lIXa;gq?}6JXy)tg8B~HIAK#SwVrUvQsyUB0CZNRBAtmDEwJK|K zjCYNyA};%;KUjZM8b$;tHXTF!?kOidIh6Oy!5P8iI&@CX=|{mQk0{&}s$PAZ>+G|M z%r2+U(GzQTgQo|Zy;F|7)CMZBd#T`T;2E;EX1<)cCVk+_0pz#4&gha}>TtJBBN(h$ zb06|Jj^(^n%PAJyncIOK_08)qclm-moaCs~rg4b-DJxX6ZTHMorS$7)X$wk7ff6xE7+&_Wl5aHU|5DLVeROBbP`-HeD}krllal>jZ5Zlq4*Yw z-?J*dzZUgJZ?CBz|K1QtanA77j0zJxH=X=-DwrSP*Wwrjvc<_YM{i?x#ex+UFgOAc6dLIp)69RVOAG$ z%xy+>{_En^b)227_?5K0!DcDvN-$}=SZ99>C&)_<%V6IQMmbt|gQ;A(x{epUm05>| z`vF<Oem02(tX^U}J*0iteck^GL2O4Do!7>UP{N z1(O1TPsA#A5TW3*dg9We{8G)duKe8ceXPM+VbFb`IDddlu66(G`H4|dd9R9;Z4#xL zkx)w6>2A96s^R_0jHTax$21GH_g{&HO}|d*Qk3Wwvm94#&p4%uBsE|o+kz-9`uzxwE;|Bb=z-LIxIpd1&Yw$o&X?4WK224U5TpE8##{a=O5z$@?C-B^eUZ)$dF8}keke)aZ&haXF+KmK83;y<*1 ztGo4cak9_a(XOMC_uam9`^Q%;8)BAk{q%2=|I_Zt@>%$DxBHdm8!P@HKb!IMj$-}f z*UV@CFWqs-J8Vn9Y>G54uxI|ye_1GPiq3i18uO=_(77uUO`RVc@HXxA%`G_ha*jgz z`^Gi(zs_xb*3&GneF*cNA>tt>*vXK{B2Jp|wr`sYgT-J6nn5Yu6-0sDP7D2JXE@=T z_FWb#J+-r+ej%lH2=z|5qMFlBO;If=h4#mhOVAFsl9x?r^Mmg}f!nckCa#=ty87W~ z^=z;$1wRk{(bY}c@jSNvh7WI^CbruG9K>FpIA4^m+}6G~{W2OKz&M+*27M=J6-uAG z2IcE=GjW28JYrXS7gMC|(8ARaK-XI$=Aux%BBQ|m)zjPx9$lW z8F6`%A9+NtrCzN&8-7iJlK?+%$lBL!U`@TNs=W?XTy4IeZH}u(&#U z+Ig9b(v;u@c3Je;1X+CVs80h9C8iSDX^XmNXG#Mqp;I~ueLAtH-0|Rr;fmaOb+<5x z7yWc}C=Q?b!P#EOW&oUTGnMF^rN=i{;Ho-orGCgviyNdBqw_wr8g&;l^Qw}DDM3N# zn4qPf4mV{#HB|lx{${{ddrMV`cpZw&!4l^mv?Ri|{(`n&wi?|kKr*K8U0#7&&YRG< zE`DlTg_oBrk3Ax_XJltpl(Z=gOp>;zSI76{43KyDgWYjlgW7SmPmSuqu3slf7XT+k zcV#U^O@s8L^UdqbM4#HJLK4))A3lkjd@Ai$Mu*ui=t64Ivw0QBg9cpgZ3d%}I>+?< zh~^bs(!T&sMG@0^LwhitHOq;P%fNI*41Zl%Be=8k=!#jvTyq`3@6UCioGqyw@_hGk8pVLiXsXK@NH<+pp-A z8m{R)_3Wa<4ny&br@_9fOpxLc9!5MMu_~$!H`|DFWKs~v6+A>clS2$953tt~FpUK* z^ZZ&uB>_*Ahw2G%o0uac;jGGnvbKplFAD`Sxfq6h&L2=qV#GfTK%;BU`VcmvSZ=#D zihv~xs%JG3$9;+P^DZ8Eitte#;M(6qfd7p=7TMqGV9vs}>h|j8L@)J%Wslbsl&qLE zLBUCsh^Hbdk(v(&`v9)j`mo3x6$G>~M7VeH#KA2pzg=)#i+JfxLRq=NI)b?{Ib?}H z4>TIOPU(<0>+$iH)8R0?_q;t$lpoIF5aGYp3AX$RcwB)|o>+&Dft^A1Iu-K!BgA=4 zr6LE@zwh>~aeA6BjV%Eb=xg zJ&AOVJAB;J<><(Qj@H0pH`$+4=#&nS{>Db!-2kXGq)wvEVYoym75YVjd-0-qjvo-^ znkon@`#M8T#K1)`GNV&AM@2kD<}9UNQ3hIxS?Ab;UJl}vr2~9$GYQ^hj4v*mh^@jFD}?-(~n~_p*YP%DYVQONATo>DkdI`#BxdN#Dn{ zIfd|S55rZ_H_PXD>sVZ$1&?q|fm}9;ZXze`Ji&z=$1We=xC}Y?z!PgpOeTs)>p+hZ z;c3*OGBxHm(&2EDE%^Zx4U&2gh|o=I(L*5jjYY8fK^;*;yP=gv*~VYh;CHJh^7h&A za899W|C}3^Gc9d0pnWsXPv)6)-my3s5^rk5!D$M71Y~+tDpO*+FcV%D_=jxoo!xq!EO0alu=qb~8*K;wgf0 zT`P20`~lCpDx%nt$j~9(3Yngf-G(U|@S?-T4jPt(oZxnIm`efE1*&#Z3RBrC^vIeq z6AJRTmAb0PYp|HFvL;lOsM-nzR?o_9f@JWy0m|F}!3zxH&V3KR-of_e>L^ zFC|VO>O(iD^A2PmR+Cga=}BG(lRt}sfT9%9AaTW5QLH_PHUQZzo7<7(!+1uJ+(wpR zFHBCWExmZY;?;Z7Q0$aDk)S+BbY{@UGSeu0HR5v8r(>~w?Pk|3mSbeEQQ_m69JpaO zbzYkj&N*ajD5z~du?AR;@9DtJMawhzVXyPmdHY7@HbY|}PU$G~t$b()BOwDsjh^d6 z&H_Eo4jLM6jQg@8Bt~1w;SKD5^5BWYg(;N7amUEo;TE--=LN-Hdjg28P`MTyqRR;H zY>w20{{9wNUo}H!EH|fuvefj68L;sli#BLY;@$kg@WD)SaON?7{v@(UT1Zkm78AC5 zjG1lxHI>Na=&0VaW$_|uqGy-0Jr61_i8b2s-y7D@C6VarLt09l3Pv2Q(sN*Y>#K7+ ztCa0{WOd4S0A`q*Hk6BUgAAz>k-KL7a&)Q`%2pA04N{KCLVbcP6}D^VgB%qgJSyNI zSrR~m2vxa~4S3aUzbK3_LW~#$2)*qH6{7aY>WytorY(p4Qw67rT~%bir;{gHxp_yv zC33Iw@8c@EsUNi?bF7_c@5Gd0w()ZMsWxHAsV_+^U+{3hzn&aEI&Tz!jvlefS8%A; z>5Y6_{hwgSd4(fv+_T&)OEBDmla?Dlwn08>+ z$Y8S@1#Jw$1(XtDH1`O@|A5@Df0TosHkI4&nl}j1CH20vFw}^2T|K9xL*m&8L{LEJ zQ3?Gb5(z6ForFRBsM)5a7P_IcVg49qJp6zRpG5eG)n?gh%bB!sY0c9s5p)Tl>|r@K z_y^a6>YDJWJ!$4~4Ioy1V`R2Pg&|3oOcTt#{fW@|f@NouWywo6cX+qN%_!XWpO^E$ ze@dlQHk{Od|6oAJqntHrJ2nl2hVptTN~MdivPP7tTGlXje= z?H%-Sk5W1QzyBYGc&LHO()8L|DI_FvO0aJ{mS>Ozl!tp_kmQS2h!r+JFMPY46I#w2 zjNk`eBFeXj4UckyTSQPO_DIw!PH}E$NM?z>F+%4N|L447IURKV0K4y3JLBOmh&~Pb z*70;Ps!DC;YN$K!hv6}8Ot5WyF9E4z20OiAGI`PfLZT+%Tt77o@35_u z@j?H<^8}jj%9H#Xzf5vsqFbe3N8VSiB4<_MSbl7z##docB1j=s3|ZNU@KB?xjo8UO zf1!A-7{ExmeIK|twLel$Z+E;=GtWhQX4{4~lYpzk--k;V9g6##;D&wgI@IO_{UTh% zx$Bl+w*(^^vefcmSG&-mm=n86`-RSHSwYHip!?=G$CYa9NU=-u42+E=EQe4Az2V{Bg0MI zv)*wQhU$&&-b)SA(S6NveVpg^q}kl*y~l3M@}-$)?2BmAg`vwDC}U43-xq)1qT3L_ zVqE4c@yjdt>50KTJ=U)MHQCKe%9Rzlg5qygE8Cv0%uownwFnpg=PCJ?!>5?XkQvi8 zjQtf}SO7HSeZ^=8fK2qu*mHB%lEEsZ=MdFcL98P{RP@)8G8V9oAxURi$6~BfRn7t7 zRa>+83WFvMFlbCJ-iKYYe-}?(9}lpBn5Wi}MEfH!1yAF63BrbHe*%x%s&bwZ<|mVvJ}R_9#Z@6Vq9$Sl zJA+X*mI7_Nt@X25QR?hAK9%kQsk(Pd;66x@Ehhi)DmEQz? zY86ZSP2x;ag&JV-+;l8l_AiDciq=_Tu&2gl!(gV0M1iv{lkBm}v_%+Xe2`_@Orj>P zj#Jmtpr7XyJ82;z^US-$w93}gW4!}Lc@`{w6zA7nN9)BvcP)#N^KtFz!8{^i3*Ui7naowb_M_gq>s*@LDt zvyCXvKy>ggY2vZkW@fQ>0~#CPL1GU^eA4h1l~h0Xi|j;upA@|_=|>SjSs3?Coo9C& zMK&r`{czCX6Z5HLUzr~;Ot*-vo#!5RhTap`fI1C z=Zk(M?(M%DF59aSpG>{1aeOhR*Yz>^%5bJa6*=&gc>C{$vn})-ll$>^n7{T&<)p~fF$=e*s)?FahdGNDfB8$zW=;^ zk2Mb|_Ki1;XFDX2^gey@2OHFEQaH=yPqCiS7L_Jz**|kTbs@S*>W4HlS9=c*3SQ8R zyQD8rzbOs)C;5B@j#PqKj|}Bm4@jc+1N)kZY|5}9J(ZX$nq06-!9DGiK2kqKcSK+H z+1D2Kq1iQ|UX`{Ptr94?=`gfp_*<8^3Sx=>7lCQX!uU;ADsPH=Ua1ZZf#GVud=Sfv z2Oc!|P5qa+S!AELcX@C-&@P2^&S{BDk5ct&&(5Gi=hqK4Mhpp#Xn{(;*3#-GwSUG} z#YmqsRHhuqX%0za^{cIoHX5SGuJ(GlsK3h9@&7*k<}Yax8d$;_gDP?hir-jf{<6Tg z=aOs%)inGd6BRlmg-(CSJv73BFIqnok?5ads!IG&oN~~z*0^qXnpOJiudd?;U10)`=TVAY8_%4F)HPVTcuVag8wC4iOdj?tV(!x+c z?(UVISNNuEBI{7qZW=NJ2P%&jPT}dopClvkCJ7#Q^+QKnf%C4;qw1Oz+*dv$w)-BF z%5su!U`Ncn&kdU#K+Y*xLTi$+A7{L0ToQf`a){v0?@7PJD|BVN{7{jWT?jK(-;l6g zX<_}qjJ49s54H%lBb>T=CI!I{tiJgOY8;ZtS;IjS5uQ^}jgs8qJg2fW(w;E^@SJe_ z#v6*qM-8)^95+yuHA50+O))E4aD zD_sB3a_s34M1-KRgBn2}=s9IH3ZV4ln?1=57NvN*KMF|11F$jw=iN3EQBt-3>;je4 zjz%Flb}f@PfS6yc%_DCN3(L;tqaC7K8Fg0A17(gLF|M3veF|5lj1d>ZT%1*uX$JSY z$eQrLF9BbVpYZESHu+ZRc^>iFXL@YCyw8PAaB8R{$*$kXA!~%t zuTx-0^Y*m@hVj+Yw9xBG9imD!defdIL7D@%Q{^FZGr%vNzAW4tw4udl`9B^b4mZcJ zlj_hL6_n1=ON*w*X5H2E!M>QW5_E9$+64X~zm}^UC51uth-kDYbEJ2<1E;5wy5qa3~8;nf6ttSWXrs@bqQA^sz3UcLdiXyYDA+PE?hRAP4%dHbI@C(WOZd zv%@QJ@0Z!r^!y*Q(f@XKNv#*4eyd84dCQ2P`~X0Ft<0(v^?V4{QQk|*U43@Mka^KH zcvnbV^=Q$qkq*I+=^OdmEcPTcXtUoPS#Dd-gJBM%s2egtdFt+xH957zy`t*xIQ1lF zeY(1ojEq>4D5f8nIm?GooVt5?eC2&%$*N-6K4U5(!`yVV{cBy{Tg7ZJ@h5H$ayX0o z7GLqgRWr0liJ#@D!ZD*h`z!gl5Me7I5HEk6#)HAUjQo4tSS1m(_f2PejKzd|G^ei5 z*E{Td>2&?Ix31J_^6XZB@!Ov^bw(A3s}+r}wF-Q>@_1iUy4$;#-@Wz8{|(*yN1ku- z;>w}tG4;y{`|N=3$?Myz3VtVbF2{>Xi){R@zib_BmM*?}{G$&BzkTzie|G&&Mpqp7 zeR41NQsIVzn5!AXS)EZwr{YC9hCL}89!>o^u@u4}e1*g)wX&spkdkDjsgDP8TQceq zx?G!+Xx6=DoZ(NlTNemI7sjg{(};3E_(qtdLsUhEftA_pzG*^v$!CS0;ow7I`gBaYSFL=!RsI`~& z```mN1P^>y;2_}_pYx={%D7hPU?*v^r3E=HLVEJZm}*PMynA# zj%3-d4Y(HU^r+9C4`Q{&SY@_(8bmRgHGtHw-dVHHz_n}l^wV+M5^wLDg}1GX?C)tO zkr3sf$i2MA#wDsn=z76RAV-pnA2qwh(x08}G5Aw}NpjAD!j*eRi55vu^+Z4c2W?|r z#hX)c{1s&jMIgGlgCBS{A5DVg@dJbjy9-^R43`>MVE`wVb>SVzX^omkq<%H5OCXug zv4ZUZHCu5(DqXc00gBwg?pW4V@=d$sa{uzqp5{W|iP592e6GcSsx@`xd-<+7x+mTU zKs1iEYJS;60MbEBbAIp(PvB;-tuVybJP>0`$!NpX2{Tx6vN3gQQlsru7lQAbzQ2Jv zPNm8>s$n0uB^8(0Nx>aFlh=QU5&g)oMks zTvP|+YEmiNuH<1|UG5$9)ygIl?T95R(WeR2TaLbzYRi4eyPS8-%3G1V_$5`(jm3O{ zf^oFB8-JQCb6BYPRVzCuWSRBc15uO4*RvT|vwnmmgN$dK;tpqXrc}cq<8Am_@Q> z1jpRVyO<;63IZ;I^czcRS0(hn&VplJs#(sg*!9>2o&ir!t)2n(M}j@ zp$a*h;wEwG|N(Y8`Q@m+Tkb|pi z2j9~;k4MN?0+(Mg*-xq3HLf6Zq)^t}_UwWa(h`!v`Xy8eviG&>?o41BTa*8s4ChN1 z^%F>sRKr=*E3nGjMCj0u-mDQzPEKf%qlyL{M)9&!ZCEpStm&q?G%j3eB@R+Sd4yrc zpJky}yW^Z&!YepIVDSks%_L3Iy^@0e#motWcv7oju`ub%RU`wt;#qEHWKj`zpV;yL zCU((hZY7a&5BRsB@b{&95!k2juZWTb&@{Qcf#buXXfFY^I~x6TRZ!6E%Tqx#Gd4QNztamC$1`>or5&J5UV|)SD=XR8nw|R%iMug~D+Gt3 z_!_kT!iaXgQ|vRz!aUEH-WMtuo&^Zz>1Dg9g5|~(93Jd>LKK5nv6F8(4n>!eezDwA zBSP|QtI$Glg{To})76um=qANw9R4s4e6ctdq_BW$(SDD z{2C-E!lKR#F>s75VE(U}h6=7$e5Xa%;h3oG^#l`U&jdr4# z*P7u1pGj8~_0s;B_=*P(Fl{Ru#h4kRxyDAWU(t6M=EG9xR@h2cNFEDU#9=VrtO-hq zx@PD3a>@v68xa5T9zqvY#=0j8rO)pbl>=4CYvKo#tB;rh7Ce#icqn$7Mg7p0JNEe1 zs3b(EhS1-VnA3tVP#TwqDqB5Dosre7)Y#S>*efg~%4wjF*x=$=_z3|jqnukwLio0n zxFfZ1@xDSB=VndCTAx#NtU!h`rGYl`wT6d;k^B3Qy7dGSqscEpc*hcjGnS%@7_%OR zB7qSc>mH>c4~1vIqvixx3xm*EhIZ@+{Is7GVFhO-X-9zcp$$#b(7l^5)5CI2LpsL0u|Z$UGh8EU zgeMhMEQhKKr;`8Gy}_v^Z6?0etOq1(l^-Wn+QB-)f)Uw|yNDdHNFOzJOuPUX&cnS3 z)?@{t!tmY`$NShed@+v+#JU-Xd#6`qExYEUaL72;vvsMq<_|v=MN1kESn2{W5vLu= zaDm2 zgAti!+kJ#WXRBrfVH{e#JC|=~(bQUdb9`+}K#yu&GSx1;Ln>FRoH&dZ58mVy`vo#R zg;bThtqhRXiIScjPJ6i{eY_uR`DmCzMs9n7+IZG3q~*91X|4 zZYtvwyMJ&|+#J>DxbgqgVGStf9u~^WvW~X?1pY=2&LySr)cv3lHl!%1uzKlT*=mi; ztDHcp@LD50L$qVq7z|jW+&vYLAt-!x7=tQ^0NJA5!-6XdJw(O7f*;k__|E14+4hy!$n{%jk zvu+KbyDk|aO0?Fe->XSo{_TzprF77Drk>_lTcnHGJGEEPCy~a1u{nkgI0`$b=no|f z0{R;F(*<4>D^}pU!JlIjZqU_F;VxTQkm-EqKr;T; z87-?baYd4@MeYn|GrX438kHr9v@)jDDZyyX6{X~_N-$_)KY@BMgEL=Ls#6&uGBeeH zB^ps9FYigTzpyYpALZWXP(tKuX=5h?uI?Kkj+xCC3kwwnr%aO%n2TVi&^uN?{_~i1^6F8ocIwgk8FA9McbRM zN$oBf%3Z%sQvl&VLM87doHWj9?KJl&%zWWa^yiuC2;P{GCl840&e;f=YfGCa&W!QufYPlYbjf7(H zlyq3aZ6LOg$2bpOB++^@km}kkU10m_iKZKHlGRY_8{!mensV&2zVaEZaJTbBmNMhs z@+-R>FXyj=^{tohS@TY4{XYX?^qbwZ{_|O!m@*oxwA+5>Lswcmrd3T2_-oy?2tsFi@S?L)(V$~ zF;oipc4Zhb6|O3!U*Yvtxtm^6-?GWuo2`$ z?6KBw`B`>xj#<{IF7KmVVi{4?R{2ZSGAi<>cWfLj&+17xtO0U``o{-(yF888#39`G zljF7r{>JE5PYVze1Cy$3`Q6tgA8FwMJ~>#4Hg%P9Z*RDsjDlZ>afc^u|28eTJU3sA`(1g&$#`&Q2lufLO#q)w-uVM|J zoz+!9Zo>sqmlxu8hV83xya&h4;+ijYxSY-=3F@VRCSHzlv`y?7qou!w;ZRk4aJKF- z9c$Yl=}AFI?3902(WwCLc!|P&!^|klPRVXlb&N!ZT{dgg}iOul*1&mfC2%=45>} z))`&tA3YF!_HWh9Sf1R6Cd(RYhk5E&Gz}3kE$3*Tm})W#O~1hIgW)MqIR zjlGERs3+Owm~67r_ywF&G;)tlB2U?5{a+r2ASo=+BTyL6w9@}c_}2B@_**TM89r?k z6l*iXcWn3s$q|45kduo~Fv#pD_Cd-+!OS|edI2a9*5|B?KlsmvwpYiH&!P12z2%9 zQAqIT(Cec(PN)F_!c{f+A_+ow69-0AAe*kJjM(egkh1YDZr2>why0<*Ph_!9K%K>T zh|-wzlor%*aIr>_QH`7$ueE-?dI^X#-JkKV3Cbs>e$m2r_1dh8GR9IG{WT6 z0&}v?B?32urU`}LlM-rcd-9{THoNNz-}LtYg6TEGWwx;*L+>BK zAmz_drLG=~8Vt6NU?2!A7-K1a5Amf01(j4Goy+s|ZpmcGOqStbH*+X$lk0NmnCF;G z<%V;b$ej?p=O%^C`?%}iEbVylF|j^jlw~r``Oz2Qj>^9>-&3WioSm=gIdJNTOi9&g=Ez{<)N z9$Ni!J9CLa_cRNMeZy=LQe*u@`X7xOq*pWr1)XAq9q`?Oj#N@5PF7bD>*R-MWG6`j z(R{k=`eOHrMQ)}m^L)J^F4~~W z@+@3`l6%=kHG{R7OC+`-bDX7SEGQzYs^`zQwR>dW6yJIBdac>e2)DfMjeg-&9_g!m zAUWHr`?1m4%ZOcLXF}IX5@q_RdZBg#Q=1RT+~HG8jKfmQR^oWq_1Vo!M+T!;ymhxa z=AwIf%+yCDxjKK}jbXiTxp!Bob>)vtK+mE0uBsQ`E6^zDhLir~JOg;z&qdUls}+JY zz2pImcQc*D%lpmLz#N{sTTlL@3Xbve%TZUpV+mULjq?Us@|a+yc{YKlR%+00R_M^i zGxO(4774Hz{^YQ05Q9LnYY7EzNykzs=fN zKQ~%|XbteOW9%AZy^G;;)p|HJ$ctwu1Xm`$LGoMv5)P4lIH>8h<>-Ih4d1q~`5Xto zaira-aI5R66>-V*a$iKz$j_!Pu=ICls`dDR&pxTq$p3l6vNZ4OMmQwS zoc)zg47z_U4W8(cpb)nvalOl>0Sf#2FwDYDe!4OYRYZSTQRn=<_zUZTD0E-s{Cze0 zZk4;&!zl-?o_#58v{O;~r)bBi!_S4NEh8XqM5y)oU*zIkMwZ`pfJWraGzFMKCN^GOqU(`RbRw1#ufg_J?UR^xg=E zH)M>Di!p$U9IN)HmyS*ln`X~%rGIJZu=*AB-5J47ahaHXY`Ee&$1}%Ntb)L{>g_5? z_J{sK`JY9`vQe#(!gokX3gck7nI}G5$p|4SMsE>C zKkC`|QgN?S!HzS}sn7gR$gjDO+1<0S^zq#IwByp>Kl+{A z{+(R$o$nnk7R}KC-`5oWW6A%$Lbry}jE^(C%0fok5d`s$@6vciVW%*bYk(QpX*U7vO~M1(m4jEy}5pQd0aPntBZYvmPwQzk3sJAc96dfa^n<$;Sdn-5yt`)UZ(nH zc|294;zkwX`o3sSm zo1Wetqy>g6{?~O!tt8-@>ikg!Ke)> zXmDX(yWsss<{)ZA8}w=k$r{iqteW;4WQPKtu$~I|O5C$PDAKxN z)P}7*>L5ei@sG!3qLMDE_UaV+KSCQ#8L#g^GJOOBdGksliLW;cfQJfy%TO{Of~~he zo7N4Ew{6N#w!i_jJD09d?Y{I5VwDpBqPe98`wTl+_I0?szwZ<%4KQZ>4xvPphUbW} zKF#qOhCp)R$Ip8p7oPS%9{=qJ!q4uDT_Sokc+={$b7yI^NwLE9*L9MTHjE3n5AeNs z5+{$!CXt<|vD7Jjw?zZ1D&?J@)yYeM<8>*e=5$H9?rErylI`>!B>eb3Sz&yYs36WG z&(>TwY)>ZDH4miu?)wg>M^I0~niPWaDc#ir1dfrbXOeO6+pd3Kk0FBFK7F zN$;)H(IdGhoV4e|Ni~>MCbwQxDzNz@B<1-(s}r97@3f>u!MsjA#vnEF^pa zM#if0xE!q3CaUhdm$D0CdhC>|?*M2thN>wbxd=6%j7ajwV}V^hkk?OyY9X=jvrUKgPT2e3}zB`BUler4Mo-4O9~vFd@gWZdA7En(?B- z2}$)Ysv4>tamXJB3D=W$Dk>EjGfz$+jBni?jy?7nJCHmPz)?0Sqti5g$7reA;4y9a zEHRbJS@7s0s|SSE1}GKC^Z3Mr@2T~`B(yvRQ9Aedk3&YWvNAzCa}1oP1?Y~`yUIHW zv$i`=N6{#lf@Ml$jv5wB8G*)8R}S%ht{_2rw_#y}2JtxQ`HPMxq+gMq3@8v-;jOtX zzm+!%hk5Z$nLuw9!ScI?@5vjiAgfQp!O@fXi}2nxgzZS{HSnS`)rb4v|-|Iz!YBa8LlVTtpU$r7lTUuVu&BC;gIl? zaG~JnSf^+D3>E_4(uAGssR?Dx9lp;b?*Xlwx*hA<)h9%sBn2@P(-Nxr&i}m8!pl>X z^u=IbjCL?)VK+&mFjuH2!7p&{o9LSZ7#O+Va{W!lpzuzfmc-hcAy=sd{lfD1e0A2X zKbfddH1ZS%?W{z$MC_u%jI@PM;O4gcnS|p7K4`v{rHEDs6BxV`7TFAeSh5C}A3}#M zs%mzlKkz=^@?Y@>r|k$Rc%&46zts=30ajT4Ij5_`*>9_R&InpgswrlN0*BwiT~JK} zxSkt|>%>NW8NykMvPMJVcq&4yI8~J%ly|AS?|2)M+0F03Fslbh$~OTkes(|Kv%|)J zaW|2uP1iXW!v%}vN?A(lVJFrsDymG0ECpMa@LuU!pBQJBmGq_Hxz|!*A5LgX5O|>X zRAJbrlW+qEIh5WJ##ONsCD6ftF@cXo_w%g*?s}J_Myg2kMP3d^v%V;=a7-dAoyJ+G zA5<7NB?yPQadlRrHCb3Mnygl&6M95fo*%S3izOyLbG%T57Z*Gh=noUr7HtZ#2~wLj zLsO9kO+@cdfWYwtXPTsAEfJ{ax~;Lr@B_71{<_hAu|K9 zANI9wmXWoN@W``i$+~M$OPUd)A>is@LI)$V2q>lId|R^_Qa^fp?&G@UVcPk>W~19` zlb*Qfsh=QtXRzeR;3hPJ^w+3tyH-vT#|Qib<29GNl?r71I6?VI)BXx*uV{3tAQ5SR z9R=zW@k@j~03p{VBBTxvK^k*xkxMjGSXcVs@!sqMQ=u&sVFSL0M09YRH0niYH^^X6 zK9V!rHO)quo|Uuc=z})ZNW>O!vGqOZ!pH9Fiy$&owEm>HAUvf&o@D=B$ru_Lqt*H? z4J(O_ON*@X+$cPIM7qywGJ6A-R_sN*dJ?4M<;#QeK~Q5wh)@a=aq=pUI}GW20W3r^ z)K!524Qghc(0Wxq!uz?Dd=_)X2W;h|L(8Ve?Nz?6cLX~H(l11FH#sG~LG=HIXz(SU zE#TH&_Oe?cpX22$F)?@#SoE9Y4{Tx5lP!#89=*B}{pOFVO_9Z^B+o{4PZ*$z{^i(ah6?^ef)%_147IXJcM-FXa{O*`gzQC3Yr{;k=VI<%Rg@wqa@g` z&T?T>*~i^6W-l9qGiVMxaXb&)viUNeIgQMF^ZGQTD7ghU*uU;6^Xis7ATCk*w2}_! zB#^YNO?GXZtvgqPJ*I-PYCO`wso;Tn z^#T@+N67~6DBeXhuvp#2JJ0csU$hH2%?O9{5I1UKF4)V*x}1yr)4JDDQm?@Bu2iR+ zk17l9lP$v-n&iv^`>%k)t0RXzD;#~(h!|gwnKoQ=9Hxta0tJ-$`K^erg3yK;zG5{x z6X$3c(s6WQq`tm$3}5K!8|>>eOMolKB1x)RsrvPIGg_40L>^SSztb`-fqIRdL5B_) zTj*>3y!)u?I}Nd3@4A62o?=l!aR*Zg*^NaG55bEJtc|>Z3fGe~LG8eOVW1v1J%n!H zWI}z&BlJ4u1$#MxwA77^T`-;xg5n2)o_ZU9HV@Os!K^%hkM6Ji8K2JP3B6JRG8|QE z%`yzaNL`sI*R+W+t!b0AilVK$fN4=k)GZaSd@35l86)inRZpsI&D63hsFFj`Q>QQ} z^g^4as)}t-9`{1Cj0tlQ=KXO<%CWrp6y4MafOPoKGp7hH3TQXHdw}HP6zJy6Qhn{$ zMCk-lKx@Y6VPLWs7ji-L_ zWX+TF3U#NA;`-*r3EH_0wG=BA;Qf1~B+);ItHM%cR+0DUp3zBWy=q$un#*ogyke|W zxok%)@P=aZke+NPzva>tfrSG8qyr2s$i*D?tRZ}Rq0Y+o|5z{MOWxPM>fub*TNk6A?>&M&JiBY|! zO%wU&$V1`>5HB*Mc$ zXze}HYCN!qT#VYTD5^FQ+{Xs0?6k(MZyDXKx~`bW2U?5M?7qEocd3?JW@$CYpiL3U zVOENSa1jKfxkvD-j^WOtilakhOpj*c>6RPGBwDlI*l3rMB=~wmi;9q}&^#HyI11k< z=!*tQFAEGpnm8*S+wPm(s1Up^@RF=rx$E{2Z>YnDQdYcj>Ycm~1DQuPn&7V}@TH#> zy?r$=W~)a8BvF_BR)`QgIt&WpDhp-QF7ZEeFg3uNd2Hc=)h~6R>&WapFR8Eu$_~Z1 zQAr7Otb06a4YYghpZjT4Uv=*=DRs;A&HfKUonb$(%>JNkjM%2UuPey>#zHMRWg;7s zN3B9{E)+K@!cqeZj041O*&oud{Ey|uAd!}EW8vYSuH3g*@N(eKACqkjFod8iiBO=C z`$gLW-;Ark3i)`q-M{A&7Zo3+w{BWh(ggxx%4eB{4&96?nwg18hjIv%p=UA16Gs<9 zZZ4qLbh%HK;F{~N_&8^?E&k{jsH@<{`s)N?OUZN}3<>>J(#Q~VH(%0(|MTv2edzDR zn_Ck-l0tv*c0YZysx@06S*W~VzbnPq`0lKyt-p`XiF-7qYeN5CUpWru#;c3$(ZbeH zFN5p1sE-`g|Lwl*;(mNM2RT%u2qyJO9ei!Um<6I=y0aUT^@{apEl||~n4y1Km<>Zp z`Jkb8Q8i;ejNj3DR(EHRS^v+T%=?maiv~d6gr{tUb$u3lnT#BX`lK=zLfFX5mNbfq z*kX_9O14x!NAuCSDSC$uERT_Z#?)1YarsWHxr;k_D%;8v7@spZu)9W^lt`g*SOGBW zBM-y71sg%QSrL+0<$95R5+%pQewbp=sNGdY=Hh6dsPcL~doHw2v-AJ4enP5alf>+$ z7hv-?tU<2{7{hLubI7lQU>Ab;KddbUBa=B{h*Ppc++=XY4Xo1Lve})(YB-T*)PiOov!}w6TlRxYhWYm*OKr8w zwk(#&r*vZ;#~VZ)wpC5$2@$qV6V+F#aXy<5X|fx15;hkqCrdOxnG^{Mc>+cZo^*(0 zOz66{Wi_t3!Qsz2+g7T%3*kAND$%PR=HpJ4>~c!rskw*b4FsD1ptT8>(SNNIBh>`{HYUafHG4$+qUdG!E)$HtU# z`wej})v7sI&H`1Dgl9$8F<-1CaLVKH_`+3znFtkM6Q@950+88d*>*^HS{EP<075bH zZ3^#67$D>!i{yRXya^d=s1A*S+N)YWv}#9QHshIQNuWLnC-G;kARlFQY-eY>$}l~< zWpk)p*9a#G>HsQS{fkifGoJTW!z_02U!9-TP6`^|d-sI%&OT?8PU!u*;*)@qyx_m! zG-+iRHw+N#|AI7=&LNX7*=NLj;slHiyx5@KaqTj{F`T}ehA&9(CXf5d{TP7s76L3` zc39`&a`y}%54&U+jMYn-N{`()6}*9Z*I&s?#|D#(S2ZpPV>pq-tfU7D3gw>dqEUAD z`eF?xzfU>WUxx*a?KP8DQA?%N`~}?jlW_m|F9r>n?(?;Fl^{fmHo2~cx&fWOTGom4 zDl;ASfY|fg*X>D%bee(44&n(I>wLY4JLzH6gq%{88LutBZ^VjP?SqiA-H72%uu@R- zdADX?gLNr#3uV-g)1dQ!(ZfnUZ>doU9zyXRJvIo);xml7`wj$$?+z?DY&PJkRX=9? z%8!XRp6aGHy{Mk;wC}GeR0=QU?_O`B68|s=6qfsUk{4Rz`j+;b>?5(sxUYwnR`iTr|a^-u-I5 z-Rn1(6n;sxX&M&sPEgLvSV^o`2uxI>^$#TZE)^_blG<9}YS`x@<|6HfL5vDbo~(JV zkffiks??clhVjBz4t3b0x{bs6R_$qta;h9)NAzlL?-YEhH@R(H9i8{@fo@;W=!0d z-u=BbYmP|`N`cQY_k=WHjiTa^mQ7bAwxOw{lWgBOd0X|SeL|koWfWdjMz}THA+I%* zF|NpQly8;`9}6E2?|C!q-TLf{FE$GCTuC0+OyQhN6{H(dXc#*1b}z9d znWLn-gb6jPai-VFFCXIqm1f%f!S^9^CBi$ullvLvw8620&hDN%p{AZ~brCiKllwGb0 z&t1$nj>ZgbO%Bu2B~tS~^jXR~Tz7CG!K{;C-!e>vUYhQ7w3Y_|er^xz8=zgqkM4SeJ1zjp&li zNF0~HgX78N8jWo2+5AbcI%h*oHE*@OuS+ySBpB+KG-xyOS7$V@UEs`hDhIw_jHJwh zw$?rx62Ji2L4s0ZoGagkHLv{L7A0&HFK}Vnw_Wwnl^5AZr=E_Wj4O2bnJE$I21vt| z`5P*|DakWEqE^CkZG44eu;MMl^(Yi65P@HLmJZ1|>sh4hcWwG2%vL_u2kuiVk02G!%IixR;rvg6ZX7Of@Kw8?f7E!^Ie zb7wK2#;Aj+d&fJHc{^L2B9wQ@3Hue z>Rp%ZX@-Np!bWMhf@-0J=Y#USjVqIQCp-kD_l|JX?Pj^2pD@WeG-;nR-j3wHm)WU zrD9zfoVQxoJP4a0S<*)&PvYaBWH%Jdp)++1Lc!5i=3eVK}QS@QS*~J31S4 zWurL@6&bDt?!T;leYh=Cw*LcMuOW zE^J=>9O!?vMHc-v;r7*f%8HLXht5Du`V$RQrrt0CMUutaXlM?S0`|uw#e2D z^g%H-i0FB`EbYQ`1a#A0VKc^npx5>a3pAi|P|b17v2kBpa~vI{q2I0(C3Z{S#Zza= zw!m_}5xQYK>U?i3wjf%9TWU)70DdHwlqHs!>D){4CJoA{p+0PAy=Aj!=XAQF_~4QT zfrGM9!E!@N8aGgraKg#6AJ0P95K!*S&S@iBf=63nmW{GeZ4#yVSPVHZSJ_UQS&Nf< z_I;L?SFvcD5G8=vO!Z=#!3LfFfq8VpKO}LI6&CF4*0|Li@SN1Sy2}GqRQcI^v`=Qg zjepjjYR8Oxbj4%7bQdn*SBp`<5LmP03<)Stpj~$>g7kh}HwXY^;Z$?MFOqXcYeE~*%GSZKQL5H_cq(XxDg z@RmZb8{chWsCkuD!$TX_FVMKI^?(!$;^hR!?zYoNZ*O&)0fpdk2eF+2(AX4kZY%0a zA+upNqLTZhGoj-kloQAdk30AT$Wz^w(JF4zh*5;xBga5sg=~ZzM#%yu=(D9D_oE)H z1IdHY@+H;}F_?k}#OdocKGMpUKUPTI!;uw!U>>Sfs5pG==RwP#F$?-?;^Nx~=ulp( zL2roy(-!tnI6_n|vGJIA5%`~-QRM!vi3)4N>w^PvaUXFFQl*ttD=;n-4pa^cP(!Q0 zfMx73lj}=}Leu3sqwA&5o&zPPlLX%vo*@i3GLq+1ehcI#=w@@2%mbG!M@w|Hs0JoV z;s)$!v@qDqp0DMYl^f1*z&Nt{@SK|yJNxZk-iG?#^~ie0iydBUm91_vxm7la*B}xJ z;)zpPs1JQ)Fp5xhQ#zU7yyaDTVB>FE?x-LglEPqED_9XoMJ$51hAWGvEq7qzD6$}m zR^K3x=J&#LYu(zp9BdY9Kmc%}trF5E^Bb`gPiB-VCx4QAv=Lv;IBqGrw3%qW^%bv=lZo`_m5h_mPXV=I=}S!Xp|WV= zYlaw`y5nDtX_TXuNcx6_Bx{M?hrydbJvqw5jPqOjos*RFlRQfU1j!B5hc23^Yp!ti z7<{O{8;gjkTyqTe3R1Q&n!>brD}kE%+1m81I(!oh`%Prs+r7Al&E#MpaDp6H_{Nki za*x}@FQC-fBC-|_@E%B84|0464k>D0zM%T)9Hg57w3VeQNbW@u2+)-f%|RC*Auzp@ z#3L=M@0iGOugI+H7%45P^vfM_!<;^a@6ai-z*l^3F9Q)6Y;xkiS-$~n&hih+gRjFUDf67b?ON1l$f zA>;(roDXiAi5wfQGNrlIV^B0i>;NX(-z8_;@!ci~B_Btb()LmbH@s-}=mN{y-YA(> z9Ks+|Su+(aw!$WQV?yb9QV|*K9@MBc>R%i}3<|K%h_{jdXfIcJ99m7jxzb4leJk0h zC+$^k=O#)t$M0cQ+gA#q+CA;E@XDYX2Z;!u!@tVQ>wpJ;lPmj!f01@Cte+``yo5HJ zwa4l=y~UnOf&4Kll+SLd=lc|BNL7BX&Dl@7G(sbCTu&xy4!Hi>k++LeD@GWFrk_}5u#rxc%DsIC9##6qam$1C|K2s4$V0ybGlq({V zO=V59xc*lG%N2(;Y|bK9U~dLuf8t~2xSc270L}x0{2wKU`GHDH!8KSo`ZV^)AcryV z5D?6I49{G*1|lza&SK}h;}0#W2uD+;?Ic5X4uGMd>&^A@!zkZoe7Xj4XI9x3jCJ z86)XnJ-UgSCXnzGN?Z6^#F(%q&r_3?`%E>;;8yFKdY34+sKV8qYF2Z++!Hn{(WOyT zSEhJoqCa3*!bk+yP>QisN`ynXk9o0#vUBu&#`W_9nKUjxu3x&3V~-CKkxmMLQ@>Rc z*dz1^oxcw*X-avq%_e_;SEGo?=RVug%RR=(eORbn^!sg9p5b1BcxM3& zA=pEgQE=}jSz&~ZL3Xr_6L;)s4nYr)j$|-?B0c6EKY@T)r?dmn><&LniSG2^H#s!J zUWX#i@;8wrflOneQ=p`rUES#Dg@v&bQM&nul0o5}jq_9*f*`NoY}vKUC51M}zzGqx zQZ1AQ1aHlnUzUqkf_JWgJ2u9=>=Mh-b7?wPUnlk-_@BxSjP~+VExugS(blwDsu%5{ zXh@2waQag`&QCP}K7z+Qp%q*E!_gbk7xq)`NG$_P}q+A zEby@YJt+$BIVuU8u`hP1>tLs?2Mi~HH-vX*4s-3FF|fGidd?KB_uPu%sKSf9E`++U zryt($>Ipmp=@FqteK&~Sep+1icSTsTNx}EKUFedjX#BD?2|ki@Uchad9Bv-B^FXSg zNp{4N$PKw=SY2vO&$E+R$A4LloW?AGgWrnrOf7MQK1kfNY58UPWbM^LS2NNjAzs~9 zx}Sy-k-di|_<@>X0iw^CM};*5+7eT5=P@~A84;LuD6NX`eCg|S`ac;hFLl_+O>k2k zDYk^u5VTASdt+Neq1zB~B1Z;enl=A=?H%bCc#|`VUhly-v|FhbHrn}wB@{ZPYz|^x zRF;jPw7zn+mN87}?#PpM4udW+QQXr#2f6DpDP9@MmtR!39NudM%V2!YlG3^#_Kk7g z$!>`DIDcXu$&WY60#!W&0zv^yTr+UTviIRFRsaRSV3jblF8ZtZVBA(Ug?X*v5c^PZtKc0KSy7HloLXUPFG)-UC zkZ*FZoWtN*u?o-Nsy!Op>dWD~@U96A$t{Oc(33aI1NkIY9)iTrE;7xnq$=71%MlDR z)_Vdr|JTUSuY6EcCcwdW#ffcyO7vV%D@h!oN)E8GSLP!E$9AXFBz*;xjX*lNyRe0 z1?7x;1WY{^;+tTXM>|<}+?N3awgr2D=lu;^g3`pE!>CU5n9$J9h3d9-2R?wWW=@b; zSuZ);%{(vnG)OTUHdq@OUq^MEd0QP z4*#%6dE@j$QFn}ceT8x|6ecQIW8f~TC)>37RqH>0B5;lIa?2P!P4dGAL1Xf!JA|_= zP*0g>>^ysI0{lUO{C=9XP`Bo?Hnf8Il0MOf4f~2er;O0DMd{u8?{adu3klB?Y-SUF zSy-=LeXIV~GO>S&pwYt-_aYYdAO+uJ05^!CJX=ptPb={13FYW?@VN0b(&p#rJ!(i( zzK-?MbKFjI_e*j2HU)`{+GHJX^XT`BibNs6MT6q2|IoiNAHtxzaEkbxAH?VYvSzG8 zGfn*?B(c37BMZjK+EuX)TrLOu282$Bc&(|f3;`liQc`nAcy42!dsnrLc>Z&Hb81LM zatr`{Pd3>lRAxMd?cg;8HtVH05MMXqNnVi#X?_ghma_4Sc)2iANo<#8=-rZ^Qh#>* zmITAIQwhmV;ogZ_s>vC-kban8sy##xAAPCTJ^feo1e)Rxy|T zfz}lEQ7q9b*F@E9-F?aymtaPzsUCeoz8pyPa;uOC0KKlX^eUPXt1aMH(Kx!i`-KC? z3u2K36Ca6MV*HF4-7*^UqT3&9(-mPqYXZ+)z{`u_Jjq$w&Lwrg!$bB@-jub2nmscY zdbIj!qCl!w!r#|z6BJQ9S6pus!H0c?BNSBP5-UDqd7YgVUt3wVc*KmtvJ`jCW*o_}QGCSqvCvBc)yVrZ4?Y`su#` z2e75^kH#It9k6}X;aFy6$ceyYMD}M7`fR!G%7h=$>vCv1w8I{!l`?j@wf+Yc$2(V_ zjc;`7!#1nCrbVV~GA}qFl-oB=o1+1@SH9GzVOM%YD5Spu7Y+ted%YBX2`faUlF*Vs zhcst;sc=(xOxI>!lVXS>AVRSJ$EsE(bjgrj_?>hh27N&>7kB(y;+L*?j1UZfP_IP1 zpm==zv}QxKQd@GEenoxq3)f!+8xazGzeGHL%fYH^;)qF`m1dMY>xqmkXNC8iO`uae zvEYhm^g@1u#Bte#e>7Z_uhrjjyoV;8v11bf6BXn;wk(a98HX+yz_P#c=lbS3a||IH z7B0Xg+H=kIn~68o1`A+iIp}GaHq3z5Zv6>yua20_YLm9-e(SmcodiDt5@5>EoDbya zjX&%;l;FWd#3N(?L9hHw$moELYA%Vs>`Tgi5f?^EuK~7Ws3Q9w;;i$jBjfOEoMk$N znT^S>t1r*f*ZI;zlKA0K?H-IR#_|NlgV^gT3%@(5kL$!26$x0!n3 z=;Ny1`dMGiY9rjNYa=&8Tn|dg`EW&}{`#b_X)uyXc|YeP;Wle)PTeO{y>Sg1fbg}Z znDD>u$rwzV854iy6IJ?V=^s)Y97i!m@B`3nsr0}|yGTTtt;8ivRjcT}_~Egq=_EOg~wUc2T(Mg|D=8_~`t zEPLU{4NnfIIRYGE86*jXBBf>$bq$;wBS$u`ZRh z^A82J*K9&IBX9_6*?Wq>kX>PUHYtlLdYVDZM_ckS{O?Ng;*c1c1q%1{r4B%&bych@ zbdYD{NA5IO_oz0YTLX4!zo~J-wHAYn^l5|Gh|sSM2Z01xM}GyP#D5-GHSLZQ_u)W8 zz@9Tl3)k10iG4uU*X^Km8Y@;7eVN;=3c@8@rx@+F?*Qx-&N9IpS0>iBZEln z#KvJsNxyE@z_wX&5}d{)K>(XDO zKR&2MAD}3qU+hx4zY7-*25yMM33)&T%DfZjxq(HFksR#F93j{B=oq;Ajt?t~n(YGN zXo_3s_{Kp~5!~z<6Mh&K+=uM4NQx^La`J_jG)^<|W=cMXss*=|YB3d7=sV6kqX6Tv z{6Hv+&YRFd+;i_8_M;6|yR71)FFhjr9~v@RB1>*K&OO8>l#=^MzAceInz^x_W`1wu&>y|9{N%p^uXj^JGSF^KI7V>^5d9=(qciaflnZ z&s!)v%=4Zv?`cp&O)rG#8)*{^8^E4D;9KKINrI~ctL+(O8&0!yu<=p!7&{xU8q9AYT-9@LsioF}Q)D9a(h14UdMg$!D{Lwh}$D*}VCQYW;8W zXSH7DaiQV=W$8`8nmYHc?|Wwx6N!*u(by)CpdC0>22WdtGPnUNK2N9k)Kh&vrl_^` zoHB_DL<8)A3~e1~YlY9LLHo9x4uHcU2sCWKRtl)t2{Ax|GF3){fB{0kmA)U>RnMta z$gp$o`(FRGe(Ol!j~3Mpg{pkXExk~qUU6yOrW*pJLG-&|VN@XYHPu@_IxxGh=s#@K zO=s+<`)=VpI)1F9N|>d-8r>p3d8@Km9$Lw6cMgAbLf{E}`6ycH>^s!%<6Tw4cjr+3 zXKVcBQuuaevqQu7j*qb=)GDL0=Vy?RS<~`1r-GPI!%E%oQ#PcDRn6)ufp^>`Wzvi3 zqy6HNFgCH_2CxLs*rN8Q6nPq%$nit`M8VdKo~o5?^(dY?`53#GvkS9LlzK&?QSpUP zlaYtIk%Ez{Li{yu>N@1{#Ob-l>u5-^CQjkt8aKcT-}B>SdFmK>_UuJ4P6a<8irb@2 z2JLDaTmafTST}&7=aiCnjgRB@N2bH@7-{i(#PUPDsvqlydfLHH z>=r*lP1rtog6e0Jmmv0sGZGO^Ygim3(>ZN*PsRzba!0WbO~R&Rq+VY(gwhQ7@)sF^ z-spn&F9=~HxSvUCl50`aG9)0WzBlHz7GB{g|Aw2+vWCq;=7#smT~`sOjB&op?7k&S zdgj%{teSZ4c3C^{|gx z=`()3@XcVhYt({L;W$0d(J2*ftlu`2y10P1ZG4P!-&tyK&=u{tY!qH`lp+bO`JKA{ z0Z6NXG|nK0m4Z(~SpH>)KrUnN2!aq?$H2O=IU50dzi)|4t=q856+sthh5Z2${sP{v)fG+?oN(yJeG8Aw zV0;bVu-JA-+$L&Ft9QUB@)1(jO&v$?!dZRf{CRw|=n;tFip`!edciE^s-|%=sI>%7 z2>MMpBmdOm;y_dS%u;g;dYWIQ_*wLb6`T=jl;S;Ze-)=F%CU#2%M53D$HqDYVwEg| zbKQ$jg2%j9>IUB)Y^a1N8blsvtYN!chc*_V#T;ThI2Dg|@X^ZZ_0%%M7@!#8tk(l< z@SI%((EVD>m(VB-EHyCHd=oiwF-)=)0Df#Y3dsOaH(*s3=K7Q4nXJ}}VgfJlgE zf~Tm6=s#-2TUR@Up0T(F>QtDp#hD_QD)Ss=mtmr$i^?choN?U?Y0s2XDt_+7Dmh0d zS;}rIH3qZ?5_(!UZC7SV={bh~W*CdG=^h*yk$Dc9qDzz%g@%QxJj_I1;$G*;19J;M z!J&s@3fHoxDq&BHVgto36!f6N< zNu9_q=bRv+Y~N5fQ3fO}5qvU9X$X$y2!JFxCT<7;;MK1ZPV`ivPnv9a+Y*dmNwzwt zT)Y9bIOVR{YILg@0haDqR)0ivj$31NgRs_jSgW^ba9PbmZsBQAuwE<&C_oL0ATn@3H0*Ki}lo1U7|d0-ViYVxI1{3&3ZHpznNuFHGmWg?Eo9I|JB zAU)J-=j!4At8v|Og!*xDiz94hc4hh+a+C?*%7d@(MkUKlX$mXpfxZI0w>rf-3iR3~ zf4ll#LIAgAnxC}|tv1;=itmWu^Jmh`_58ffN0^iJJB4!Fw+5*Z=)SIAJ?E$+NxVxo zJdIC!`aJigH1U|_^H8r#%C~=Dx)<1u9bKa8-2Bc7ge_&<_S6Bx9=R z5+pzPms7*HV0`p3JgQiKe;2%m_v*M<89Pgyg6ZR793yrdo!ghREpXX-q}A;mxS?=_ zoE8KnVQW_#f}s^V1%Ssxr-YyRF&A3N%;{7SrJcO%90>d(s-|lAx#(_cMX$~Apndi3 zA~%?ETPMBR4p=~-OCHEP3Qw$K40oX0mV5kLxppyvzp23R&AD-&7b4M+t1H@L4Y^nwr%ab9dOnIdh#e9ztBn^zq@K3dqNXuR`9yxQdF4KE? z$i&?hLsldes)W_jlas5FKXop!kdL0IT6x2ObOhTsQ1nFk-{!cl_Jozt)8R zD+2-L=5GtaJ^UN3gR5TIU4$!*FgQ+X()DvK<{Dug?NWi(6$df)6r5Nk3;0MSlx(Fodh?VQS}m2^m3pbq z=ie&UBE}}Pl_BdDrEcN(cRR}s^blE7iySaIyxu$U{Idg9ya`jzuTH~4G>!y3P6X^y zTprgSd;o0-Mpue~nk z%oG0W>yKJASmoE(?e60U$6n|H#c;ix@ZGJ1p?9cGkWbBCouQ~d%LVArYq z%7rVXA9z1oZmxMgV|ujHF2jKuMgL_rWUj{HXrC9(sJQADqHe9P{?zD zLyz$_VO%M>|?&w6fWS9mO{ktN;W@4e5QNw7y#MzvjPwv%RRE^OG@e5L?i=r*d1797y+!c5pd1*Wnd_OJ-(Vuk z&9Rt)k=^E1v98jS!`G0hU8O5e=yp9@qT^jpT+_bxBG#fO49P9=jwv-}vP@;Ye6cv- z6e=ocNaYi*A=S}){C-7dSA8_&6J_Mvi0>64LpgLD@EBT`9{sK*eotJEe`?L`E}_m- zNj0bX$}R{GHd>GMG|DevR=Z_r5cj5#dak}0d%nkG$0n)7T9{1o=O^w8PA7M0`yP;0 zvdC<`R{yuxe(q57Opo%0Jo;Wc%@l@JVIEeO&Z&kxPBR7b7gq8A-qrk7D^gG4>>A@^ z=VLq4j=)fWNgqC>3F(LwowdX_e=SWs!hCZRa8nkad8b?wU5ft+)){usvx5R9e($fZ z=L0nXQ~b-rto)v!+>x9Qi@^q77nRk?kpNrH=Ae{6Nel3KQ|yW-HVsD?OOQk^l_lNo zmR^3zbk%vKlbUH2ENE@)oguhlcA6f7Dh_+ulAJVzVOtiiFJE| zPT>Xo=sjgfXZ|wlinn{JioD|v^ls06cAo7z(717^c$r$r2E)JJkmFp zEUTOIJI4T1s^^ZS;3J#kzs|#dphdcN!LsRoa-lzlEd=A@F~Otg2Yf@TAnaozl(wSk zu9yfU&-2@|Eo%meTx*!%A&OBp0HrgKwkE9!uoQZ250t zQu0cjmYH+hvr*GpQREhZa1e}hush7ySe0rW0`&AhcU4cOHsCI~OBHtJ>PAcsT`Zeb zQ;`H5Xxz(D;P)y-`WAst2d|V;sK`bkOjw>Auk1i4y0;ad7YSqcENkQcP;J@UgZ9Ws zy=Rrm8Bs%YZkM|8LaGU-=EQLh`(5CV{|9Fw2}*d~Qg%Q|`<>_p$L6pQD zwVal|OvLz#xv$y=@DW0P?d=o;Y5>d#*}+Fkm*HGiucOlQf%OTXBCE^?+v>wDLA!yBAxUBuMj3opK* zliAEwPijjj(NP!ujfTWvsyx?B~Y4t^Q+7g2Fx{D#V zpU486OR0oz(Qm2F`&~+sokSzfK8pxk80YbpqjuzuECnwS@>T6CO|$uLZMjTDXMgNR zYkJnafuCMok}31;a(*T8du3w7fentOzqwWP;pa1X6@dvtI7Aw=)=$xM)Qs_hnOn<10b1tyA6bW&4Iccu3-Bxb<`2Gr!a3?f#Cd-sT%4nfGQt?n5h@S7&H zZ!}FUK_G{^1<+7@dEP)3M|Wl4WU43XQn$_Ozy{Wh5O5)h+pD6ALhpR{GZQ_i7&nch zu@P0na=7J_k1#%_zRWk;#swfEcCY@RDv5t-WU=Z{c2z*yG5fvE@@MV!TvtEKHzVkf zpm{}`8;R7-!m;_Z594c_W$_E+DGP4K(*+_r;rrV>=o zonMl7qIo|siy;#QW`6|MhW77p1LCKmmmiYOiMQdkKf>_zUsrd#wPpIRzSAIWaW0!< zrcjW@Lp>V-2bNp8YAkf{=UU?;Ui@x=7R&HR( z*5>S1HHvo($&QI5%=lzQ{F~l>s-Q^N* z`X1Ig3Q5rZxO4i-?XrKFs7T8N_|nfmOys}z-|v@64yD{7K89Fa}?&{{s#NoGN zsLAn~wL30kO*+bT_Mv!oWxVXZhvlGtdBRrA7w7Nsf3Wt8Qi4+GKl)ePNgltmWlMbN-s+|L^t1RWo63i?d?$qxWut z0sAMh)+a1(uz!4g+rx{;O9Mrfb&m>HJ}fKOq$s{neB_fijbL<-VqN6Qoi2sg*+pvCj(;{xMj_Q0@u_*(ND7KspaT9 z9Ot*f$LJkh>T@n)C+t8o5Gn_KW+R6w84}R|f2M1&&?O)CgZ<^`ujZR1a^ylox& zO$vf==x6rambF?&?PFj5`q-VZLT{b;=?vb{-W@7=O0C;aJ0>Z!jypJdpm_OxOw@tf zC_D!+euBPrg=amSkr%Mg*#ol{=s{S?7RKpTN63?M-Fsv;9Jq@+1>zvx0R2b)Bs}w` zg-IGL{27=>w|nQLlBo3Igdstz#AqqiEC3jH$^wn~;q*p%5R*TfR=*M@M|KNbY9`{f zcSjA>S*S0+3fy-JK9L;jna!Ju6YJ4ET+|Cs)54)y`n|(g=g3-UociZ)p zPjF)T*r+6eFbjl`WJuiJIqhorPq+f~v4pbVGi_38eCvjJ(y=4yK>htep67RY+@7M3 z|5oJ=p1=9PB(LnP%NWcIc<8qD)J_I#IQ~$-pdy6L@4Q}u=tGkA14@&O@aSSy&M2Qw zEV#i@Jcnbh@-}w!1N)OD>o&exMq!*Po~sw{mAWZ!+R$%=7j*=gCx6m3a^o=TLV8VIB!|u%$izR zA3{oT21u`Y1N~FE$Gv-TA2;m>wWX{ImW|l^HZalAY7%vJ za!$ASxnBA}@B>gK1hujo%7wdm8|;$3wU3FYz>^6`>dNuYc?IB}5MQ#w|4V5kTGb6D z{$bx4#`yzX21L}Qw)@bR3%F2>Kg6NwMDPdy)~$A^6UmeNM@0Zu z_ey!Eqq{C5vVJ2PqVTLX#ZB1j`K648>dm8bs{(6Nn_(xDVYTa0eh3%;f4a2|n8P}IJ z$->!diL_T8PQQjLt#&eXC`TE4|MG|cc`4qMrt#WED<>h+g7wEN0q`_H4g?6e34_d; zo_?I1TqX;ZR2nO1P!g#6$yx$QB@`U~PqRfk{OD%9~6dyeYgP5mx}(3$?ERvZpJPHh|YC zeUp+mYIPp!uaTY_kL8YXlq6*RQEnzd@m#6&wuBt*geYX7E@3)0I)qawd164I01{}_ zXz@xPyN!59Ov)W${e{f8+Zw>CFdL=BSuvFvGyyBucMTXlbNp?kVx^?^@jh#QbdEPV zV`g#-#*j=m>NT)i%;&E=e)U`qwj2Zc=Z zSKzjDj>>t8b;|2Z=faD_^#P+iYO`dT&Y!0k;?>WWR50JiGf&I)hy^`Lq@kMFnePuZ zLU~ro{CY5?fhkS=39-`*@Z=~dTLeJf>sM~x!hem2 zt>Dqw?v+ky#>db~VZoMNI|(yg$Wt3twfeQm(>2W`A zx4DSxr5`cAsDWx|amq+&c~YZk>Ts4#Sb@26Il~oxTAE9Lwa5F!+TT3%eHp*=6JHZG zBtNE>+tI)6tK#2+Bp;mSJW!`be!qhaR~=?fQ(B1MQVvB+9oss@rhbL}KX=r7Yc5W) zg32sz-Sf!w>NQ@H)V548%oR_Ev%4LqrRa3nu;5h^f9uFTaj3m_diAE1SMa`W3MCxQ zXXgnfkKkg!F-w9s`6FAO@GM6P9-~}&#AcRMY%xNFY-lBKp2H04luXO+s}b%tfwlG> z=kPT#u3GlA;MDql!Rcb35~NPnc_uSyhoLM?N8gad_yXp(4lEHnxqqOuY2>`<3a@eb zC@b+h;aBXPOzng_*?X(#3M3kGalI8HAvFg=r>(hI@?3#z!yuOUWOHhe2JOF4#0xL~ zfhO#Pc6kmXanESNCTBhX#7{cu_VI9rA^|<9AiNI>3C9;98*wR=3N;vTq7tu3UVYKmUA>56c4=$WgijkT<@( zYA2cdt^UwUuaMmh^C%478kn;5*s$<5;E1?<^Y-xg)Zo$O^cT*%vKF9~U85os-}K@B zM_e3shTG22PENc)5C;(h#5X$?kOwHo>lc-|e@szt+=+F%bKJK>Yu~Zorb{%+$o67o zg7-H6PIt=SChIMpNA5Ygl8kb?p`Wa%FAF8EKfFH+4OeG#;E~#WybR@j1QI zF(nmTeuv>d0zFf_eZv>9Y5{P_u%3EirO?TGk$;m=lGsXthb7WNaj4|+LM3JZqEke0 z;{Q&6D2jNc66(=4&yINJP)ZT0HX{OKUIksztM+j++Jg@^rU^#)GOU{1u}Lj@pizJ( zM2Q-@s*x4pk!(F#A{6T>;6vxe`Bjc=503?uI`|rfh-(H8gT3=Ke8fU(r7M%gWRZPS zIyDh|P0~=nR3!7O5r>%~8@8_yA=*lRfj%A2s^^cN5YFlB1aWE$m0T-}Ob4F(X0}Qx z@ikpIz%@lQ=aeq3O2dkzq4xEPiwv81q%^rGi0bE4TXsZi1M(v$$z5I(fR#ifcC;u@ z^@`R1St*n%wd`{0inv@+p{&+G4W?Od0=wXV1gvp#74@1>a!z0-tWI-dBt2JLRW)Ly zI&Lz*v8X&iux)#>Cr3;zt6I?~lmh8to|)3gyL0cLg~BtAON5CxV60mSOxscX zdp!87i3%31+(CCDu|ld{rPvVUJ;(j0>VAvVd%Q+Cj_i+yjd7J@N^??v4|KbLI1knb z!u`{`5!k(Nz-}97uENn_)4TfN!?Dt zk#?@Fc0`wYDugR88)DshS}o<{gHD<0NJV7>y);xWU)q3Z%&Q(BA7S{HcT@t>WTURt zF~?7?#|I)V-L8krtFdVW{^q?y8DZ?^?1XhZZG&Bwd$q^oA=o3UKd45zi)CvP-r9+E zJ682b_D=7s`7bgc+~m)9d1y@*7)}Im?)x?c7QLgl>29t^W3(3^m{EFAPz>zTS$)(r z#~TMcMnVC9OLt{)(FZ1rNc4e)#_Nx$X0gA|_Z2yM5?}=xKI8NrH*1q+4PsE9G3-=c zerME8r{tl2BK;=QGp5mMzTzIZ$)Cs((RrmV3%06ixaBuVhubCD!oighc>`i^Z;g@7e$^&?nnVrrugH@n2nn|+d|=aI>CbMn zK5!gmlmcJ*pa0aP*0l@X4cU?DoqP-#t`6EiIFawMsMl6s-{ZMGGK8yP7CM~sLl$&| zMmY@{ioy>OYtv&eV$UnK6Dr2lb5E`{Z;m-OKY{25r0Z14TnaCw66Ou1EE!n5*@K4M z<35(nj_)Y%t5$BBpXfsI`s@Va+c-1c$NsiPm};FO&H!Btaf<#XbHjFWq1KHTTImeC z?{{JtYGI9i}O<+8c z(4`x^eO0`uIR+!$a*Db}yyh4lhrrp@YlNrIQAz@mbjmg(Pam876;SwxNul73;vGiZ zNqGOX{;2$;5V4klB~G|Up$O9A^+OAOBzUal;tBqvYg_5!@EDX$4AkSshQ&iuv64*d zB&%JqU{Nirym0R$GnAnXr!!PeAdPt_^gLX1BLFMIwPy*4CtF>>y**yOI%F2QJN0Gy z+FPkBqW3GE1IPK>{GYt@UBgyVBx%8Uzdq!&0P?McPFl0kPDXC`1Wb)AT$*4nv$7`9%U>KCMBhUp!(QWe`e4tj3B zhCA1mDcyr(_WNtDybP{SvBYX4OLY-r*1YMwV@Z}*mZDVt5Veom438})6vfLOAsbmm zz2aNp|m}xh?al4m7>G!XS(5V&GBkUreT}NrJXa_-n+UbzXB% z#;ve^Qh=CD;6av1{42jY$ANQ$l_Zhf3aW#%=b;&@O-tza{P!A1`r3uyn`DgEFU8O& zNOvnkS#BGj0=|Xy{`+{t9-o3^ExI>uSlq9S)spS<>U@l-j$}}B>}a!DN&^7Wget*5 z{(X*r^DzT)n{qKVa-=l7D%5iS0sJkLiCZAMx}p{bM=2m zP!heW=ZdQMLcN^IEf_gWK#YXm-$M3+`%{h}|6&#MRuyjXQk}~@?pu^(Z@1`V2Pvkm zkT5k9+xRC*4H|b?xhTbRvw84@6@S$4j4UKUZ-7aGjx1y)ovWW=VkHloHGd zye~Yyip*$s)JRB970FR;xKK>qas_%i_|D&)m-hK`S>N=viv(}_A9|i1E@;UcGOjMj z{nvo!4p14%X#XV^uUaBra3 zH@z+Qs_x1~1p8yuq7-lbJ`>5=jHJY3wknv!b&f8HgI0U8Mc4Y+DnR@RJU6@vzG`^+ zmzITA9FDBcy|BmsX@Atu;GOjPWsZYDr~vvc(CmS6#8mD;sy~&bv?T~R*Nk{^JD70R zzT;=4=cM^b?L?W=E!1n^$h?VANWB6tc!2H-;-p_VWYGvK+wwlP18SD=Spr;DGtrBG%givwwARe50)YdxB^Z~=dJ^j{HCnW z85JeZt^UV>Zgwc=SAjpyJ+3htUA4Ugn~pP#V5_Ft-+kY4Wvr^!{|me@Bq8M96E}yc zOT~w@#ek(r-49i^!D0NPS1dbVC|;G{TeJ3D$18OQ8ei$TBJx7?Uznd(@v3E5v!!os3B`B$s{G&8kn z>e@=vI1u(IbDBvxylasI5_^C8^*z2ho41{ljsxla*<}7U^l-jfVG`=DSNjW~9t%R) zDm@S^(<$_Or9@llJdnA0%L^NK{!=~lK>pDe&wcdCK}YPTK3K5%%@u1F&3}?*hdhh^ zB!>zo=3c<(CC3);_a{*-w%o4>P27>A?8e;d-r%uyJ7k6wm!`4XHQB}4>#A3{9@_P$ zf9y=c6*}!OufFPV24qdAz^68B_w7969^5o`@s8mAV$yeDHt&P4`Qmju9_8L6z*oik_UB432v5XY?Ctph zQ$}<<37Rkg)3DPu#0Gy%S560(Yd?XZM7etVZ>ti4XA9gUMIlE0$Mk0du#eR!K7G_p ze2g{NAKfra^EK5N@`{claK|5HS0q~Lq5Z^E4e3>w+=aSL$1%~6TlndIMj%3P45jiA zxeUa7)9P zbI@2E&xCd+NS<~xKE9^#?h$4oFCav1InNgBj4_xpwt`pId;@xI@aP<4_e{-J^LG4T z*iQ<^I+lo%9(Eaif12H7FEOY3eL1<;OalHfL|nJzn*rtQ0q_xGwM(6$h|>76K@&#* z8uyGbe(QQ{oBYAfteuQW$>$ax8YR7=-(=T5t=c>7@I5D6X}cS*vND^~2i^?4z9%T| zl9X!OZHY?1leJSMXf~Ak{UWrH;}3YxV6u8f9?F8>bBqf}JFX;CNiYrf0P|)e*pGP3 z+hC%_%!xZTUww^i0WJ1^-McM$M?0tL-Gif3eumnC?hyxcY;tey_+F?0n5(7d9h7CF*LaWR<#X|e~LZv9Xt)j48QBqP4t-%2AL~Y2`jV^|9SZK8iRfTIoe>Qr>C!+za z3Gamh!y_o_f6#3=!x?R5U8?+QFWF$bBaog`meqztSo2MgYWtnCKM!&IAGW>ZF}*-5xgr={TUL1UKR-YhJ;Gx8H3E75!o;3%}%F*Fao42Qbwif&o4N z#9leyfa6q`7`%_Zgw%+n7rK19CGPCG8rpZ{D$s=(M}T88Q22TK3Xg{cZ8{8mvi2f; z(v!W&ls!29vs3Vtz>wmNtMa~fhh&Z8rONnJExC6%fOX2y4Vr{DD!UX{bl|=M*i2m2 zNp;1~?=ae{Fyu<{CrQ&k%FjC`caII)T&Q^2h`Qb4as^p=QUC^Q&wHki$6W;ux z?BS?PZ%tpd1k$sKU}$Ajg`O!x4~uD4q=E@6iF)rhLLD40^7VU>8f|D_)_X{gvPiTx z1q{mj#;;U5og-kdx6(`qs_2VVVX8$&XYJ?UkbXY`B z9w+B>Z;7r(qa8W{5{)wZI7Y0Ip88b8P~5@OO}{2Z_zc#p`Kv_Ww~pA=D73B@Zw;`q z^zII$Lgi+(Y%vaRvLna|)$zQpr|Eff(NxQojkbhfJAPMc*JQ92ccnt>FBS#G z-JDJmsJQwiJykIWk6_!CYYcNQ-73kJCn4fkLdPc z#}%|PFzP3wGGCIif^#xvDBBVomkL~664uDV5xPx=A`FRH$hn+eBcU(|&7ceRq|hU% zG{-9)YToWvR}76Lzq`6Al!ZwO5Mo6;s(B%@mZi5uXL^?R4D!x4^g3zwO|eeeMF#cW z2-0W)w0{m251Ivwogt!>Q%V@G(ZGreF9%&VW)w`lcLEi(=s>{;1Gj(NP+S&R$jS7( zJ?uefi3=9ZRb7kg7P8W0pgeljS~P`xHqQ!f`VWedOykyg!O1bh7$$-^`+MC|yG@}i zBY#o7sbLt)D*c(s51OWtB||R7bep3W0@Qlamo=Zve+0M=M^Dp7JHf+=-<-unwN*tC zv^o#;yFN1nh!ErVs~84vxQ9I!D%{irCD_!Uh)h%cDBEmo8tYY6tqx`CR91RwqdXX0 z09CH2=o6HRgZ}+g9z=6_b*`Ox=?TXGVqRzM%9PY>@9<8@SX+T^fL;JG0Mv~tru;$6 z8v;E%`W;&39?`4~wJ>O@e~C&%7DaAKxl80RWmh)oB{=M4HO8U`x8@~)X-4k~Zr8W~ z(bj!!MOpS{-l9d@2UkZ19FU-~WRVL8`Zl4!5VsBpV6Wu6s`{y=GF@}JMU+Y)V)+>@ z-x*bFMyMUp;2T^Z@v79i_sW+Fe7Jj}q)FqvZten{`@Xo2Mtg?%x8D0%@OdkYz`UUY z9Vm|SO*OTMl+`^R`W&>F4%OfYq5Ee6WQx{Mked>x>FE#j?twPWlm&RcImdquw77QR z+>CD938A%!L{7$9#P2@N!)Ig+1fjNmp4<@Y#JbeYP`6TL0g#_^by1k-*WKhbwqbtP zBA#Fs|KON4Im%GWzJ_91Kr(8(4dZl4DF!mfKe6kncE#y-(FyPi#VLMYxW5XH_Na0A z8fM0sqU8dmQhcL|Y#GRu{FU5j(=yXd&`i^5^kt`^^*4Jmw7bzpoCgTzdOfX^Yv!18 zGPRE?F?gHM8 zK6{&Zwx&Z4zC*PR+m%tc5HSTquOtF)XE3>u1Q{ZMAv3p2!#Wy@iRONbBcNyb%Q!L_ zForSRFnNHCj-3(vb#R6m_FgPpR%&vDJ)6q+8<#xR|ye3uN$ue7w7C5&I(}U z8ys@r?!ng-{_!!o<^#P9MNb3J=%}8BUHI04S$a@}f*Mdk)t;$q23UxfN*)5ZToRoA zY;-n9AzU|N%R4%sK@Hs@-f{3j1ll4>eyZ}k_3bMxWhf4U2kn=ttvm(eyA5Sw2P*^! z!K^WktFJc68=Fy6_ua>kX+leQkooZ8>1Dp|N`3z7wbv;XUlH_t^{8Om>0*`Z5;%s- z{LNY2xn)`Nhsjk&;eEYSju8k8g@q{2xSVD%$qoru$2t^6ztBKPFNGm`Sh9I2!x#Z` zYTpv_<~RGPDW2>?rstva5TA?k=19S0=tJVJNg$;-l+9dQc|-rd%EstcL9wEAsWV2i zJ{{QUp<@79r+F2K7H}v z^b~lDQ`@|_zVL*3;uKoXLGXtuHcNVBv%0sp+nD3u0FXNcn}Sh!BYhYPzE;m0x+3imf4->xBY&RxNc8R< zJlqXoCOr11-+UmL)7i>WWrVL#D$3VRI{-G<&k(3o+3J7hb{`3hWl-O^mOyM>z+c zS?RU|z}?V`JlXkWbu3?|8^tXFPDid715MSTWaPG3Pc;(!pSHrTV-Zd39uOC!8d~oa z;TKZnUh@?feHQcIo4qH9;u|fo@AN(;z@pI@{rmGwuuAX|8Sr}C+qu<3V?`D?WuaW!JxVER%lPzW( zx`sT8Yfu|{w}{v{KwN4Aaj&{+9zj)SMgIIaf4Q~(dA{DT?Q$Nmka8-9feq?`W-Pr1>hBnkULUufH#<>v+dp?Vo^epN0d6j}r*}wRtoO-*_!-5Qf?LN9b*#G2)XX-=%z&Jn2Rvq%|^3Wf=Cu$Mz?!c~Ei-9Jp z{P35zyzX*wK$04$WSvwVcgSWhmET!TldD1f32Gh7yPfr6%)R(67~cXnqQTv7KH_@o z^GL0-QJHS=1`<9hiV>)M%kV4Tzb?B^Eq@_$Qk1oAqwCf@wj51L@~iZnc=ZfMxLths z$8>ha>1Sc@n-i`}j$V6)N?n&c2TO)q-5D~sTFLX=4wq3Ct(KTm$)?2_i`N140aaj_ zzV9vxdNdgHSwp_{TY>ua!;Ii&itd1kyQu#{0oM$;>RW*=E6Lw9))xwWY(n*q_5D(jA%TvU z1>BF`C(x!puWrwQ3y8?N9w+Uqkf{}(j zXi1+Q7oe6%70~U92B2cH@#5E$;ol>6g@P=Q#j)f_F*d_NKiGU(9UhZx8l)c(=d^=t zz9qU%qMdEV1bwd2Hoai`7rCX+Dk+U~|FUf@2vng;oDfEQ9hpW~=ala6+|rH~iq z`%vb9FVHUYuq+ZHM6xBmPIvvMOrO&;Jl%N}uk4z*^uG)^&rPt@&5XRF*JC2MU9adQ zYQ6X~4(CDTAIB!Mzo|yt5RFJIx^cjh-^L2QMaIsqtY%lpY~9X;R|GzfW85u(PeQ*G zyv-#7A6)AzU1hoIWvi&r3Be^h3$Z5^=VHWngD4k^EK?$Mlr+V=D);dsP1!A&!IYx` zDb0i*6l!tO8ki@w7i&CkJx%x?mVbkl*mc0dImOLlpQbX`IG-oJ8D{LEaqm=<^R9ub z;3q?8ZJwzg=hiEz29{8c7|)yzm9r19^Fk~>X^PKVoa8m&aA1QJd|~UJv$_01{Cvdd zw|=~Ts6owNBI=a9O!IG*DzT&bS?Cdh`<`bn1MXDzo@_k|fya!0nc)RDA17Q9(I zLtRxXe{N3HOHw&-L1^!gt6t}z>9OviuPyEo~x>Wi{uwca2oHd zo*qDn4^=%L!(f!BV+G2P5K8yp9`Q8$`)ySUI#!^`^_-;0r+z{Imdt>L_WNs8Zz=r4 z^dDt}%+Ou666^zzH`J#MTvBEoV)$1)O;>HYDWe>nCvC7HCm0Y)@Ov?t7{-rxke9V* z5P|vCuV;`h!P7K@d%pHOKjvQuQ@x7Rw6Ae}K0}+}EsX)ayEU0U$&sN3Xn;vIk_~#Y z|Jp?pLd~+QNl@kpPPcKz6)2>h*NxTT#KI+-GyKudD*mc;a{`pCnRx#ChD63UK7!fm zQ^$R^`!=prJ*NxLQG&Zs3tCF|k`pcl3{l>0tFY>Z4r_Q*JuVieGRz{oA;AMLeYrY` z=aYA<%Ege~5F~rmr9{(IO}*RPFDeCkVYK1*CF-#>41usDWLespwam}DH`gLsU&ZUi z6rP`d7q-OE->5e~S-o_{+nB~APaQsq$GU=gYsl_(=%4(-BN2A>);CPmO~_#$qMuy*oEQaVzEL71KPQ-jhAtV}q3!^-O1$az0j< zxP&D9F8WZ}Xsy|{Gh<0xC4IwFZA%ukM6A|!AiDKS@{xZzPp2(^g*B#Ds5RW8{oYb{ z!AcI@G8ouoP_Jn%NwtsjOi*;53e1-xM>kOAZLCo9zAPWDc`_r7|2n_+asI=cOt*+t zt}&~H&zJT(J@DAlprvf*)#tXwwXFSYmRVA!DHHOOFi)!;yC@jS=e$>JvK#CST$9>} zG^4*=i5gm%@rMqW5d6s``;3qChHAtwS+2sqySCUdz^Jwa>r(mqfK)%VzMvztlSnrs zd6)WpJ@=0xWVHg~+UeBXJAD3BuW0u?N`KatxpX*xbH8!5z9{JO*3z|sS-9#R(_L-I>kFmr)5|_jHxItTSYkB z&lVm!D;--N>@9;7Q}yDoZjR_@;?eVLi#Rz+jeesI0Q!X+cre9J`YI*JS^C5!dpF9A z@tnUif8qLj%f=}3W#HK1?5c`G)Gy0V4j&$q#L6AMfHlTY12rVrhDh}1+c&)0`osh0 zu4Wl08Zd6y?swr){#(_<+4=*!NA2qW=kTX5re}r2NLc7&R0od^3<{cJ`dlnqw}IQ8 zeW+2=s|toH_W}e9PP#7QVG^&Y+I-+P?q9HELeBh} zqgNZ;J2lEDnjeS~e!TuudWSje+?KhB$CvJGNro>ou({Rw)CKJhQ9T#c32o+^lC`>x zb-Jec`=YXpQ_B18Fmora7M%z+szYaO2wb8jA!npWe*YiyjblS|%)qL}va~Ws&&RE# zPMz3?OEiWU5nI{>J1Ts{z0L&V661!A)GwDX&<+@_9ckPLfQc}{FntYsL=hgt)Q4Cc z5azTIoyNMH5{)1Bqu=e=i-Af1U8Mkglxd#tn2EXTlw5b#LYvZiI87xIHlSGLS#37m zmi4vhstAhH?(*oQkBw9(6-;ild+MnsD|V|pYMv$cF-%d)v<=%4TCLW3^ypUJ$g=6RUxSI~!SWugPB5 zc)cz4jT=VhyZPi?PREKZ{$2%<@E#h2!)@7=*0z+ z!+|zk^ou*NTZYVN;!JQE!bG@Bn8J6NLq2LmEPG${s~zD?2j(N9(oGYR?HjgzS}I>)55kCLcRNCO&zM)` z7FbfP2Nxx{GqyMSBct@lTdYE!o{3~Jt$4e20;*uKBMdETBPPq43$3$9~(na=~ zMaE(((aM1IzPsm&xP!=&r)aB zRPIjDf825MMc)BgJpRRVZHnJrW%X6lxyK$~-%ohbw0hTVQ_e>_p~ED+&QWuyv>8B? z7}IxT&3-=^Ig*Ne4>3bmyp7*OpQv~D{d$qPpA*CzSoPxw5-Z$Z;EdnJrol1ous}8g z%OYa2!J9-C3?q&!jTM9~py@@%@#HfJlD%~Z)<6jad}Ug9`JEKd15fzf6$EJr4V~Yb zm%nhKM*8^(pzK2q2Q})z0iZI%C>!H@B*m@-MQsO1i_$16*eUOAus;W&dq zfaWL8MPwJTqQmmwGD;Df9B@4GBinIbKb> zv*hO=L&_B1J|&y%93_6K6FdyPbnW;ZK+y(jh;lnR-w@9^8Lmz>XK`poNh$o+HD(t; zz(;_wze+$nv|IWhh$c?QW5aq?Lv4au!-sX;5C*`qgYn*P97UqaH3q%E2ghcf*MtSZiKPU4b~L z3mY(k2gR1XL3T?1@7xdwiHSk=$_0gf1GL=`D())0x5#2m8~oLc;yq||Yb)6)S~~$`<*>XG{o_t-Qzps-vwF>I-)O^8x#4b9@Z0*YOhtBL z2swD@#%9~9`heG3Fs!#AM%GFD%q_6a%tOtuHA^oFTIRAOC~#~*lJ^?zDhdtXOtKG; z&hdB0Abg_JcwPuPLkgcpE51-%irct)-04|e>0|5}$BK9=O!)}XY zYRiUc?jiZfE>|)Wca_=9a+2+!G1we{3EbYhf~T%2ntl+3eQOL)%|X3RIuS@a+|8n8 zXwNJD?2Z0TRGFL+)r`;6JDN_!ESg+#575;P5NnPtbt_DMaDOl6lR@csBP7U=M@Q^j z47Uth--a}guuA0#@~k6?gePBc|5rRKy_yFk+_oi$tUFPV?bRx~I)zHM5w~P(L^%~Z z&SzL`5#K}>Uu^LKtTVXIzwH)KUR4-lWC6Kz467;HcVIbFA+-5uPsZCp+Oku%ug5rp z`>1%uoViq{T9zYDnz1M37kv*g|!Ik2Y3b@hfbuaRobUS`vN>c&&_Nl3} zzq7^^fFDxvzRRhHyQHTi>~6gu_PZJA0KR8ij7hCIJp z+V|J_1+5D$Df8R`hg&F9=4~^ri7FV_fcY2M`3AUe;&RqM+17Yc9bp%>Con&1p>5m6 z2;SWku!Ev`nqLW+%h!Yf9=`|=l~gGQAu@_JLl5Q*hT(_kvfHAz96sOIcnrtMn6_*@pj$$o|!UVBWg$0(0T?V|r=)~hc`N%sT<#f$^ z93^NrQgPzpX&4wcHaqbYIi}+X%#OY}xDIkJwNtq+)>t6tdig_4G^Xa8j^9!s!^hDd zt8|p%UZIiEHfh3BFUZvjdcboH*#mqG@Y%wER5mcH3qi3bzw!B28~n%SZCCZ7;H}Of z4)wX%#nCaW=(JM-x}1_Z?5x#8Bw_+#d(^!Udj{rcc6K?bp<4YmvFY%dSNpNJ4t{X6 z@*um#RVn}$;F(Ha#6=BQZeYGD1IH;F_=>M=Xm$cU#7G*CvknRbKWOZLr{OttrjaG# z#fJc|Sd*mO8vN1Pt3bSwl`Yug?18f-gL$))zGRR0Io^sgDsS;GI_{G0`6nAT^qwQPntl)&CCq$_9*b%-cJ(3i>A!#Syw{&ta4! zAcFE+INKeCekdJt<+bws+3MnoW37ZB!V|uyyOC5*5akhZCOxp(Mxjj_*VX^~Mww+S z5ts__7Y~U!*oa&zT8ux-$pt(SbrL@gf(u8)oQ(XO zY|*TL;jbK7gu)CKPK=Js5s@!%&=2Ih57PcGnEvv2q4dm1p8wVsU&`sEq}cxdoOc?0 zwfc~QQ_qI2twCxoi(Zdq!vQ?1Rhfyb!%n3sM9Of*6*qo08pK#%7Sn$bY~~IeX>tqv zNX2dkf@<`04S6AGc&=82_tq21F)3^%_{NF92{PIHQ}`^`|8aJ(6*<>Lq9TNp`|(2; z#Eaac%oULeG#$+z!O|tL;*%hvMeUH+>o0o^(j-p%P9COOC#ICI5R3?(V29lK?0z&{xN|SiVRv2Du{oBG-l~AhC+9AM=Wk*Sm>xM) z;*N9+ndv=$gyj??7o?rwBVLiG5jKe*7KKFL#O1;7nS+7G#V^F^NB(4h?Cfr;0lnUC zP{%g}?A?(UwYw?LW5`9^Ryg9N5LbejQH(C(htdTT?+$1At5+L}*r3D(4MdSxpZ%Qi zj#aVh+UTNDZBGTE(6Uu0d_pSkX!UtB&7&z}N_ex^{DgP=*Dl2??&)9*T#a_h_sjw8 zAzu0Ft4l+5o}{!d3+c-VdVp556>;Fiso9;!6ho!YZQ^5SeI8 z4?uQ$f-uQ-;z^62O%|0E7#s<|Pd~!D2ggncp1g!c#>uU(i0JWkdQ(;9nuw}>izaP@ zUYA9fOcZDMMzG533OeVr-IW^u2!VZ{&5o?5cRidhI~S7hmIf5Sa4@vLPO3PY&34=3C( zEP8--CXt1CZ$z-JQ-6l@id|^@+PxV~Oa~_u0uj}dkv6X2lwic|H@oE;uA3ay zMP~hM2K`uROIc!9U}|9(+4*l=_#+)bRlK-=Sb%)YGxTSflbyir3_}fg?^tG6DXv)I z1w`*))tB#3*f#@sx3F8Z)ZCx}&&EHM^}8qTllV7vLeXtPgz4^Qd6L-EKrnF??zUT( z>ixCPBm^|v7I?}06Uk$l>OR5Scl)P{OTRhT8V|DNh(c`{tD@dD?G6l_x;yA4Pp$UM z{CL#SLtb1R+}-X~s7ct?U=06<@62X;?~@nHgawL({c}ilDy?v?82SV7pboFKDW?q^;oDMsf0seHw=T!85pN z$LTrVu%qM3QsU_u+~~&=L}SF{x5?=p*9_@`Eb;5?qc!d(0~`symjY|no}40c&5njE zfmantGcNCOfNM%2ks_h|>bPN>qxjJ5c=@sz7j*03!u6Z-qodUMdz@+igu^gm*@(09 zuLs8_7|r&LGvGB6AJs|(VrUiUok5*iJnnk63ehkgmF^e+?xEtpA*f`B`|r z(%-x)=YAX}TG$U(`UZBB{IouFMI$|5V2!nyaYNq*o7WkUFY>dmAc2)Bfjd{sCG!a( z+J?QlVnn|~*7$NrfnX2v4yTV^AeAKov~0?v*a(=1Xn&K2m9a^|PrrtOSd$zp2fR`8 zU?U!wSpOT^Wo(g_>|r#1Fm75^@bL(<>*P=GoTK94@uuvErn~ctm7L(Yjx@is7UIOD z26=*I2%Wei*$zJu_NkaE;~$QI+mKfASQjTr-wZ4nI_Jv?WWoiNGgIhpqkQ@DZD)c* zDksVEzzH|Ej_a4C5ZVZh6J-u#Ele1ySqtAamPo z8*^K9FHWmu!s5Ohqe_2P^lDobp&(5mMuK_IY4my**7~8pfLn?;{j3fiOXm5V&D80c7s3#T1&F=XXYA zCYv-oWQPqe_Y~h0RWHZ=ASOW9Y`AtGFsgyoB}Y3oK3f0kx6)I!HGSCslynz%O*%@K zq_2Lg@>u1o)?!`na$!-s(04V-7Cs*{cS?m8A7-RRg?keoCb`&!nPz%if!+Zv`UTFp zS;0>16vE6$$01U;-{u-*tUX1dZrl-GvFT?G=Oz<~le%X(hdO#9V=rcKo4BuXvq+%4 z8v8NA{0@j)<=O{aU2XqjrzM|V;t=XE(IjLkVbT6_MUH{{pzMp<;*WtP<5z49T{`~$ z%QEyO*ZHh9j1PN%t(xh-AlvSmh-TNtsNkG*y3TbJn5SDun2z&f%&w%GOyRY86N$QN zOK&*Z34?4UnVDF$73TF$(_Qi(-Em)@+i}6aPY=P$N~|x~s0C~D-8vuDCYEX^`Ji5N za!qhDzj#2V!TD z&8CBm5_R~_+!Nl`mYLo>g-@_LO7j(~gUL}Uy6Lv;UTJzGv216iFZ--{P5MEn{jF08 zXSP$9mn{tB#~kpsI+;(hRJ-b@G_58~jVt|lYvFi{RP;4SSup}x3Og= zd2jHNq4P#x{g-6zF1S3SwvTsVsDMDy61mZrbs+EL8*B+9@_!ZB_?z;|Wm|(2qJPIz zR~Af9h_J1muPy%Mjf5<>BqOZg25;H&q@@=vT+*bSq^{G@UuQIFHkEc?@b10ASo5T^ z500O5yID(%YUXi{<09&ExV?PWx*QJIbqy0}`dfQO(w#FZ7;o5Ra~54|ez`R`oQfNLqgNi!;y3*ZS(#cRk z%R}qUp?yeU@z{b}RNVnSKhCiuHMY>?eYTv;vJL7L8?zeesd2Zgr^7D0HCkOw6;EGi+Nk+P1tlkIkezN`jy} zOZ#BayttsL(e0eZ#XU90iSF5%YohCl{LC)o#9sOwDJi$!PO=uI=cwTJwxV3@V!wG? z{W@cQ4Aefq+6lLmhx%L9=KM^*qK|^#dhgO3L#|Q9jwg1!^nEy%c&T2i--#Gg-rw2v zKLs-pi>H1iZ5xX2y9#C=$#mO*T0Jf&Y!3VHju{7H8nWGR?eFWf zqc(g`-0L})#e&RwSTJrRw<`ZU)*M#}K1Jk7&8o4(yuOk5*>@eqG98fF_fk5DqH^Q$ zHJ%X}Ad#+^Uj-$%-s6Bu7Tvdw23DaB04L1bv&!xu?|yjR5Z5tH`ETFjwa&dE3?qg{ zP8Wna<-ffie?1W-Nd2nZ+sqLaoGM+b6H@9HH1~H}2vm&FjM7f)kRkyBF*bR(D^OQC zGg+}g?U~s>BpNxu9$c8e*eCy>GiX9fSLvKo?Wn^bUq_!V=s5#V1+KowzqlVaNK z*lZ&e4|*iN7b)lg6x6$W2GoxR+o`Ah@@isjSOpHC^Wy$y4~i}AY5r#67+n!qQWl;f z5U%J;Rj=9Es9cMI2WO5q+uvZ?&iP#SIg9L2!8W@=qpKP#-~QnT%^P!^_zKxn%(pq6 zk>+73Via~LHh1VqOt@xHTh<6XMt^NO)Z_88BYqHk0xbS&GBODF;p}B`e_?Ct*l#t3 z3F?uePSi!}W6}C*$B}AElM1r!!WGvSA?98K-L$ZcPf*v7I-s-q>KmHl3T@tgPbJqY z0Gz`>XM{xZTU`+T^J%_0@ci(=DP?wLqnAY3{_t0tSJ0DwFLpA}?@YsOJ6-Xf3dYG< zl#7_Wd}}i2z)>DImQ}iO@Gf(1{lEpeb8$y>TxZ|}rt!y86{(wT;Z@7`fQ3=*ehkHM zXU0*7xyZU+G^}<~i;l=w?}XDOMe~U8-2AOZ|7+@-NMU9)WnSCPb^6U*N(<-O z!6F-hqv|3KG;NK3)#XoCCx)iGniK#~vleajJ41W|rRW)hw-|}5icLo5!;`jvM&Vx#dMnl*Gbvv8P^~ya1r(41-yPS8^V>JNN`ONE z;W|(GM?C+(BcXE~C~|gcuzo6{$LpG+L4$e~3%VYYpWmTG)kGH9P3h=1!A0RwI>mW3 zp*J@G>3NCYfS#0%GAGE8;t}S%3-UkS(6QYeX&${0%$`P#s4Sl>D7PwmMYVFlQJ2A)Q{_QGB{p_0j=sZWqmM%7Z zBwM}(REhD1p9O?@gAW*Mx&l+*h-j#O+$1>C5Kx;Ip4p9}_pl$N5YIsc%w+Dx%O~j% zu49>=X$gxZ4?2+=Io$-$R?$mFvKc)Id%97OZW(h@{t99(oQHPopC4?Y5<|BX@Q1LR z#Ju)_;oHIm+v1^@dsnsl_j>R6(@5T2Of0;G_$UYYy{OF|be`pypcs%z0QAV`58y08U+g zDK99IEuFu72c5Od-+8jyjIM=T(1$RlD0skEoFJ5(Df&qGe}~+C#KTZtH21+}ZYCSU;%?Zq0vi3Vzq~wP82{V2_6VJySj&=C1sh2)L{*ad(MtiX z9#03;U(JWoR(;HPcY}7Ds=H3C{7{uxXbhMu=3sKdcRz=(xQ98iDpwU{i~wDQihEjb zi^~hgL@twNMITloNJn^~FAO=?1kvnz6U{xtmMdtw;^f$ZrhpV;eBPl2vmq5?glNP? z#K5{jAn6_wh#;<)p9*}Yw%?uGZW*QLLJhT*>M9_IZ8gL*F#Hk1b}k`-YU)yvDn%2K z$-Ngtk7Go-zqqMOveC3k?WuDbF1a9?@2zBa*Lk~0=x=yb;}#fIsA1Idr!xh>4sr{x zvFbiqWHY0n=OE@>LP@Iu=3nXLZ@Zy1gx^>1z^=3fqzsYEeyK14Tg=?ARD8!yBBShODMw?+e)?I&kX&6k*V}M!~L0hX{{lyNTp%d30<7-2AmBm zY>S-Poy+cmCm-&<1fsA^Z37PF>~tv?i_Jc=R)y7u#by$uwqKSfg)$7%e~8hIFm1!| zXJ_=e^){$5KeI%sskprag~tWg5l~Gb9;i7LPc&7!S_DAycaGzswf@X7#nNFJL>|`YepU2OJ76fS0sFIyg! zZ-{d#uPy~Mii5DJ@}Pb3UzYV_QQP6iBi)7V8(C_Fz9Y+@1cue%e!Y(MlGYXg11qE@KId0LUkc zDiM4?XCp}IZl_cSr&e{e%6~$CDT~JAYw%LS7A#a~@Tq(7i%^NK-(6KG|Npn83V$sD zhG=ag_W%+%Dbz-BL1_6V@{kaU0@tcM+~GO|t}pc4SE0W%FB)00ZmXUv4-TYjUctLK z*ZVb8EB;Z}p9op@8oyLr?7fa?7PL2|(=ObUO7+`&{P4k5&;Z@=S&Z?wFZ`+z?^%ss z9$Vc+ArahD6f=jP3+Dj?dy2@n#xN)#A?jgp$8cich(a2L1s5;4<-Idj-#4-CEArDu=7yekqdVUw|(!Y{;Y2uv~ zi5g+zN>?!W=)${wbicaUQ67>sOPMq%`1|D<0WPBA;nkcjlL5og$wD<3PM46!+vOUt zX}p3I_<@%DYj^kWrMBeoRJ=bQK@$v%;(ijT0vCSOAs2w5!Q&$sac%? z_XW5W$8mlyA?RG<>FGY<%# zL?vV~LVm!XAHpxmkVvI(CW0~&_2Kt|$VLva*9~+m-s5^o>#IhX6Pq;X#+tT^fa0w| z04&Uba=s=uytphl%C@H4okK@6HTX`9{je=D=+LYo5jG7@a(MpYW_)mz#=A6je4dJX zYqZe3d)=QcAwwuLDeMSeR{j3Y^WfuQOgi*Vfcq>-tc~4ZnOco{Gs}ji*I|?EE$rMK zxis1O8VPhk`b!@`2cN1(8XP=s_n)6w+OfOPyb|QHoliaA?rO5I4qv>^8?u^N(i*#i;Aw zT`EWo+;n1+{({rl0x9X8E{T7&aJ*?RogZm|>A2aBc9q!qGaR5IML)qAwRx)01e~Uk zU@85P&-(e6s*&>GYK+;I-q?o9TUV40fTaP{3}*Ba6oUwgu-Hr`n~JLaTm??>B;p1P zYpgoxD#w@Fh+C&h{>BtcwFS06oDWp=iB7zF=nER*s2{bydK0Yl>UPvNVrci8?6K*R z&;eob$h~oTV=WOpS2M;-H`M%F`+R1DHaz)-A?9G%`*f)zWdAKpfp-O{>pw921p0+h zOx&0d^U-yMRdMN8@2+595wfp5c5v4ZO4dtfpca1q;SW!FEprAC?GoYGJA$Qm;fEM4 z&A5sg4D0c`ZHUU53XUa@d9D9MU3ITC$sqWFTH|ea?ZY^k%eh5 zO{a((E;40ao$s*KN$Q)TC`Dl%CoF~zgK&QU(QKa3(1&apa9W!NEH=-_dc;JSfuX$U1Kk`j)pide!UUayadozOV<^CNq8<>z7`c?-ux z7uFHwPe{bcd~26>=ap23B!-nZQiPYLi>LeC+ITA*{$kvW@k-W@a~y6fIA{!qes=7m zY#8Bfb5-nJCeJjQPA@cX!otN`6Zf)cQbj`k0>bx!Sts!*D;2xgl2v zW?42M5f8%8IDAZ}?}+^R)R4%-Su}5%ng7akp#>i+cEAdrhB}DPxc4PKNdSl2s*h<@ z1l?}w)qY^eB_Icj2j{~NDK~Ohp%?-#|J1OKE8-2=S&juB||wp{s!3G8WlZs&VyDBH0`pPaE{0O1l{(m(ib<2=7v zFzxM(NG1Ttc#DP1qDJ(9_vil@JGD+ZOPz<)a#0mA{$4g3q>7 zwfHk=Nkll{O1#no!(JoA=lUFl8nxp*$Ty#(Vy^1to)Tuv)ew(6P{xfGDrs9!K>ed@ z#kIY4YoYi9vX&72G&{7H4Zg$7m;PQ3R#a^zw0RQUCECO{`{WU7OaznNC+);P%~0De z^31V|E=ci8Mxq7Jysni?lQp22`^eM)Xu7@s}$pCv!$ z{c%Hoo|^;q*^;N&nPiYc&%&wvRAzTuUU1}&MzV2xyi$c_SfyXHb6`+-WfT&3Lna6O zv4dHU8y?wfuP1-FqT27|Qq~_MK%TJ}RlT1x9;!L}M;ncP+M4gPqECQDhNrn}Bv>-M zv;l>1jBv3tf-FURC9x4dEO?xb1>C7%r4n&{YJiRZ)-ba%M>`9WjT7#x0t8wkF8!i5(B$TH=BujOe zAAatFciW_Bq)DG+Shszx;ormD`i7Rb8oLFBoL`dz5}*^3{&u?Owcfok z&Z^~94Qi%p?Zm?72lp!SgSzG46SqF{WR``@Z$7Z9K}+i1F1XITc~n)mb1z+!ir5G< z{f#e+Zw8(^1W7KhJ>O6nt&Vo~2uf=v@?#cMMOyznj82|}BWA)*1Aht%nKJk%@mf$+ z@N8z0=;y%2kxciVZx>P>Ss{g2d1QV*yh2i}0C>GImH3|xsDt2S)eCIFh91$U9+Ga@ z8AtAw`aYetWJn*2q7D=XV&boHLhipq=>BU|V&tihkH}~4l3FJLgXb+Dc38ga#(~lW zvh~^CF$Xj3*2_DQh0c$?NDrBplZ-n5PId-(mIT62bMm8n@^L(aOwJ^T?S@P3{=L^l z@$T-Y*1f;1X8g-(q2dA9?+g%T!f1!~kkD0g=Qv%N z1m+ptU)WkGu8Z|W`m>nrBIxG-Qd!vPQR_dWieM{xH4Ya zaId7h=yO@{<3HAsCx!}b`OW&_CBBcxv-h!3W2A+CO6;>a$s4cB5x>LmG*@ zmjsY|Y0v3t18^gCB%mps8gFVB1O<&^JU-a?`=#N!oh0BM{mC`dBjkNaZJvM7r-86Y zE|!y##m<0&MQz09`{T?g_fJr0UJvb&XI*a>J9p-OirUE=lRj(Eq1(m}tuVqGqHBbm z{rq&PZYO5{Bko+&FrvK^0JDIpwf-LmrwS@{&;Fi0IGQ5AO+$YgQn1p3>z0kI!LWJ! zSjoV_@meA^ZVwJwm4&v|cwtG#jZ{b%%!k!bT&}40bSqQ>JHVl`Pg9pXEY8 zg%r>)9(Pd>AX!hs*egFaACqo9r@}Va;EQoO&Rlfq!PuQFpFn;fqe2Bsa%3d8C1?H? z=xDR4d5XDUBDT{$spk|9%xOD1p_C6+91)hhF^TV|_2JqUKcq1JRdA16Mt|F;r!MJN zA*DA&qzyT3pwX;175I|r%!W$buFju_k=W5CdSl`Gf9rIO8>ajd}A zmMMZp3PIRiBvkkF=v-+OsW3|VD&HjYallxcy!rip-l|P=k(&6^$Wad7MCng|$2GT( z)uFDAW>s(!5xLJUnj?=Hl&4fqv|iHoSf4G|1bbq`dh^2f4_u&i19{}rL%;Nn;hP^~ zuC|J&0Hl!mC$6M&ow29U9jn{1!t_GP$=(~q74O@$>;5AV%#SpM`!RzeV5lL}770Rr z*5~L`j;bcfvkMy9o_ax?{442%ps=4~PUKR)HAPyFeoO=GDI^dyiuFwi;S*)91&2rd zQrTt01BKHQIoW3KC%gLdJEha7E{V2ugaUTp_7Ab`J7yf2+@EmnIVk|LXI(Z1d?!bdH&oNnP%CBn4#cbxoziIrO%*Y50raW`(sA}MvM-P|`EmJCw zK2czX%afkZ5-+&6;`GE-Y?g#Nj`MIZbvG_q)|Q3q%0G32Ig!ad1ndq7dEm(%EwQL(}N1LLX_J9`FayA=JBA%Oo`;{XX8C1=bJg`C=iqc z1>0Sbz9LLz@Nwv4SY-)I*1Gi<^s9X{8;nSQ)k#XFXg>QRzjj7 zP@$cn66DWD@~lJV8ZZnMnQIr&IK|R^p2QeLzE+->p_AvmcYwJ9XkzvtKq) z0d2gnEu(*Hl>Q73H1bgWdvPz3@Imjl+4nLn|nMc^A27M%cHAz_YG8KV$;j`WiU>b$ui$Gm)kEm0$5pG6M zsK)p~JX8+NqCW#w06&XKXnMU0z7x2;s~>>}v!)-l$CDDcgT`Q30Tf6=o3`SS!i==O z+WMtiKdQn@!lKnm^_KxHV^xLssaHEsYG#t_o+YtkxLE}PDVE;n$zY!|i~+EaLfm!O z&DwnFHZ26n2@|CW(TW=^>eQjz*aVyM30>KX_3)s)GWw%euXMei(>kv8txNQ1(`R87QP9j5e{D9saDw}*eqbA8 zOsIK`{NYXy`~@xe1eES{pR+ZYR%LW{JsMIOfEXtpKiuJk6PMoujlv}(vkDNKBY8@J z@P%R%M}uy|-5TaRdg~FBEce%}s*@G&@TAU<&_DpAcKKd7I=lxhNNf2bRv_oPJ!`u~O>=?_+=#1M}jQONEg zOlxBK!c11jag@eG*pU|fC=Uo1HcHsQ3yJ>p5KY8r47owHBW65?U1B4M7gq$qBP%$> z{;|s^U$NUlf1R5}gzSvn3nFQLi)=5YaZ&+;hN^%sTO-=tdsb+^tF?x^2B7w=`R zxV{M4&*L|a6p#TRvj|xQiPH)mEn}zJayr$Hwt3ts_KDZDenf zXV{M=H_7ZTyYW&fq{QV!^L<*IR zEEj(X6_^PBv|1rju=sKQk8c|8f4_^eGd~fPOLj9r{bz6lnjyP#UvR&DoD#bWqWYiD zfUpiB*Y)fFB4nk2ye#oEIA22}pMv?k#C=Jyv2*ca!)+Xgi&!HVxbZhOgi?R@*1@n-Sc#sAeV) z-4LI8goLmyoPLJ7DeTZh<+pG~&8<7k9WRv%r)wg<&qywV$?SySy&h)HIUNVN%G z;}A^oG6soC!$8v3fydQI*aa2^5`*+QQru{=n7mQ%z)f@J(}*z)F7^3AfPEk}#QDvL z$)G?7ID$ZpVFmRL&jOe=M+B%)_ZTrNzbAo62;}0xCMe1;|d$>u(J=2deydE#9Z016L*h?{P9FhL6q zCgDW@qU_~?bIsq3cfJ!O>MpfyO)?0bHYvpEq+1u<4`OJwt4UvI{Nf;o+iy)~If@iF zaN)_?$ctyZ=01|JOOcnGBJy#fVw+ z-9CZv=Ao&IpJc*=9SJCjimUX0uGSFnZCL=(WB_o?v= z`$iR~-!UkXe~%pt-wEEV9O8=|fI*`?!524#O^wZQH)v1MocH5AUMz*nN@FjSM20|3A~4K?GJRN~^1f(Hh?;?y79r`$xU)gD+VCIg{a z%CoM?9H#l`BDhDX21yiqx)F$Xc|tfA=Wyb2T{2PteC7iV_rCg3UZN2;D;GJxvj=hw z@=xGhSno39ad;GgsH#%=|K*hE&tol^%s6x2I{zQ828SNE{*YH#gZ`L!-Q#b}b07P& zS_>!@Fl9Uyx0elqxk#K@zi{1-EyuiyS>MyVyziyJs3d-2KT9)=D7Zj6{ z7fU~U0r64TWs?joV`t#3Qmy&Vt(&j0?3aUrtdTqgbHX_WX@4SD2HRzHBJ$wZ*j+p&B|Z zJSi>v;T5X6nM~mYtFx3Y_m&7bPluamBgdRvu*L1;7XY=2TEXuTE{nB=zAX3?p0ZmI zkJ-q*8)^9Q+*C5R&DOKJ<0+qxoT*g}dogmUxl9iq>f0@B((PLmK2 zDHqGhsf5(LO(&3w(Dq*d=>!-a#GjN~H`Qhn!Vc7thy~TNw915rLOF2W?50i8BK$D-|?g+USECj8wIv>53>I7WM!!Ld$32*0c$V zF;JQ2eLnRNjSyf(6b>hg2_MRb)&)Trz!WewFFd($irUiVubJsRr)soPxU$5PbI7%9 z#d9t$FC-E~dg8~Ieec#Eh=u`eU};>Q3ir`-wpCx7k>ZRfhKU<01~^@#L?Q%HOj_%t z_Vl`&fEH+un=aivW{4dJgV=!%M}vxN{LXhp8e#F&Q*=#R9$X{&^1btNPJR6 zQTYHS;E?^j85aFFcw8?vbOn?T*%(dzS*@a4bE#QmgMvTq(U zs`azUkQ};}*1|SwqfsB@8ln(s2BruVIDF{+^%6Q zjuK`r^-&u^k4kXDGrAO_>=CVXaoVAC+6HXO49v{d_d zMi_>P{3Ca4l%A9REIkSiL`^^v9MNYFPVK@OKa86%WWF%eRxKRM5`OJ&QB(GM)&6D> z9f8WOHrzxBfr2cKa?+E0zRn5td;-A>X!W6(R!f0$CnC>W=-#;NzSxmKoI?6B*BzM6 zfYl|BIFobW&Pwyj=n>;}O>+6e?i~d zB~S!~uVh+$n2~n0&I@%_qw$|@kDhVagSu0h?VaX?}Y*M zz}NKFEhm(w8SNNRx!8$ZN0FJeZ-lD*TFf_APCU zGVf!BOB@XRvscNQHHVJ#AHxzFO4W>=R_x1|dp4u{A8TZlM}3hnyiwfs!gXoemFSON zICtT3phmms={=%*e_gZAdd7M#N*!9Du^jqE(p~iZQ;3{q54+vWWgJN=b0}p-M}tee ze#XEInTcenQtXAXaba5V`uVE4mKwxP(=bvt)6Pr@krlB~8Vk2;nhF?i(xQ30XjuMX zwKoK@x4h-;o>C)94A#E+H*HXE3zcFfpS;nwAnM51p_Dd67L<(-`~{QKPf zMKigXvJHW5PK2$`KR{csd5;4{G~n)SZXW+gmS~uX_gVIm>P)_Bsef}!41`488ByEo zx{~#?zrv@1Xuzv{VleuDpE;GKBLB3fA_mfEnkitN;|BHy?3(mwbL{Q3H6PR--t@ii<Hcb@he&T^{)iVcDLW|)Q6Wli*qs^!nL zk=t7^BKFp=Af^2airtN!gYdC3yZT|72Z2kLqE;c^o-+eFTfz~w*dEjv=#Vdix13-?_^>zywLwS;3hYy4&Z(dPrAk~ zyO|G9h?5JuvMpp`w>5Xe%j%TWPSJa#`ybdg&(}<%4zKWwpT(5^OMr9TXK_brd-FCV zR4|&%P)snEsZdCkTFk3-XR*tuI3YH_J$Q)UQaBIbZs&nb8i@6R#}ts_5T|dsPuraV zgEVg~LO;>essigI`g0FrW{|Z^d&GDlftx1V?yO)+~0GDyU|_2Y}Iw!aXQG=OTbRCg(x81~5mV?*9iiH~P8ZL5R8bCkT5B@klxm zfr>bX@Y>i6<4CW!5yOsJFba}^=9$tqWPMf%DdPln=|l`_Y2_#MJd(fR!8qyblt$T& z&wUWsMgj>D#jPzodD`vTB0n}ngk;r?*nA_tLaLAA^}+`6B06dKk2 zMbRo$r}RmW8P~pD(9Z_`O0L={v;1+G6+@U^R`7F`fzC)9tAxg97j|6nYQsLSLPhO| z+wV+i=QJ{n?*h%^)N^!&QNGA+|1@A@81BR4R#)}+l_?~M{_(1yGN$9V{EMGrmRjk^#sNLOLZ=t#RGvI-J4bVAF5?E$>e3gSei^L#pD&gi0Hcq zSZ1`eFM*Oj%?>yqH4R;mKWe*G=b7n1Uum-Y6uMI1i74H2PZtxrh>>HaWg`mfGZzBX zz3AC+S^lM?bd-8GY+ggy6J{U0UqI3w`wd&PQQPW$StG2zi<*3Qajb7lA%{Za$v}l= zg5`l-A{To^n~odCoA%wHEB90)2WS5c)+cNff`75TH-2giFjq3`6O&Mx_p*I?yP2y1_ohZ7y>$19V+ zoMwW3-UD>2?bdRn9Y|BWp2xh8FHiuu;n8pnw2NV&pko!_8-XfuoD<&bC;N24b5M%6 zT*YObI)qDM98Z>9Gz5~jX;PjfHK}!ey4V3V5bn+6t{V+Meb-ei zu{cE)kS%TEBzdI=>f8UsZNu?>j1M)mwIOdjSROvnixT+QaV}v~1B)BidP@q7F84FA zY?)0GjSAZer$Q$W5Q$^Yl3{`S*F|8ZcD_@zm7KojgY*|Z*<)y!X&Z6iY>HLg-{Hc3A!X2eB;5t#Y9QbY9 z2p#RD?U_y3eIHz~IkOJ&ar@@8>O8aR?-y)?W|ZwPpv?j`+T^9%A_PiwhD$4u*6AQg zXCxy-OG;-U200O~K{-b;Se62-&wf@&e~<1Qj!D zfY%}t5^pImHE-zvauXv!j_J;=B#AL_M!9qFi5`bfIs+*5&ol}&QcbY?FT<7`Ig6=8 zHQ+v=egn;3W?V;;+jGrv*JQpwtAy?kKm&yxG@CieN0oDeu;PQG&gNo{{49p>>oEeq zrdb~DpAd%=1N*!6HYe^CNVXQ=C);gNt%Dz&LC;dGZFO*1$ZlaxR+_c)i8xut)>vVU)!#`BEiJXEe(o;cDU~ z#Ux%qULY`|M|TNaETB6WL#Rl1o}US_y)%Y--7kn%adg~BTiz>C97iOe=HQ#s#JeT| z42;d1CN%N=_Ps$1!(^c=l?_=nM&pH9O^`zsmX0x+aH{qQIgV512l)*JNr3m(%x zR`BO4#U_qvUn)c#!Vs6IRy@9oPiKx~G2iVa#s{_>c32SPiU$l5nqWp(E&l|atMB|3 zJP9QP1Tx2#15SmV2nIGXO*Zfr0Xd7BjHWlHR?5OswN#|xE|fwPK|oM#+q+7u7`cNi zjV!sBd7;P^!Jtf>r)n zfRyz+w33IG`rH|o(R&{cWSvPEwzWU~a11CY&2c%swk?If2s-O)s6TEDSl%NRJA)+g z{gwEqFGA4|ZBA*cDfz2Y@Xh>bnV#!z_%P(7^>3FQ+trErG^WlWftg)i@}C0JBzi6# zCi~JGukYr=zBXt%|NOw7+3mLQ+9fUyJqdQjlPS5YmK zkAWU`*oL{-Z}e*x=XelkQADKnPquO8WCqrcjbZfkWd)@{Qpau>B*7<$9a(_tfMMES zOK4{tcyxWD5Y3Y%-wiU;6j>=OcJ#>z_$uf_z#Qi%{5w#*$4!=|z;I6fowQkp;G&|x zz_!RyQ@zU#NnypzJTI}|9U2tMUkPG%by`tPgB7%*DeG7s0)0ENrqTE(j01>O?=dXf z*!T;^M}D^&TFEoTRdt~&4i3DEOG8NTQ*Oz_YoVaieD!9=_(xU226~^^{iIqY2%=*} z?Xtumpe4Gs(Fw?A;$o)Skqp|@X9}g*=Gdu-J+z7%lawpk5XbisH(_6SwWFw03PQ{5 zmSdG<)lh>mDu1UU)EP!&WN}yFZP?OA&h=`4|C~!)+;^iqz3~r1*CEbms&pZvf(D=1 zRa}94bdStG4~+a!A;P`ZTV_e9T_j)qnxII{Eq^AmDlwOJH|>2rR+Et0sQlE`=9U;? z*yU+>=x)6#ZZXF|stZWM3r{<#_%9u$TiQjNOxss3qc@N7PwZ@J^|~?|FAw+lyU4eA zXVH=6B<=eh@gG~Jo=Qcmp1!F6`jx-Tl*Zn2Yd$icBmPU(zDLa?A*2}mO9)d`@yXlG`ck&_na6+n9aaB4YQkujCbi}eRIHKpde+Ib5 z-+p0^ISx}kTQ-*cjSz3OAu2Z%OkGhO8pL<<@$H|eNBH2iEFzc?vuaeON6+%+yqF! z6FxtvoKtipSJHrx1fyj1(BD8hEsUuu* z3F>WWYZaFPBqaX;|Ob_W;g+=scA9; z`==@d-tl2mH<)E1@D}VEORLtt_VSrR`a2a_`&Ar&c!GCy?s1(heSV!%;rx^rV}l{Z z)abaTIu@ypQC@)?vw2lIm)L2JDQ2D~d$pTAERyP#nH$I?(ps`xu@Ey$I3H$v;m*F}El#R8tI|zVT?Trjg8uKU9=kfcK2`=!prpca6v9E`0Jvsp zH^FDC9|0&<%Rr0Nj(19$967;t+^N6bQTd!QU&;+~H&r?_rCDjAvk*5dC0jw8I55GR zt!fkRe6x}SFSSl)qfl_CSHEDzPT@waVucto*O*5(PCDu&FxF20;3h*dPs@F;5QkqR zzX$?iviILky7#K!FaLq^VYQ5HQRICkEOEGOQt^jpvpzdP{5sX7wPGyQt40wEXdIL{ z7-J+63h~K05^199^R}(+mi!1LWfJevt2>m$wv~YwJ%Oik^Z}ny@<8~Hk5-jPB2D{Y z86|sW5yjDJ4BGIw@xxs^Ggm!P0Z9XcYeGHc{UZDc#lL8~EY#Uuf8C@vGDPmiB=XLh zQUi443&p$%`jRWRb=%icL4%WVL{PgTuanPH`JZLZ!n{m#tsqYMaWj-NI6XthE=m75 zTH!^h_q0J74u2Ka*XTW!>xHF*)#-|<$kMSjYvZPCkay1nr2ZYiNF!Kf1lwC;rQ=F` zhN=cFqAp7OoDrDJC0kHqvS6qw-Lh|v>#cMoy!hw0U~k(Lv#kL4jJ~xh#{k`%_sIDL z#}6&)O9gCP`PzZ@WzT9;K4?pdEN6skD|O<1bJMWTL@<`Wk%V8w(MQrBWc4TAJ8t>q zE{+T>Uh$SqZAuYz>ET>nV5nNDe}on`Nfy(2^T4A5H(6F3 zFo3y+$)@8iTkle@-5ya?B(?K(`%$E)cK7gDtKt>-m&KwZ=Wu30QEg^xbONo0ZRr}W1Fpbf=vE~4 znJuIHBtPTLwf{o-3ST#zKfbMuoMV-5-dk}s=NHLN6gyg`XNCppw*8kM&^Vc!p73^! z`9!u!-x7KdVIw~AzyF2YZDmPDF=v$@iCovz;d>!N?UFo2MtUJDERiVvbwCoAU|7Zb z5{?0C7F#a4f*9)y0(A}_f24xjyPa%ra@nlh3`x}T%a7-W1b=DXH6AR#NHYGB^;K&H z^^)7YyhF`b{C4Q?8IYDB{|Z{(VHTc@YTLC=E#muH<$shiF68DbX{ z^Y07$LBiMBq0!-+JePzvaa?ESYt$XJO^+zPTr`dnF0`I52kA;91oBiRbh$mOJ0CZF zC(i~gyDGkAPX4(9s1foHnnTBVM~CxA%#4K&;xo$`%bM!!!u@Jug{>0@4lRb?JUG!h zOTKn2l0!Y5>fFZ*Tejs{usod@Fj z>oF9hb%V@1UXNH#jmI&?_Q>;>gxBv{`*l0k6jk93_d{}^;uM((dBA_W7qJoKzKvN+Bm$>bXf zw{Y3GnJt+46ImIVSLwA;%8y!|6iWw*M?0+p!lIHDpEd{c_0?ZLdk_efw;bJ zl2`|%a~l^Pwp#;hE4yN5e4>Q-8LxM6g75=3yD52#(Wo31MV3RijtAAb>~uihZtT6$ zIqemK#&!30z)+8NoGtN;lKO1*!;gj`|pq0B1Ss_VrC@;ZxkhUbgze+7Z6%$qQDslXOs^)Pu~ISgi9DRm>CBfHDdJX{8YXeOwdUHXrl)$%V; zAA=Zjj|FTkA7hLUchqD8w(E`wtt;~2w2#~i5dG`bzW&e}s)~ua7o9lcyx+)~qCg!f zj#RteXcvBd?zH5kIaYWV=gfy`(G8-+PQlii^@lxKAqED9`-fE)^~e$W;l?d@Ggkl9 zd$c*+-3a}DIH#Fl7OixA72vg6)O%f4bPv*A3yPwuj~M!#hc`V7bBmI|G@ulUM~@-Q z=2r;T=BTi20IB-wM37neUc^%I86cPu;MBXVxY}mvJ5qsM-A4(6Wtq>Q^|nax&(1|v z;0CyEhXENDb@b8!ksKxW5L7{!?ww?bjiIEq+$N=T1o~u~5XErT+f{z|kNt>pQXlMn zQDCud)uh&{9rR;@m|e)T1IDC#oW`va_0lnrqQ@<^hbQFX;JFDOzL4I05D-~Zv0vd` z?;#GmMlq^NqsDPBg=r_Hzk`}jQ=r>*0cXFTAqrZF_skc-g+PK&p{-1~4$Qq}27fasXv~QY^txd;l zGHdsYwJe@x+iZE+?K*SW_VqgPy$Zr~zN_QqOv9Jh+b59RM~B*cCvjJ-C}04h@Bpz} z{DgHG&GFW%9)CaU2Esg?TeD1WA0gX|5A*`rQwl{evcWpFRNIs%?Z;CDrNbFc7VA_` zBJ}R$2hNfWlGl(by^LiEfdoO{(dNKSn3_~b%h&kUpvHqp&UQf1o8gXKA}cM6XB0x% z9H3HO=o6Mb;4?h9yaL8xO^QL?Wjle`>#GI5Mcr#QeRCQ=b|z$!5T^{)ru-A4gzS0l zcW**G$cMaL&)dbQafs|~xAq;y!J6SCpi;RA)w)szwbi=_rxiSNtRNsx_g6csU)wBY zkJj#tMUISziXFMPtmgYqzVLe_@J+A;up{iMZ~Wnv*5?!faFCRcb722dwLe?2kDs#C zYvVnZXXcW@KAnyQr#S4YZEQK<`8>-O`*jUydY?8F28BR#(uFOkre?gdvG1S>H_Na^J$j73Ch+>h?;$9Q zZ}x1r1a$RCy^63$On(L9X8_fTTwImfa;YTDC8|e=t~NB0fsW3}{Maqx?iBJBk$W*=2*BHl<_5qiuY@LcwPOKo=O@%qEl*{@pQX zv1C=H4cez*Bkclcc@^AI7@DM`31QeYGjxcf7*R)tDI;}CYc*Y)0&T_0P(2J6RT50? z5MhokhJ%dj)_Q}azFi{9$jel^7Me!`v@xku^*lP=G>_rVb+vZ_Z$NNYnoH6ZU=^8N z*--4YcWug{rwXT0F~!bbt#o9Tz!nU$vhalT5UbMMEUuzD5fCEzr$y8XP;v4=py^aOCvj*}V5|zkQaBIkIs~>x;&6JotSFr` z5%*vC$x#h*#Dak4))7A);WI}}8fpT<(o@<&Yi54JkyO@T7PFn;T$Ja5fpG!ria|z> zp^I>mNX|9$F#r-aNIYyhVM@1XUIo4R<$8{f3t4=c!Lk&jt%q_xJWK7r;E2AjU&Lp| zsGy-fYbOSk#)(F$t!Pw#8nq&qJNap-0DIYS=0NXLOls&{8=U%oUc3n7CB?Wl`RS1sFJAjZ@RZnMrNQE%VbGrE;+=Sy6j}zTd^)fi z&vDsZjF?E_Tou;|SmBQVWkUSwMSq+Y)L#l&2rUJ9UKX@^M#krBC>Kh@@`f^ZnA%Zm6dSNbL zoZ{#Yc_k*y@V zb2GV{W$Zb``Cv~Qna|6$`PY(*mciOYdXMg_V|kXr26hkiFHyEhlXU@C>thlA`bFvA z49z0?=xZz16Bmci?+Q-+nXl9-C$ob`J(k%HxaMoE9v*1DA+@)5h%9;K43{Xp_6^57 ztrF=+bCq~Qz30*ib`_HMj+cofP(hA8;XSaYdd9Vw=`wNR)zS$T*hwNQy59K5b=FK# z`Eoi210N@7B0+J>RPtfoU4d`X22s2|Cd}G#>cAuoOTh3|JJPR~Ri|%*u2Ravua-bN z8k%AKqBIPWGw_vC-|kr|_1La{8NSll>RZHCbZ`jJ)P5nBDT{8+qh*q?s8f#Y_|SqP z>|I|2%j+#)ZYPqsb~3vsGz8 z`12oLDOSKQ|2DB!=A8KdXGuWM6GFtN>7q)=ahD`fid1GC&H<#}#HAT|G-HtfPRsFJ zvT;$BRXVYty3m({jm8W&j^YOM&YH;Gz0JKDK@*3Qz%?Ak=O4d?aH#A&IIgU}MsFs_GGuJZ1ss73(Xp84ub@ebcM<#KvW{*{PR4AyPS?va=D1~e)9^;Fg6QX<% z_jU1Y*2Nl6w4*rI0Oj&9J9eDg)$w`oj$RAEGiqaGBZeT-C&@>vLV72otQaG_m;mPS zK2yXyL3j3Hf2Q4osLgOy9?*5BHK1y~L*9VBdW+*iCbtcP9~aWIkA0 zhUD(dQcH(%vc{pK?!_yJ7!t#8r2UVcwwNT*VqV;I2YGcOUW{8liakB+4sKG*a6gaS z*UURP=5yfpejsjSnOte(iQXFn!X2L{gobvC|7Akqr!Ml4Wq{6-V*h(OzP3kndx9{l z$^}o#*Gy1KSC)Eb=nVrZKrmxnI^>@p&yPeo#1nm;o%pgb#qQIx;QESz&ZT9V8clqz z_x|jdr&k$ftdla7^enske8Of!shcB`NADVgZiVJEyk9WZdMa=nX)ie5-waK|p zcz1v!0qpKBz1k%KLX9Y)3l;$RYG#t>X;Na~u{aj$e)>fNSE{wE+ct+%5r1~RxqOKT z*CpnlJ0H?tc*ViOI7W_iDpTEfbJO&fJF)kB!M@2Q@O2Z6@7ScolKZ~=xBqatT=r); z>g9!XaK1)0Y;Aex?Xt9hl2oJ^HvUFl84&*AGG5d~bb)iP-#*qX%HL8dHA<=b@M9Fy zh4Cg&7^41!WD06`=z_=!#~PNbI@_sw6gC4O&~K#8+Ho4gYxAkVO#I^I1r|FLs%)w< z^Oi8#+#cazA0O#z4AA(=aM{{h0#^?*xGiZD{)h-50nnlvZ-z0_Lu?>|Q$VPB9Y7GR z!Pf68YtDlG&x0BiltQe8os)Q|7+GN0p&vG{@yWXA{y_BR=Rx^un@)auMD;>cSXK}Y zH~UPRGK($ufRcomfLiU=q;w&e+m2&~j8Aves7-=WL5U4Ewgv<-` z4g+yHV$?|;xC9SHlZT)UKfxcD2tw4fj$8DJ^qnvN*ff>JEnd`x>QmKj8#0je6;E z@xPj}mq+`7bLb>}C?$4*iIB0an*(voW>8Kxz9hRdu6lc_Hh6HPoP<^m>iFKt*%R2O z(O=#pDj0-d@@Al&@*vcD_{}lIN*Bi)Ad*WCDB5mVd(uQX?Bk|7MQh``nO9=`%N9$v zm)}}@vQdQ#XmpY{*=b$Sp|;zjS1%hDL$_dwgD!5JSN1re3X>vZ9R5C6Q>qD~7Vq=J zppUcbz;NG?W~e^!@uKi`e=u{L z+)SEbUYd^Uu`sgNw&EpQV!jG&hs)P~?6F;yewiWvz>t`{Yh;Isq^Sq9XaXNMwtn?j z4wDH+&-Isl^mpsj8G4vEt3nnP_7X%j9o=~Mz}tP=veY^a1)i{<&q75l7#7wM&-|V3 zTyKS<{!Xc422e=D%~ASPQiqj3D~l2IjZ+KUylGB>I~R_YQ(c*Ps4~S#3WAvcxLe%G zK+L=--vuon`7I8E+S%#_DLlBQC%m0TYPj68<*e#S>r)HK&%Kn2_bEvP&68ovncf>t zO;hwYAH#Q$sdoP+W}7SbH^Eb(StP-bU~kRbBS~C1OxG!n?zC(6v#d!$Y!@m!rL5i3 z8y)q7!up*??H0$<+LX|EBr-;YCB_ln8Pvp4*G4ajbMS`INk)YI&`Q&rS#mS>&{*12 z)-6M~vvTlCJCScRr2<2D?ye+$t_+PyNp+*g^5{`dygQKa_DNrQ&);la-Q4CS1L2OzQ5e5OF{Nn zU}|BC8{a@u-G$fpnG)OV-f_eCi~!UP`(|t%hbl~I+C7%U;pdX&fyJxEIfLe=<(nOZ z)+>^dfn1q0Yv_LW**B2Ga4muVfTQX$5ll^ve9Dj7N}afhGqv@(`_gaq_4N(Q8VAd6 z;SNQ}H}TD=Ryob}*EcvztD7dXlP;T)L7IbqtOEh39}tPIax+3(_};lZx748FsyOaV zung1zKbv9=a@Rb%TVUIM8TYRxJ^jc7BYdl1Cwl-l;EB zx%>Gf2ur?)kIerxHWsE*jTi50hjtYI;y%eZCV=i!`uw(HcQDq2doPSy&IZ|5nGZI0 zJM+FR+h0A-Pk?j1n$NC1)5*M9h2Xb}s-M*M2?q~SAo3e)w0qjcXU8aXR~UOBp9g=| zNB@=jq^I1{JTLk*{I$C{RmrqJ^;oQla0|~=k|)2B!s`6=fOkzFRO8y4uU>!zhZkAU zp>|+~vW5je_2s%2a%}EBS}RAJ?Meqtz_+iGdpo*KCWv2Q zs2j_1tzIKbE5q0*mu=_n+Ha01ogr-&9o~sZP1Sk<^^g*+2E6>nU?)yZdiMzF7Bo&GVL_-jY|&nd?$F4s0CE^69Xu zefIgUTdlXN)m@HP&_P<%AoHuj9r#h}@-CFKhaUMARTpnRM*rg6W3==YZ2xXdSQhJ} z;rd_bFgO$zNIYUIMiqY?8=8#co%j&F6npykyr$*YRd=mmyDPkEffKemB`qfxb_YM# zpq{JwuurX8w%*t)Xi6bdU3;Cy+>vK@_L(%%prrL4HZS`fcNL}ahj(NwXrm^eaTt3$ z-OOz>zaJqFI;$N6%SDB;p26@0=lSQ)aNs^fm6OkR9x{1GWz?Ij17bJ_?~JP-2o{`u z#n+x6IP|>BN*nH#aaHxQLl<__m8=>F?8Wa`%E>9!Co3ED0$ED>ZXxc0LCVT+s$(ky zzWvqmh%qTnV4eIa>yYN$3RmK7SrI9YH$p~pd@N>pJ3ZP&h6^i>3$cweiBI_^!KB+& zZW}nOz`fTxf-7-;c7XSUl}_NOdUU`nS*3NO$0)SFX_twN*QR)9n(c!QU8P>|ep-Pn z;9N2KliFJ|ts$)tkrUd*1FijJZNh!EUF@cl!_^+W(4Q{vMmN)uW|}+lFx^Z@n9=Yi z5^@xQeKh~QULhFIONbci5<9N{v);Lg{fgbWN5CXNqaeGsm1~KFDcvf0(brspc#PM5}NpbiV{$(`a zAUz;(#2YbXt54RU;rqlos?&n=34teQgDilh5|4C+dC#)2Y+REH?haliGC$L2v(%j* zK$*TvkXLYVM^Ef9a9HPi;$O0%UO=`F2aBYIY0~(uK&T0F4m|=T_c~Z0O zUieJg+hZwX$0Nm;Su)dApXYs0;|@bJ59O_1x8XROo2I1Hf-jkkXWe%5ekdVnmk%Pn zT8l1<*s40AzX^-ycD_}iid@jEDP`C7C;afyqxabFke9+672Jgjcb(J`i>&7mC`cfP zNLAX~VEYk2E=iYCRs=k3Wphp{N;}f; z&k{k|;COcMZ^R!%1KH(1;u4XdwCMtJzpzXYa?c9HrH@^*VB2mpYit>%WmL&MYA`@2!uu#+o|l%l=4#t%NLRZV#USPZ|tFO>ht_nArK95V|@ zg!VRmN@;I{C>@9Ic~0gNTS3x&Rg#lqR7hGvyKq`-#m$$L6ZEci804R)n<|g66hau1 zmrXvk@nb%)eeuj=6ce>^%s*qhs=L3<9J`S0G-4~eN4TO>6~Mk+b7&N{y<)7JvVcN1 zEXoW!@Fpb}W`k}ycvCC5b&eWN#@gX9bP&%m6Sb8i}E zQlxNMwrhc9N-*H|a7@b*30-D5q10D_W#DKG)wF92GOKoor;>KS3R1`(9p*NU7R!Hz z*SoqVy}<-PkP?a^wb&+y@(sj{r`8Q`8Rt-Xd2Xheyq ztmYHlQ|LWfV4qhQi-3ce8EFxOe<*%(?19iF8-H<+Ac9JFr0`pZL|T~rFk;!s1!GXn z=<2jA%O9xJfVs^MLGod$S#6A%>f+10_>%+;zG zo30Y;-KeRGs@qx|fge4OmT||vNhl^~$~HZt{?anT^zh&OOxTA8fTCUuu^N^drvbo} zLR7k8>xYZTv~!kBnlZnmr~<0qMYLgGWjC#acKIAtJ!%kdsq`c{uu+L+BkHu?e}KpE$L^buaKTPoSA!Tvl94n^s` z<=Q%@W;!T~_13V0Mh`5(r{PGKcz_&*`aRf)e-XNSJC#$5)%NIGV2{pK-$C<8x8p$) zi-ex`&R!7O;;NqVN%Hu;&n&nBjpTvzHM{DTK(q=tE=0 zzqe(Hr*4~~F3EqoftaO}E4Oj*Jid}_-b6u&e&a)df}Vvv@{Qz~p#50Wn^jNPH* z)f=K;LsT{${btCB`#8WxyzUk;GPZ7&9#E_?XUp-vqYiwj85tKfiosIQy$}m(1ZJr& zE{PLbbZ~SM7ht|@EfX1;J4U6t3r+X>ghbsTrFUQ&kn2q!#afJ9->|Sj=GMA=QwpVc z+z;#72rd$oX&z{SD$n9cRDp)X%hOqKO5ydBV`=P?*6R({PHNQl0Fyqz%CIjslWknt z>W#xJ?sK=S!Kv*-Nh*dMMn6{ zQdO1GdnQ^+#bPeze^wdVU-ALBb>r}H`lTM^2n2}}xhrp*_!Lki4g9Q^augZG+4Q*9 z-p*IcXqEcALT~me$-00~b=;Q`HpP-7crq0(yj-Z+p_Tx*5%EcrzZ!#7AoGwsIB6nn zOYMy;?sXgyvB3L#oZYT2hC34$Y(Am3$7pZ7Y+;nDJJMF&fHH(({-6+MGL;SOKoG(} z9*QYSH*R1lxwnS^B52Q2f|(7$Lt*~c|2`P}YMV?8%>um;E>4L;R+^PP$L7tni;&bA z!qIDr*g|eM|3!XQPJt{r0xw2{4Qhf#dw9D#rnTbH);f|_s$FrP_FIpxlQM0nUlDkI z`mM9^C5 z@d6D%^Y`&T4_>YUR?Y`z4Gs?(h*I@a z*viBZ^=!P*s@g-`^QVt=THFH0^{TI&aptVWjWEPKvXgk_Kci4}SUEuKFfRMK+}hQ& zmk^B2kt6ZT1EyvZdLvEFDFoy(FoQjKXN@d2$vr$29t}dRU}6zXt3!baO4|aiczEN> z(%l`>-R>^8ETbWR=2=Z!`#!Q192!BvDeiJSjL>qi`X4wQ6r%RmX&81B2IAja!BBuC ziO^fy#sf!nJkmfm3VYBH&}PvXYV%REAB&n!tMjFA@ssbUY_m2Ud3eG>YR};$ z!KM_)_}o*$EfFkBD21_)_tf&({Lqrt9$Rc7)qhSF#2E-gJsCTM?#WR>Q-gJY8uunF z#FA!fMOB!6Ge{{*iQB*NTneydBh;A|{MHpES=6<2VQ~LeLyjUbBJ3pc5aSCtqQf5} zNpqietT`VxdYEFaR?ZboW)}tF+X~k;%bem3t7}ewge(|;ELxSu3j2tb1nP^j;^~+s7 zc-1lP-gK`4x!3iq6o*2hoPgDJru4wq4xF_Th^&OJYpCoTwlv@Wez=}7>Orkv7mq6M z@^Fg4HG@}R z7wCXQIUd#EaLN5)-79gOC8YJPFPpm+wi~o-0&m?>XX{=$mJy@fh79fvxo?%h_V4BL zvnIskbYC5rds6PyvY0VQ*l>PeYO2JBPhW{Q4D$6=e(Vmd-YXIyM*Hx z-+x;D4)cWqv%Cgl1)eR-&&aA6N5=RDAae@RXW{&_qxPVdy!O|pqEU<3W_`jhBFv`0 zEx`zK*?;9Aj(|BP?Zo^c5?kQl!D$j_Vl485%=+Fu7h5^z;&67%C+=|Y%@L@nqGbtJ z8YR2piXy+6*WHXP34Y_Rn*)&qjL>cx5H^mznbo`d=7HhJ-fndFL20*RxI@Agok~a1n?b4CZ zMA-;pr4FP= zvNNz)6yF0+Jwe+aaO-NkpKwnJuMSarAABJAev{h$qJ1+XKvK<3r7`FzsShSpxlU?| zx_;NLPUcoIn4P#X<~@H<07ivk?V*ocY{oYs6hhse*c9Vv8Ev0%T(PCsl9h3Xy0>g~ zf{9!TfUBsh!h>F}L;*5Zbpc&FC^lAj^a)%KZrM0D(rMRk=n8x9Cuwm)i-i{K!bKf; z_XrRracCCAi)%g>@l=Gzx3j8QzN{$?u7*6v1RIry=M46FTM**S#`$`X?T0elIM`i= z3igpn0Xx;P7YWn5WFZ;G@G$XQ^|)CQJ)-}JZ__9DKtj%fe;|fD$#o3A|5^=30=J}Z zz_Bd+i}4Cwpb38RwburFV`*(h_uIRQ@Ur;=#v%Fn*{7dJ$M%rGsjNq>YN_Rik^%bM zI?Vw>{FUbUctrICZ$OBW7Pr)!+GkWhZ1xCOdh+;7J5!)Via5Nu*4q}s>C(vADV&zh zsss+nmz?gF(fw&b6TG(={CNq50!8>8c;@YJc)YL=j~SMT!NhSJ)=f_jeg zU@`&*c&h1%9q9%6r-dg#*#riVw;ex}d|dcZ8td?ydyB=rX+X9!im7KIu?+M^v)!CG zx}}%*8JcBa+)Fg7NxF=ir6zjBjRe+jz;{3t@5S>t#fn^XHzVx&h{Gvp*?T=vT1c+w z%+bw;`iMsf+uqgCZbHJww?v`lG4zpq*WrryZs@SSNGj>*&e> zO)0Ox>KX0Y9dYZAF&=4CS(EKcx8~gxjJGZ80~LqR!UZsghRAYx7@9*(-?AtyXTES~ zx2VCu#G)PsKw%SJ1@8loUN=RMY92fl?z7yN_Y5`(73W<1^E;N`f!_kN^sI?k%dZ_` z^(kbR9(BAp5q^{&{bs!s$f#$Vo?>*9rVkqKU16eIGd)s+cy17LDCV=w0{NeqZK{7u zaLH^JUN)s&v2!i)XQnz)8Y@ok+MM;KW}b7%cn;Ig)Rl6vg%WW>;C2)w4uc&e46j_o zzIY0VAO*E$YtXC~Rj@Dy4_dtUWuxf7a|%B`y*6&nt&OaN9$h{B&66el>i0eLx#Y@L z2AwCUlW@I}ttoQauB66l2CGjlj2-sk|8#9)yB+M=b!+OK!xQvBNGo(Pv7(8M3s;SO z{C^y?jJDx_+M4+kVG^g917DwM?!dUrC|8E21jSXwb%(pP{ywdtG$WJQvAuObQXh1O z;`(X_Zoi*rwB*L#cTSt8u9+}b>i#cX+Vlt(km}d&oCyAI+c3Q@&@X7gLr^-F#^s?b zJk~(xH^~Dy&-g0!3)!JJtO|=@)AaTA;X#o>&?*9OUGsNsyAB0B`HHlWHp#yMO|i;8 z+N|@dSyJSirrk;BW$0GF_cgV3hW!$B$TS`QryIK~k8e2gLg2#V-^kLW_|%(6eSUP$ zdQ*JU`*-tv(Ql+H+U%ac@_*g)74yl7hrK#&$`T&Pc0b-B_eeOg>B*)?n`Ln0CbTb; ze7Vb19N9QVjURcK)xXH?hGtp#g9wx2f(SdQ=g?7(m<~qw3Y;>&sUF8bzT+9B*$>8? zE7!NCb0Mc!iYmY5(DlL<>35APyk{Sm)mhYEUQkfh$#nMI72XNwrUFN=1sj$MPl`%v zIq=1WkR&b~6PvNB2DbvpzWe6VbQh9caGvcb9Sg0xi+!XXJ=Z#seZi)We-ZAQD<$H8 z_X+x7_)8H;4*PP@7ITt8F?~ z=;QkY|AE6<#X_@iY3CK#Kyp8Vd^?eKA$CW(EV)bSocv%7eaz}%R?gZ*7&D~Kl{i{{ zP!ruZ%N`wo$Qfb%;swzyvEbU^P3=3H1m3e)c=w6BUlN_YsLRM;;wlzcy7k$CW2gMs zFT8?17D()GWPtGB?(3nF0k)XnB}@Zlvga^!>}P3#Ci%dj1x%$t7+hcVgg#SPVCz(>sVJAx(Ry{7}!k~IUs31l#<(tm|)p?d`OIHslHUI`F}yzT%*+Mhn> zXPR$bP?Sd-oazmoN^@t>l=eCfK?}Y?vm*wwJr01w-l~)Uwb=+(1u@}tQac(Wj+#*ww<@LfIfF{z8^Q|3*7sq@cY=I7z!9`R>av@Df&Mj`9AxrR0 z=6ZKzp#Q*Zjtp}PPv+$WDqS+~nULZuf-Jr_8MjtjaS2f)nK`s_^Q-8Nu9Hoab7Y&<<=5kpEsDX$IY4A_eFqxfApi!S$UcUd~A=$NW(15M6P(`;PlOGkks~IY^=-OVJfy%V!aX>aH!zuXWS$+5LeOVb zoptgim3P9yXnmu&9)RwO!1L<`t-`xr@uS|*;Kli;<>vtF zSy0ivrM`rHqbzct>B3#6? z>`y#U6JhPB4M|o|Nb2Y;{Yqz%4-^qKBHVaC_3rgV>zb3&N3#;?0mt|@ae=hzzpINF-84RjK> z(1U@@iZkpUut+4YxVsP&->t$td)b46P=@x2u9N~Xa|{B>4EJKjXDscr1KFpqWed!O zisxtzD!q+ZtGIeG4@jWXz+F*6lGE%c&~opc!D+w#mdr>uS$y!|WRts%|^>(ro4XYRLIv>8mW zGoEI1UEbG#Jl+hCWr4RteBBV5%i)!UHOf0em?s+RXf#Fr#mEY!+jaii;(?znU`3Gd zUCXqkCNs-Qs;@NRy`N|pc&FkxPiO$+dg~Tk> zph1+@>F8*E0swhgD#>a7#kZI?zNG{K=KPGV9|=Y}i7iM{Sv$nGDYO9$u03r-Sc!s< zi#MF&a2U>>N8q&CqT{MT1Px@PiDa8Hkbu9A1Fv99e+wF}@9eCOD605%>7iR2h^N-7 z=FdQLt8GBM=%xLt@jW;(A!+D;bJT@h<>Ai~vC4^2A!hQw587PkLjYBQAjuJQ#lagNHG_}D^(Q|C zb&pvNnXMUvh;#*QA-)IY1Y5UYw1iJniyX8@tNT22Gj*S!w-YoD)M=qnkvQpA0%tvF z!w|}vsbT$9-!Z&ag9}u@O0uOY)(z&aA>s9yEMRA+hXvO^3NEUXyi#CMl-N-sS)CMN ziRKY0h1E_r+6IEWhA6+*>;ZK}9pDmGVjUh&uY2e1-dw3+jRK~4d)v48Z}(gB>02yF z8TQsMXD_POKu!+Ur9|Gazo#?k_T*YZ^TX?n0_giRO)IK5BHz?2kb2_o9YM$=;ZL(c zj%rGQIbIsKsZo&C!w;Ha;NHPcXCcJg0UdsorT`XWrWz6l2n9l)Yo{pjm4i<8^A< z8Ewoga58czSImg=2z*Ewu<|h(t;Wfr7t9p|cU)!^OXW`qIk(-E1`}^03~(&(0ahDx z$a$+ICQyePHPPXThs$&d-4z%p_qTm(dbo?pB&KMRS=}}XHkz- zMnskBmDU9j;uGl@i_EdJN!r13Q9?%v$;3e#gHD8xq`N!$OfI<@AzZ7~-XIa|IOc7S zp=v(vrF|cx{Z37-pVX2x7JbX~I4j975U}?5xW}{1#0GJgC!OP=$|$kNyk>@iw>LSC z9Mm?Qfvcp*SqtgODxW3D2{HJ#?P_EEwF>T2Yu%bd&3Ou1D|dl@$b#&{n?$s$v{TYR z$W0!R`JjT=7eXu~SkfkLkTliFn;}|T5I0;ZDewmp?L?#9FCeK10%`HmTRJ*y?n9A5Nd@0L&<}l& zE8bY8c3+(!d^h|i?`TZTnA=K6jGBBGRI!*o+>9d*=s2n=8WdW!bDv@8VZxX6i6U!O zJKf8tWF^@TN$MzCh3$2fNAh@elGASOma_BEhTYIah-Y%1ZN2+@z7KSW_#O;}?3VQd zJ=hIsGVHwW=E9?kBKwzngs0c;8rE|t96rMBsaRBXYc8xP@~Dcx$Ki#?kOz#(hsan} z45N#Q?`FIqI$7{D@r*x+7x1jFfAoi0M+YyrNKOvKk7pf%0p&&5O`mP}n=_;LXC6gz zk1H0Ta*MOL0zA?GM5pq}X2rU#Qunh20~lGtI49a~QsiAgp`^E=O8HOTm!M~zr{1#m zy|C94Z-V>~_-W$N0Tetq+GlZ3KY|zB>0S15eWNHJc3b)a7#%7b_hMVz&s3Ogdl&P) zRm8)GU52iE?s0l(yQRZ0TW--YM{@E+Ctrf;2I~Mqc+Jl6kRD9a1PwKwH@I8YKCaMr~{)Hmmv)Xj5Vz$Xyhn|C3CNmMGH^f8>ArrOPR{KnA9t?K! zsflu2$#gDR)T#KjYTF^+ALN|c*+Q?)$?Ly7z{R$)3h4w`~9M|FDSU zDofOrs1tlxmRF<>Hif$bEPq3?+Rbbn?#`&=L>e;@y_oENlS#WOL8+D=KJsgi z9icI`+d+K2sOts1m8NWqv$w~e2xOPB?{8~RR1_(H z`5xQd(IdnVcM?3jS&L>{)OjE}B>wLh z?}SQ^W4|mDUoqm=Nw+GUHPHsTqtZlr1P6}Bag1mtD6R*BDtyVUbwHS!wra(il zpgBDGK=w4K#x-K2ut4hJ*)Ax2U<+3XAoYAcq%=W8*fTSBC8-%uDB3q4l#@CxvP zdEi|S3?b?#G%JOdL@Z|5Lp>Iq42>-|7Sk2g%C1sHY_GID!s=kwC(#*=%oZ_%kbkM$ zAiwN%^$#a6zWkEWU>V$96|1oHa!mQmR{IoTXB463uJ$1Cx2f}0-Y4-DtbeHkXLK!R zg#G&c-O*AyvwVdg*L!UgW>IV_)x!ETa&!=HH1!bcwoUtvo6rg~JV*A?Q4g3E0hOuVG#2wI_mi{9ukwv~1n?P+OK> zlYJ|?_CzN0$A5Z(<5O-`8TyZvc|O}Mj3bBBnZ!y`y2Y>+bq3FP=N)1N&ldB@(8!@W zZGGGvY~is!bPqqL?4H5C$>og?|zPbb7+X*a5+!yF_2U@V#Ox52*DTIQx3qP59PVsF_{R9-&~19 zN*mC6gD;*m6Jc+!Z;||`CL|@$>jbe%pVm+g83TgxR;y~i%ZCX(-oNq^JaA29zK6BU zOueQG&zQFKSbpu--SEoC-o#93OeZ{y8+nr)us$LuBiou`@`(U%M7kGs1!R(SXs{|n z{Z=H0R!@5JK!1vCbRuh_qd~mdIy`8oM^u(*!OyuiSgO%FW^kS}>@2bD*QeMH=?8^_ zxdGd@G>D=#-F0$BT6G+)>$7V!IGpn0xi=HH#<8zcc8E){7!3$Ck0HQ}v@bO%)HMT% zW}R9WA-lo`gsUvNJRIX8D{R9x;~3uybI%^))R%E8X3gsB#<3ddJR>R*a}z{@77YYbVKHCk#vM`o~9vgG*Y| z@8=ZbJ18Mn{654LR0D5kFI{6W&BUTMK(NOSHYJjXjpTh8E%$2?Q03vG5eypK6Y^G9 zs=qT7L7G#gjg~t!+YY@sY*d_=77gsz0b#@OqOUh#T#`7iWV=DxV87KgZZOHK|tQ zrTS2Q)uk8#9ROr@-n2O*)5S5Na_rUCy?(m-r+vh~@QR?X+{w6@7lFM&=-VX@_sg9+ zn$hVyLDoiRB7gE4t?87^ae~_Gb6HcF4b&C{Qg@98=DD3I>|W&ldD0hKU%S7wp-+={ z-mgfn{-ARg3y(&kt(yeN3#T7~Vhv8lGPqF^Jb@?VFO8c? z(+7X1c?_@CHZ&;A(Qnt@crlF?{yE*KTl&h*#gcFHyKd~dmzP%kzV&WlYo#e-M1S(W zAX{@m`t4ceIsY-sS9er;(Ax2?3MXaSm2!AsGPqPRadT>muXLKAHJx7 z9vTaI#ZMP&x6V2|_)~Grw&~oR#Vb3Pf_4)S{-I*YEDX8Z)|!N85f3Jr8-n#-ECHS} zsW~;76(@XN@HlSik<`+V4024{&~PcExYxaS3#2Gh+Vp|AUzSTk6#v zPpu}b-IHERf)TdHbGRk&?LeELxK`0^uUfPSWK>4`#=~fF@8P&O+gKXc0Sd!SN}^nG zPANrl4w^p{742YX$$u?w{8J1JCnJOt%YT4u5^UU49^3>}aX z2kDVpa&*)Kw6`wh2VB8u?jhc6fX;`PQ&=GFT#bu`tOAvBdvZK+YWCES{_E;hQEASO z+_&_%XH{#mVHaMHy@hRBbM9Bsq5kW0zA13p963wH_8M&c@^5$ZmFn&mOZiqtxWeeA zT^V$H@R86hYO`Y?glc9(> zX0)|~*<1)bpUEfWF1J9h_o?w^Xs5{I{OwRKh41}ST0u5FW#Pt}(l#|vSH?N{M}z^a zWI6RTSBi7kCz=g*5x^PD4AHX3d)-j?ROxk~ci*qP`s7~#*ElH0%7pI?bb&t(=Mo%O z(5_SlfI~;sUCGmO5^)8jo^nv^4V-yGf)du(fC5VX1$ST~>d5qE-RC=nR*TBa2{S># zjagu@(?tPZ@;Gm&Vow$7pp#gX9+XS|4ue^mMl1j30j%D2i9&1D&4j97gy)ir3DU|^ z;d?)d~)*$zX@gSJV~4-s57}?W=E2v!@50ih+)dp0j*ra=KAMv z^aJH$SC`IV@Yo5bCa)8ssQNew?+hd+l7xz2PY{CkvD5*u z?O`}f8?fqgwYAV{<-AN$tED{*5fq39*Z~w|E4hIk@Y|ttNMQm*W z10*PuA`ppy0Ybl(p6C6Z@5|NN)-t)Xhx`7owSLPOST$ZP4S{DQV+>bgy~6>dQ8Wr( z%A{I{l*etQpJiH&b-%8!4Qu~`c<-R9^=qwwLxS-x$<|R>its%d>x9{*XmYjXOWkym z2%Kt(^}Y-opNg1zl{?0d9`QA9-#=fkQ}qC(7vW*?q0t}AI9L@MARVT6CSkR&lA%@> z333j0c&^n}I-3cKz_Tiv?U$muc6ah2mZI%TZnQ`-zPT~Wa8GoM30xx%fR!mvt|!!6 zcia?S?>@`>>-^bVn{^Lohs!C9-qHA2Yh?h8ZMyOYL6dilF~VTaP|`pes^#1vUmNjY3>Uy=;t-mab!M&uixZQ9*)32<)+X|U{a$bC#<6DQ(jKKo7)|GWWg0IF^x zWtOVPMlk2NQ;!aUg$xEi9nUu@{|+aBK_YTXlAsHz>;c&ECGls7d+j9L9SV_i>`*TW zI;ji(jx2l*6{R!Pj>?=dScokw-S;zX3=K zluI{0u7PzS*$iPLkV!LB&!PAppLDxT@Sy{wsTgeGL$5**0tt7q&Ff_C$h9gSq(f|K zm7YN-2>PoSc{;;O;oHw%;lk6yabboKyTKcZV)FFxHtBpiwN$TFABYh6aT$ewk#6OQ z3pD|a;a>vMS+5H;au0UIYJ74B8kBM}kVziilDTI$U-t&bbHHXr6F*`c?hguJEmhT< zUTb*B{do}Q71?v6MP!#hHOw>9=&or1k?l>ZGTg z*ONrF1e1du8D&rOKyNRr3L??3IlHQKdoGxsH z5p4EkJSI4N#;=>a>0Kk&Ub|2qKz~Gk+lD3E=N+7Xv*CMk z0^Vk&XJk*N%N2rgxNTVYgdvcwB7nKU{TQCdQsm8tvW?3c@s_04k76}jw6d;(6H3To zMIZ|koi8K8Naa6tZ`XF}KYs!u9p-`B5$g2rwGBVpy8R^obqI5(;ky6!aSR2J1`aZI zfza&;jQ+NlhlQEMAk4E40vQIwf4%^Om<6sU73qumS?m?DysLJkCImx8XGLxsLw@Ih zfZDd!_C!X8K;gLR$nqsXrmgpesT8f!Du+;Qg=1)#$x(vIkMcRkEM*#atsAnQW@+>`NW2ac001i-^EdM&76_yfqR=#A4@oNG zIYJ6YxOWM(mQ;dyJG3>nuNs^6^TwEIh*yZm64VgT969KBvYu)edIoO|WmVYrq1*`z z;U*}uE8=uyatvP(J>IfO&IFDKW**OjjqAW$JXr1Q0oIv~f`cJAq+cEJ41$za6} z%#0*B0@)q9@QVa8$D*Nj74C7n;1%$i$=z1H>c}!7G%l$^p4@ZO^>#ZR^i{IJv5oLA%kH<=|ATJJ7X5dGQ#iAxzQb+|W_b5<+-;{+v{ zXpKSof2J(cFO9rd8gkanW1X|@;R-^oJdj~<<2L7^13vzH5+4=3H4g}n8FF!v&6d3m zBg?+9FvM3N7Es!@c{+5X07<@G19q={o2wkqS&xCjBX>fadT**Sm{zpfutc@ zMjYy`OxaK`#(<>mq|&`s6;!p4ojH&3Wb#2{c#GhBHxD(-mnl#SKoFl`*n1e>5KyzYG}kV~lYn!04WmwBU^AqTE!xy`84qUDjrTZL z!klU0_`z8t|G;Qhg|lCn@vOPtRp&lfz;e=KB*FAqC&#e`=2)D4j>{{JVpI&B1u5&) z(v!QL-dylf`npvqexudGZg6Z4c3dABw}x#L@4V9qgB&atu`E>X&Q8ynw#)lL5(Sm?@qhcK3G3r)+F_%I!2d&xS^1yrx+T^a>>}b*#X+d;kk$>c-w# zl0V&aUn~AZ80O8m^kq^3YJL(7Z1*D~8|Jar`r6Mm^9G=m7rlX<3wVIlZqLQxCZl`H zsBw$^9VR3u1pb4QiVc~LcjF^G;wPzyv~Da^1m{Hp7D#{+mUq0xW4Au zdSZ+%t`-a6=nO9`-Fnu(B&;u*3h$_Pd|eLc?g%H)m(QrvbGa=NXCZR5k%PQYJlY|} z$_%pjZixcZSv3GPZ9tvW-KlqNh#*PT!lS`&vJWyo$0*VHXh2HCBf|MA_)TX02n%*+ zwX>toHSw; z38g>tc@{oNo!yP56fC}X!5DA{L9oZZC@vTfxbEkCnE#|xn$-J)?p^)jW`~S8@y?Fl z#JQ(#>@_v~4l{lSnj>0Oegg-m(p)I0Jv?(~=Wa*A*TfIH%nqv#8mRMe@d(DlO_L z7{jwR;UJt=gP{im4w?Vq6{wV=;*sIyjv-R8Ov?XirN!!1q1>sSoN(5J{Z6?#sGf z4Odd|#ucKs$R%a%dDugvu`;pOCs(5x<)(-{{Ae3i=h=+=-Y5DB=b#G(tb4;w^s$bh z1Du_T5l?E*s#@WL^c>3c%vPz)$z-MLM%2^VCiV+^Kdn;q?bTD)N2=%-i`Vk<5u7YZ z;T{iU%jy-}!)H;D02T`2`IV&`V=B3WsCWrd*0B~AfdgM>l?OK;fItjCU}}$TcBB}Q z3v<|8L6BVY8)M+$T~YXppj`EaKO|I7%qV*i=u(i)_ToDBT){l8RwC8}&zSW6BQGkk zoGbS#T}(4%ZoL#$ceBOKj%!uF(RNh68Rj+X7juND1 zWH?g_VvjRj{hj=m^INl#%IzD#Oxu0$odfQb{@uJI{M_ z6g24aS~G{N!`w(!4X7OPAgH{<@?f^R&z4vN{t zJv=p=2{FUaFTmc7J9L# z?Yr!`4rAwtmSZN)GL>gr=vp84tZIULYG=ROSI;Q7GtR3jiE_0_Qw2DcYirdyX@tY* zqUW$!^tCkU7K-}A8X7WXwa3GDG?dEKv^}@)5DLOnYwEOWMl`8?mtARwPS>2W7y-L^ z-ExS==W9r7&B(NcT`+Vp!if=SWv%E8Y7ASH&PJfHJAz8V{KiDZUB{^HqQNlbgj~vfRJ^ zMoHRku^V#cu8~z6w|e_iR)m@VrL5PH!ctd*_o>x5vmsA9AOPssQ!is2W@yYon+BPI zOuzVk=+ho9V_nt4lF5(J_>pXfO-5^i3(IXIE{&G+{4SJTP`TVTL8)zh;g>wg86@5i zij#Tq9#n*fgXit2&B+b#7sHgd3WF@mc@ZHmI6#w|F$!$mBsvAhhPzYZt*37PPW+C# zMsbGrvLju4$V(rhE%L7>PVieO%}hiFoAX%favj)N1Fqg=80Ur>ZrbUmu1Nz!uMzj7 zzOi+fwO>KZf+#VUCin}jz23{KW!^8iG^W+KN7T>GF{g57kqA_J*s9rz{4A$=5fK1~ z&NbdhZ;Mkd&+r=)6(03oocs|U_D`^)K)q$IzBvj%wB2isl}5U6zzm_am$v|ml$pj~ z#p6IWJx0c>Q{rEF%^4SFe^<4*(KtvxC7rSk;VWhr2 z+M`>IuL?u9%zv~U9x$8IQg;gn^E)xXwwGs8WsB1vRfi1{W$;Dg2 zJ=q%?mypWGC?C2)2Q`Su13G#2+S2y=;dRc((PO8QbLxv@#`0PIJC~Pw*8z^Fe7C7A z;cp)nxgg9mOl|*AWWH{_!0m8V*3GM4RL!3-Hl8FPBV{-7ROBYjX>)NQMNA!at?<_l)!3k{9Kl;h0e8tV35FO%ghrawv8s1l&*R*6 z2ASsk)^!dUF;cYfPsJ+7j};IR8xCz)LbXpfq00we{8nZn4ZEsXJ7YVsWxUhjX$U#GE4MPr>*K zJ(BGfJq7Io3#TbZsfFPqtAqz*ir4RpE)@s=))-Gy0pdzr58BkaRYyCCAOL8s$MwUh zMe>}D@HW&*P^{Z4@QNa;>%&(|w+57vm-H89f;YUngp^Iy(W6JYr%K7Y-<5v5-6JaK zp9di)xqa{KgthBNZvy+Xl8YYj%bztQ1S?K%y|!wnp5B?@#A?llS^-JrOk+m4$mb4CFx0Q2?y)SJM zd_MjwwR*wO(vE$om7HY`8ABo%m|{8%7(8Sb;e_(~GzGVZ<@nBK?zcZL30KN9dNI+B zXsyj+`|9PstR(uh;5Q+Jf(`I;x2oh``RpgxKwKe(YuK>aDfl%2>H(v8@2nR(>{=gk ziyi30UcMfA{fn0BcgR$$eXb*q$OqjkvY|9&wda9Qd3JL*uW$gvl(5;k3PCf+Yy%B} zV9~P|sgf3nd>kOEAu-_hfT4SR9&o-J3c`$$c;1>#w}eh0DGqycRU$(w#|ss^C)PP* zzQrv(smOx4+%O`j%6Leek72_!9dBzs##ic7dF(nk_oI^g*V%0YC>^-fo<9vuL;4g& z25g~iU4h`zx3sZ)kYFpE9`w<)PaJ#@Gjd>ZEr^;CS&k!3( zS2tP^$GYs)bD^L)ycq=b$Ras7_XrGt6^wKwZO%JnTU;Wvi&}DB-wgIlbw;W!Ah>w> zO&4{~rQgN3_p+4quTOv;9O9n5r3?RgsgZLyz$kG};@dybPjV01##)tGuC(g@;iE={ zUF!q;ZkFR4TVsr@8G$H;0$ShL!9n7;j~M{D!EG41?Pu$80KjeX20TKu3|CyY_^Cxl zT()l5LjxXllZQPh;-uOcT3;jUBAPi6QL}P3nP3|XDA$iLe=DoBHvN@)=hAOCC2>(G zw96T^GX(Y0cllKh8JI~k!ej#|m$fXQ!doOEn@kZsDnDxmV`tb*TU}K-o7nhGMv7i_ z`;u}^Ew; zISbB9ZsF&0Z4z1rV;W6nZprt^yyq1j#k|0rcaL~^wrA5J8$IIFZ!vgii^n+6(*r{g zJE<^heMI(~I>d9(NT!_`>x4DNGK$nu^mZO~%nRl0WS*DTUBMmkoRKq;gtP!<-}}0S2qjzd4x$PPaP=S~qK3)i zFA$sOCX##fmJSb95~$l(89N}5TEN4yoJY;`JzNoE7&aIwAn2_$jlJm-LiHne0_XkG zSt79Sph1VRg*NgCiB7@gKt)zNuJb|F=9Cu8#(wE>h+Z(pV1JA8?#wn7!RUfHTvF^Z z&nVC>R`rw%{0}yE<5*i3!w~6>r-el;eRZ44HLFUCfqbz&GgncxrbNx6OmdD*>XrBs z92k^+Lr~&jP|Q7nYa?(D2cA}^^pef~=(Yhicte&6Al&>X=#5Z{QP+a+v5z&6f{-D0 zg6XAKTHp*%e9c(s_NK0MlRs#DkQkz(DxC~3(1l*B@wO%xxm-Ick(X5^5FO7Scjk7* z*)l)}O5;_3E4wU>II;fJI$@p}Z3Z<@Ug$hYtIGxQ`6BH|fyqe*^@!%@%C#k$Kpg^! zAyyKBN6Ke07I3JL&RccfE>3m8J*(-Pun!7LlrCk1or}fO27BG9>`ud_Y~#h>uie<= zRsRfH))&(cV-CaYwloTSD(TqN;@uhL#>h`0?xt&4VRGwD>Q`!zkn_ z2rqt`P9%K2eMK#Xa>v}I-kV>EeKbMcelM`8^8Lh>ALO?~&k2s0p!yHBmKQ};t|;A7 zAv~%(w_|e(9>W{<_{=jG5;q{G#&P~t7%OJrQC*$jn304kfUQ?mt}0S^#QDx;w>1s4 zY@%rv;wx!*RVi{-ANc$82l(M_iwC*NC`7t&8$Dbs+{fNi{F4)MW^u6UtQxbFW`2?H z_ejm*k?YbpQ+9FLbuD!%2wr>hP1l0|}Y>#UotPJwhF%q}a#<z1v-E5TA2mebj&}kjO!Z1m4S=(K?cdl0gUPJi_=vYz6()bGj%G zkW0QuK>G+hiWJs~Um<-)pN$_C$Ou8Whvg)`6~sKKO_19R^QaG@-4qavTTsXAe3#eh zgK`e&2P7)Os!*ph()YhmiXAwQJE5_$s#akWmWPS-zd!mYUHe9|oh0BuVwdpC`lO`1>;HN}v@CcFH ze!(n;3x|6+08h9d!i&mqOWm+#;E~O~90uDoN+h6KdS$1xV&(mo{6fM{l907lpGI%S)={&jHDi38v8lCzyzbQX@ zTV_zzD11vmMWrFi|@YSWlp-s^S@derC9BlqQ`dBd<_^r zcJ5>Z#|P-((}vnzrtHi-vf@NlFMq9G-gK&Vr?E0-mD1&uP1%?1rye(yGR`C14&t9; zo1snNuFCr75r?X)O4siiZyZ-*1p$#ZIKn>>Bn#&7=SI@nCO_3LX!8w6wOBpu7QI9s zcr4U9yw1@RrOAESCeD?ZMV*Bu#aLJ$GHt%P2kR^OO2+F2|C!uVKV4iqk-|OVd8i$I z53%CLbr(+mK~^ABl>N-coW!t3AfLM+%GWHO}3R_2#AmGIo|@wCQoTyD7N zeAUW4+ad20pBC0fS84w-ck1i4ItTIj+M7<>f6FrV?Y&bYpX(4__|m-1@$z+tL&J~B zl^tERcM*bN@9--s^jS@>bC2&3-q>Z;S=RqG(a_I}%PC6;nG!K+hi-jFdK1=oE#N4-^2>L#WMKFu`Ru2ePMTSeuAU zh^7%s2Y{E7y2by-==>bgF-Gd0O=A!egO%&yiCc;eB~&*}uQ$5qtU`xT20BJcv0nti zbK+AP+x8=5Iow*GlT)qAkS#2A=}72$({3LBk~ao}9x^jkIeR4^dBa565K0J@r|Q>= z^h0&K?wpeXMRjnxSF8-tg({iDL9A6-&kzXJuz?!=N9&LX#RCJ?2{Gf`OB!FA&?ub| zpDW_`$ft2zXPGr~+H3etl^@j#z4U)y65gR_v?L;bJ|d!K`1%Rs6t-5Dr0NyHKQIqU zl&;a^SZ!fv#}telBtFSq@l9UnRqT=RJ6J6!H|%|KAU&_}bJGeWh5C9y zHPE4SwUgy06 zx91R@+nOe%nR5$f8)wG52Eml&bAOa;H)PGzyK6u8KGYr*GiUU0xspXc)YmP=R&SQ6 zh=kIY)l2VBF-W~-GxW!j7rSu7fS~nxK-i8gvsfOAep!>4?u#Bjwy$PbdvUg|>}4=* zrJL!)?Rdr%?*o~W*jL-JgCI`&GOIeEEE0lV8ZsjL(d_UHE(fxuB zEU=a@t({6nFWqY!1-}wSeAK%=cdB39*|EXOKo#87ZUdf(%j;bl!+)L>54=+8LQuFg zMq5T5UtI(cBEny;6>AnN%aU15W$yhVm(3Qo)6dY)mrq}NUUNYpztxYKZ;k>hy|Y51 z6moW?8~2CeED29<7dN~Yihod3cn&VCt<3!v-I4^8M{R4yS;>;$+&p`9QxljF_)#&) zYJcUxEq!~%RgW$54CZyzNviqLJ3p76GzM(V!|HomSfjbx?VRGr2tj2r8Q6=yVytS; zV|DZ^iQgDh%cAjth|;M`k5KPi4c%~twdMHp1}bEp(Q2?SaqJ$bULLzAe!rLmGd?Ly z$Z7Hp`XaremY$?jF`q0yuDr0}vYB0Vl3ms` zZwh9D#@}tD)=P;3;)e907s-+k~Ja zy>{$MhvXq)BKRQw`Rc}0q?ZsRBGojsiNJQE!<7cojwKG`c(7Jq`w4@zp zP@>Dih${1;MrO!on#Ts**vtuKN1O zMgfROG>P$UX!GFe+Z3Ou{#FSd&(GDbE3uAxil548NjmfdVThz^bZ%7;Fxcg^pn`~? z4W$A~02VP5az>ODZS#;&f#r2eynS#iufz-UW@wQaDHlONqnQw~O72fDRlqcKI|ttq zFtT6MZ%^et9%Ypr|^>J17z~=W1@*@f}jXtzRo0NA=C* zrGxrYn9^H_r6h&o^K>t6F_CjWuv8WNq6?*G#Cau(?4*;*lWXc#7qL>QA1}7QZ0PT%#Nw%It}W@Y zgM{-%!kVfykvY#Crr-)T86sd-@6}A>&*d0j_8$4hH}+D(%LZU$zunc!_?Y&rFOJ*K zh_Jr@DSCCWe@{QL*TyA?K6lVCS?<{>9$tR1Zir^Gln?be#mF30_-wf>-NGgfp`K%e z!kkC4}%O}D#Z$Ts~@6{{iDwbPZzF;!n`PR+NM^+W{%^NZ|{c+oFB5w#8-goS^9D z&oI2$*<8zkd?NJx+EVQt9IDAr{5QAMF>i2T=&}!r9t16~izz_<;BxBx_vwdre7dLj zN$L{yap)KC|F3@0VGC%i{0V`LKS-C$n>q5zfIQVu{jk7g=d0TWd*%7P`)@of>>E*{ zV?is4;2w8JY2KH248V|;H%nYA+#8g9gN?s|$Vv>;_o@$(&STy&dKkAaqQpDaaRNvVUOHDPfD_9#pLAfp1eS2OUebOvEoEOL1;$alMwj*aNWwGFTs zb{L*&m0_dx5z+qZT>P=1gV~(pC7lMFcD>shfUukM=cZ}SG0hI?7UR3uW=>1~YoaIT zb1K>=d8oqa>U!t!VM_Up@46KMRk0(Y0r|8g_aFMoXW=a?TSW(FtD4*cABZby%)!?= zdKs4NyN1cgs!QZV?E}?j^$isjT+Ox8;l2nTCuY%{{Ek=z(R%i{!*B>gT2at9T^AjY z9x3^{eUVH1L4DKxIL!R~AiJ0u;gubAuD5LU7t8HW1(sz%6m9XIH^IsbZ0~dm@+LIb zJUXKge>`j!6+SFlS!KZRPpu~R4PxyLjqg5W&N~bl0Ssb%zSo5NrntTVbH}vV=#%a+ zV6G8ZX{9$D3G5iJ4lC);zrMTeu2dsx!E z@4onw96(i{SeY&Tb0j1R@GB!$mQP^!)0fE^Ol@b=si%K{Mf*zjVOa5(XMp{vU(y7l zd_9ONYJW!X@UV9_++8yCD+z)ctg__|y9^N?`=%|R>Zqxk(l|VUU4LkYR=_}-yF1`e_xHKkfD?!Tiq622acg1MUG4`bo#}U~KMnet*7iD(Q z2xW>Z5$PfJz<89xRlH7UHe`}SoSI#&2@pUt0K$t$N;}JBs0K9~_DszV`*~V3HxKC4 z$a%)W6DE0iV|t2yq>h}mGy<(P*tPz#~uN46}Z*u{6E$g9KV{6fUS z8b`gG>$B!W2c3|7ww%J!X-^_6*tqGIij zQE7!ZpxOT@8{sC;R&s#%z&6wuWPzSX+~dn6@^U_A+kAUgy}b6Ow6%WRTkcg`0xy_8 zdpNgHimtyyy>!~)VZ@Q@F$9CPDaFhPJj`&|jSkw_>QgXMKjhwOmPDWDcF2f68&>C| zRt7$cJ41N>QqAZe!z}*NBjg%WxJmOBHfLm#Nzh`7f5Tk`yJ$BI(R0PzpO;)kGwS0B zbDc}Fp_!CAKV2uZApQ5S&UwwOg1F!esRdCI_#jNeb|o?1u#Rh>^GUD9vR7>B{Pg(v1&uYcK?-)>}_TWc_fQ1y@FVcX1aZ_r!&WP{tSv8e-q_ z*31EhkNy%z-?4hqm!+@7O$(u|4h;Q$letGnnJ`n}*JnxOYK^{1D~a|*wPHIbz(%zB zPU$cJpuCSdxR_FFbZLcqR{EMhb$`T{{z5zfo|zE1{W^dkdl{6$l5y^rv*W#jqZr*F zSt8R+p^~!lntjzcarCFaPAqm9+C%t5J@8O}IX7oqKdvBkwbTTz$JXl(q&+v zW9W^$Sw3szy;QdR3Vm0PN7%3 zAi$EXBLkP31?NZE)@rUJi5OU7D{3tuX|UeoPwUJIVheVLa z^}d%rcL;slEhv@71Z{sk|8fU(qEG#`g9S$Stl1q7?=QvxosZbAH5jZ`{O<1{OQ0(M_?>Iv+V$J>OlfsioOKC#WP&A?C zoNCB9E8N#NnX3mzY%f?E4~LeFq6J1nt?N}SOL{^a|JyZ&DHzUX_9h87C-+pWKDO;0 zNwk)(>$|xUQ4fj7deenOnJuX1aNe+FOk|D|1odt2jGSW30ESPg&(}6fZxN>#{&}eN z0a+L|F1QW)UiR>H#phA6l$A?8iH@^|}8Vlpd!K4d;K682aCCp6z>Xl&&n(_-HFf``*(_ zO4AOIZ(Nvzv*TTl_*I%^POFhn>%|Wjlbf|Ydd1cJ4((4%;?d%1IUpu3MsbVumP*V6 zp$bH;Km{)(ndBH~-9ox_AWc;~+slGresi)efB4-K4 ze&7LxT4;RzU&N(b=TfznNZAaIu|E79OH72iMV!&pyf#f!b{Dr`o3zBrb5Qc11Y%i z57K7hsJjItf)Jnj|B}paSzF^ArU3NCsH)K^Hs%%Bs=vZp z#oB$-tYfks1==82a?KbT4v44Y#3#D@hPbVmNrZz+*zgn^4>aqh)V7e|HpF+!+GGcO zxc8!x4zFUnvT?_FM?M{9il{x}n^)-QUIl)d@EVCupD#Y!qe-VGjB{#qOv}62ML=?U#mf;M@K&1@Oi(Lma#!czMo_@}X!eSYD zWo<-j<*0F8ZI<$2%QMzZa*Np*P2I?P!grOa8op$yMXB7M>xAaQc9C=POjyAOf&mzr zRaV87^@{M!k6(N>uS?}ko_ z)->FXYKZ`=0+&pNKR6@#wW5J07?7?3>{*AM-%mhin_bF0lB!nv zwRZP`18_|5Mo+YEKkOBHFV0@%0&x@bEIm&*ZL4!z`*yhPR)H7bBN2vr5Ym^jo3xa@ z(XvkqRh0zm&TVT`v_z$F64r%YAEQt0?TY{oj~p8-dU?$7h<~Zs*0Dj03ptN#6sKwv zL)rRF%bx+mo*eJMj(l}x)_!*A(erw*jUE;Yb&cma^fa$)py1BijT^G=6rq7v%zT?P zJzq>ck*9dOXLYP!d&bjsRtpGoMTt?&T{YFo;}9C z>K9YIcL%0)JN~3&xg`qs{;rvyUe80lwQDPrKOaSSSveNY3~XDwC&K?Ar+HqlrsU6O z=`et}S}gxiU~lWaOAMkZ`N#3!D(&j6pNR_KO!v1H&V}8-k+`EWAoTI8UUd=$0BpS# zoOBC4RPP?YE}d$57GJ%f(mDCrI@spToZyJaZXTYHTJTyct?k?hq_4<5>B(lodmSYN zN8q8|L#1}Vl=w^W=IbWai;C=eW!UW1$c^yu$_y3KvZs0XR&I>e=;;C6$t*T(AApPr zXhI1y!e>pT`%v<^ui*w^`x+hsXbfjr;{+${+azP{1<@g^4rB$Wo6OgS&4FSw)X8%PMC37 zd^-q@uexN6FVJVRSSm2stdc0(Ijn6m?&oZ)7KyO2802Y;pahd|*BG%UkH<2h-m0^{ z#>j5jKd}vSDh}V}H$t0FH1jvKqLvL&X=@49_KX6GwnxlxTsLwDGF`?F5WM;B>82q1 zouzto*%8!NEtF)$VQa=L>N3nwzg|k*4yNXewrRHf9`W0aS|Niacixyo-#X`6szD9Q zkFxBu5H2PPp73);Jo4}7^&;2Twd@_JLCk}!uzrs7SfK(zS*R7Ka@Kx!HfN(>Y%|A7 z9snw#-x->;I@vC|D!kZlAHAWKtae+)6c$V3zn6qD!5M!p3jkAkt+hfpP|!}X-P(8X z^GK6A015qb=DR%GxIDw__r-0`Vn7{z%uO;{sG$jlc)w-`f2N)Iu5{=0f))AB_y}W{ z-<84-3uX&ayKC&)gOp_DM$JvZKXw}T8KoeI_@o~8J|F-6U*Bbi+}w9DS;uO96S*C3 z5iZ&-EqxK3W4k)}&bMWUqe6hQ>w%{m0nM&A+Yf|3hBBvmN8VIl#OXWKsr||RGvd^% zX*64vYMpIQ1(!bpy1xLzjZyfP03Q-vwVu40-)8jBPqQksyg94+-GWt(C<6FSDYGvz z3od1uNNr{OBnP%fn`Se=4Z0#O?eA1B(>IhP@f(wm0ho{2CDf%%@~^|Cl9=3Q>9LRC zo*rWsZA+{H!AI@OA>y~CC)B8PyXhY+kH0DHL?`kIq z`i%R#R7s!&$Bd&z2P_;E2zQH0Ez2)^5OG#t{Cd-g2HmQYCilFf21Rg&C09Kr_({xu zWykt3@FHa=*xuuz%jBg)@$a_#W0{p*euk7G4Dgyc-#JsPJ2ydM+WRF3tF*Th7E3!Y zxKN{%Ic9yGaB<7*l|0a;H1)duA55+j1K`CB;)v(G+wPMr7~+=vLR=~>>3J{hNN@Lv z-3!@`%xI_79Ndn%10&2?>CO&qSC=dh@1a#eRhl;6*rU-ou7XM79O}1w1p&zR-J11b zY&IQeYJ-cr>Iglr3oa()c^VxUSbb~8F`i=hR(77zTuBt%Byq}YU9b+52iFSJD`2Qe z{fg)YGmvo{BbrP%8V8%a`0u(^+cK_6wuX)BoPQqT+^;kM|Mpu|u~+ad2H%+c4UY+} zl}#KX=eH)BDWOZ_7Pl8D^B{g;N`XX}F;!6c1Dn*KbP_1`BiMIN#{Jrx`*pYAB&pq+ zi28FH2Py9*_w-I1r2~hQb0v0(b_nE*h2p}e+I2Rz+?BDScW<91`^A@E+*VfcysrW4 zFLT~Yb*F;Qhwj;8Utv{n`xv)Tex*@UY3?R2W9B@s&yCR^&Oora46ZC%I92U6;Ifd zrt*e0*-rJEk zNuyY#pxr--^R-9t?B#&dg;RT&bnebRWtC=Csj-|A?Cc zXZoBGQT{hR;6<0$wk)nfjn;w;@BN-#_N;|tLy0vydbpkRB~oS3N!lm=B2nvB#<(gq zV?@Uukwhz{rEe|teRx|OY~b{ua!aCBa24HHKQo`2|e|4i_=ZqLFm9a{TKz)#J~ z2Y3HL4g`ITCv5%IY3uXmkVkLL{ZH&7;dtb&znZ({-n(<;Rn79D=IoO9`&yOZnUR?p zoI*sm+MnB~GGuy3V8%x!R=cfwppx5H4kv={G)=@MBi#2(CAV?^CZMXi4 z+|Er~Vm0l^ivKzlGCsv}6a z$BfOJB5FqOCyFM!d7dbSoXq`bM@G5o@0`lK{Q0EX+^pRk-#91!mVpD*7TABK5gubR z>G|47C`8G|NRZ>uLgSHA6HHgQd@w-v?&_&t!5_#B-lqIpWiQXZ%^1TLMe%&Y-(RK8 z*6qf9G<`I8fpnN(`K+g&OvP%@9OutSf;VO0aj0Et%GYDCQ@d-_Na8)&-K#yZ$S*hZ z6RSlRD-|^r*@Kl04Ar*qe4&qWoO`f-YEZdWqei7( zj^a6C(j+6{cQqu2(zTuiCi^TsfFOet-95(IW)Yl@V{u0X_~I$(O!uWpPmr4IFxQML zJW{|!b*~S3j33{&Csa8MEeTV=?5c9_$Ns~;W;kV#IKUEANiChvOySy;2`ibx%x#_t zL9#Wi##(Vt6!2qoEkq>`C?RKdH6aBxEV6Cko{*z^owJ}*549lWlX-x8oB$E!Gn z4@KsyDv!8-R1#^2y*44GA-x8RS2XSto#lQr82`)f((3%ZwezVt6D#w!a@?*9loyv`E26>;$W^3(BEZrHfJE zG0sh5;h@4?5%sbSiPY7cua?n~wZ}sz>Krl*&8XD$jeVLoGetXUPDUZwL?p@wtr+UV z-tj6a7`X!7C`-YGH<^fk7HY)}8__8CyI@s)F)1uhaKPX`1T{gceGu8WUG3ZX0Fb2YsNXiT@bm8p{BWUyVn7w;-s5x@bk!-KinssJ3L$ zMxOX$a71)6ab8n#khOr2k)=$vi5B><&p3fwL2w?&811mP3h=9x+MMIkGh{acLm&ht z-2;sFP7?0x)eKp zbmpeZru)H-Q!L6QSFmE_3_49UrO3`UG#)VO_aF@~rRwLzx)`9R+2hKZ!V@lUI zJ6LImcc6~OCJS$@Yc&JI?vnMyf-?+e!JeDK)Jb#_M{* z$fj{yQH+RB=z)R10V?Hbfd?a4Rn9@V0qve;+_)S-rodVTbP13<2-Ri`WRlE;hau-} ztUCy<`VH@SP3GozP_2m=UgZ5Q_}l@v_^|`jzA7#KBLr*^Zrw^ZV@j_iB7!(SLG&Hw zu?lC!Ztkw;SQ+UTlEA8UM1l8+5Wg>ugsP{&Zx9l3soNW&Fl*52bgI9|n@ZHnA|R=B z)wxZBaQ^^ybVB0Sw)%glr`195Dm6FomU39Z}Xz=kbUe zEfdJ=bVQ7mC6UQBMiz@Qm&PU}R~4!Wq;RHfZ%89q=bM;dKVY*KDH( zwUNmAL<;QNIV4qIhmO#7OFXiRHS96u8cMwbKclu$_;M8C-j>1FMjUCt8`^;h0?^Id z-;DnzZo%~5^IC*%?LtwmTxZu>hNPQc>^!?B(V@DQqKPs_v0uYvS48_?6BXcKL=#z^ z)RT3eVWJ2Z-0u&3n;q&_Bp25V71ZdxPQgCqX; zpBHWu>~ZZf=+@MfnPjslz*L%0PFtG&%t8rKQDT| znEd%Jd;iaG;2*q&ge*8C3S+44AE59wY-&aEOCrMm=s&*&cp9J&$gMPDetXx}==r~& z`RBjc@d9UA+sKhycznr0db6dG)p3h_Yyf(eVF+UJMZq+OAx06wsaIga0GvC)AyN;S z9WT3>vV9GnIuDWiYa||LPA}>|h?|G4b7q;il&~Nq5~A2WkSV8t{b<3};*E3sdsO_` zURm3y9M3<$bDbtgMlzrNHs)g!;Zl8004 znlQP0;ZI$e{8u%(Wb@-gJ-y2E7c{y#Gy@X2?VZPf5UcY972Vl0n&zdvK*_WEVq|p= zAoTeY%ed6w@v=X0vQ(}!Gm zD7=i#D$?LLul5;}+#?|<73zdh*d}SS1L_E2h>OQzU;mb==&+e8ttZ>A|4M$YD8caZ z=(pmO$2d^noqX!wvEqA+L2q<*2;0#>E==;r%T|9qrF#-bR-86OoXDto=`ap6Z=@LB zm8Iw=S)Tqq-ym(L%&_w6?HlXpQ>8V&NOr$}j|n{uP>ZR%m!BMm3QO$4Zx+|@<4U3~ zQU~1HsHDN(SDx-DD8!$Ds?`@C=l68SrUf?U0bPCg{L6Vau&L3yE_&n#0k0 zGmHKtjFK21>irJJf~J<0|A*WGq#3akR9P1jGQ%LngR26J_-3rIpg#VYkeD*ju+chi zkbVLwuo%@|2VqK$Z=v-*sDBJ2_achv=Y;{G3RpR%+ejgjl=h`5J7j0p;|@}%+wy*W zN!#Lk_pA(kmCF4$a1h+nnoMHHHqtX5?6M!tcH~0gi?@oU;Rx8=zbw#>WOF|n4U2DS zB26RqyY!KU$TBpj6r-|oiVIwxUgoq)2gHPplhR>W+*fAr8*e11lQK>FP^^eLN!XMf zbkkfLoj>s6KvL8OYpmKY=DI4EPJ*fX;r-Lu4_N5S-~^BbGs}e@KmI%RAkM^+ zxKYpHF`->tY>$MojPoM=MJ!_6gZ=dIB|g&t?;5=%iPr*M1lc9ea7s$$J>hd>3QXq zcF`Aq6Y+#}@F|m@`Dwvk%+TMezi>}->NXqhUa^aVI;C8df@ERMm#A!|IK!I@J_m3e zee3xqM5mqBr>a9`YuxTpuPeCLM#QSncRF+5M!Bcl3&%fX@6(=UW)Bs!{@X$0mPBt$ z+S4JHqa&9(u`T*kjzimniHsxjQK6_tJ^bX0<6=RUiS*jY^J2MzByYB5+nWkq^Be9* zKFe?cAh${{Z)oZ&s(hM})fxIqM)tt7vp&z8Zo*@a;2ymHBbB4O?#n`5BN{P+myIU~ ztmli>)Z&nnq%{>fyGqh`WR&z&993?uJ$J_;TteSG((ZI5Td@%X)X4`xu?`y{54q_}p2Be~n$dz@5n z-AfW5$4O*q<(55GpAC}}MTZ#Lt0VN<5JJXV3oe?smY=u)prWm87j!nOe)S7MAd!?5X!!s0ipEU7e7(D2c4@N z4KLMQUfnE;rGlJOr$TNBSJzyD?Q3<6!?2a~;=!FIn*2U9`_VKwqgWqt}Y_GhgZ8=O7EmD#=hJ_A-7F zv@kP;1W~=l1MMT8(?0A%5IT*-O-3NGCU$_xnDs7Eix=6b6TmaV-?3Gr-v;@bH8PCw z*zC~&qaY)HoR*V#KgLxi+LbF9r|7Gu48xlh+%frinN^%D+}D$*Lxg=DUHxvcNbVX5 zQ-guVmFNznknPG1Dffxpbh^qhdZTo@1Gclu*|TEh$CXdBLXv*KgOm&a_E)62eV_T+ zV^9#8oM62B91FDVrZk{%N*RRqHWugzofNDX|EIBN*nd*>{+b#fJcF|kGUAg z*#*of8POMVp$C52&lB4#3Vq1LK${*R-a=h4^6UZw6s%O<9^NGB}Q$wis^!h#N zu1nD6nJnvO%kO~7Rc_wgw(8By*#D5}%=rTUW3+6(&zHlJOc`)-d@3o8<{_H+LhY|j@x z@5pTBMhI47STo(U=_AMqvyMr(t%=1P1nwT^yaOc2~$t~?ZN z!5GMw_%cV&lgVi+xKZ$s2BTqADa~I3L9~5>cl4W)LQ!Te$#|G^oD_f*fjrNwzy|NaB1IdWR@H4;rk)H>`^r% z(phIvn)WAJOW)sbK&RH;6$E3i*>lrL<_F&>d{`GTmQ-m9ZO;5g zC1tkmGZ*w^)j$TqCvHu)tKF+!So-c>XUpvd@UWi%Z!TC0qsk}`K;v%96tlLzkJl)6 zWX_j_;HsXe^tJllTtPoNgUCiiz2DY ze%#Wd`ed!H4%3lT()3v|41vS;E5fxgx&oPVFV1NQ3S+cZ9b?ki4c)Uje4->%_u;MN zMRqA)wb@HX4yByXX^YrxUYmin^)89;6|6kxX4X{BM`~Pp4-vs4fJM%BZi_pZgz!mS zJRq_ni}u6h9CJuwh^pe_n*}O?jj94QKCqkQ=p9X5U$3w<`Cra4V%q6jspswYLj&$E zyrPqt(#Iukj|KXzl>;2R-8IOps>CRXn5`Ps({b=fX67iJlfAX2HF)XtZ&q#|`bn^? z>0pWh5mne!1QkC^*w6opRASBjnx}d3g)h4AB`KwYf?LTlV{?p~G%fhF-BHcDSL zZ}HJJjw)@G6ttIO(OB!{)yLH2?F|^SK1dcItBP@GZ|kiasJW`1Cc2~$^)_w$Bimht zZzOdRm$@$0SZzP47&$Uq^9wES#H8j%L{;HZ+#_9_zTNZ%c{wxNtQ7nWaeK9Eyg0`@ zq71}++e1YEpxnG`-n?~=? z8n1}=@Co^(Fi_ct!@@S7^vf%$Fh-Jne;PFK3!j`^?x-#lUk-)$-MO3!i$CaxOylD! zBuOvWfAqymDYF>`i7k6_|CF@3f1WLjD)Hqnu~&?sl>PY+Mf|~6rvxtV9XJ^C=l4I# z5BoMv?s%)=i}&NVmDR;Q*5}^a^xB7eldl~4^dFNe{@VK|zg60nD=QYJJ1>uB_AUSC zd$xbt_CRd2#ZeL8vNHCa=*!E0k3L$fIA^Wh{&) z-{TG){MVude}5piD=zQf7u@kA_+WC&rq8NwpLt>aABWDIeH?Z>DSdY1{i2kQ>-bmO zYVsae?6hqhI``z=$AaQjrew$13iR9~hTL>wh28aA;0yPnFHBdO!e`%oBYupR9UaH} zG9Se30;JY^C7%Y4x5_k_28rc}-Te#pld42B0s;|BX;=pH;y6zXN;{L0Se5>ULlYa( z0qS1gJqXin{8R*e$&&i&+8Z{$MXqa4awu=fRd`)fRM)QLRCDT0yj{()@CKwRv1z$c z%;72I04bTj-p;{mL~yAAn|P>YK_`ab)G6J?;V=wwe-K67Ak>Z7YRtyt+N58b6O4q6 zX?=79M_OQ|pqB60XMV)W+EKs&H&m}!9+mX5d3Qy!ty}%PepS9GA`d##4N%?pepu|_ z$1&S6ZYFj^XiV`%PJi2* zDA6jH0|&a=k~b}hx^&#UsiF?nw}@m}PX$)IED#6Rnh5V^iaYICh+*?%G-HC#&G6#t zbUnEN-mdY)OL5^~oY;hRv&Px#kTb`X;f}>F-^jzI{oP^!r_t|-cR@fnb9(rxLV5DYK_BXuO1sSLfs7C9>t$r3#^QyVW^A_NJU83{oN=ldBz)jZELy8)XC2*M zpRDkqtf#Iy;D-8UX=cvJB`|JDN@|A8l;R3f(Glt2D0D-ZJb%@y5mY=9IIZx4IuOIY z{9^{0jALE*@ETV!yF1gBTgU%v$aB^H@?~aRe?0wMK?8cF@h?IhpGS%o#*dUlo#J0d zny8raf$Hf=EtQ_^U^HWMI>~0urm*uzm@8BmUmIU$Yn;^$mG{%8C!`pW-udG2XPg$a zgVQQ7G9uMoFolQ8I?EOae=oMKC@5R%_&rO@Y1}nb-mvI{3U`tUIc-)OO>THdD%ag3 z4%6^z+s2!0!ga6~&(!P;9m=^&ULG#9L$>bvsaXzGYcm!6hZFEZ=}lJmcJ%PhoVi0B zE_4h3uJ+$b%VR1Doo(LQCOz|m{InSoK-V%rR1=$g;wQ59vkNeJ?<^<#F@FUOZ8}8l z$l#O_Tn`l|p4Z>1kxMGuCCE+%;6@Uc> z(+Ri-u26mOFuc?w%E&3SLHXr4TCwjE1%-@mcboJft5l=gLUIzNo*&Ov&#j~PO7a6- z739e1^8#f1br!FTPQ9nx7M$~wI&P)!Gfw3}@Pzb}fKVqDSubpoobDHd^ji#3CD3n9 zE|=aA%VX>>LR=#`@^8p}vA+f*BTSXa!sbXmpb6pC*N+j)DXc`d%#4Bsv^J5g1dy^v z|LcCng-`2eVMj5P{@#TOq|G@Kx0NTE3FgfXCD2#e%S@o1p=AE z7b;2iDElz*v!u@v=G?hJql-^rBBFQWA}U9dR^Z_Wb{S2$dRG(X9dM z>)@w{1_UV8d``rhVUM0xaQuY;RYP?E>6<}keS^^bE?Q<)EP}{_(tv#M5$YSPtG1w&;&?l^(dmMQust$@ z@R#!qJnaD<_=8);PRDEz8vAcx#TDS~SXSw&!(;5N<&H$K=c*d`O`3Mt=937Y7kATu zjbIEza-Zwb-ZbE^xHBcOCd5kze9*hQ~Y$3?M@)kmqwF~ z)_GcXYzS+6LGltcf`DIh&nlS!l|B4g(RkWU5>+pblIIXizlOw$rt1+fVO6)5nF|s- z*K!Gmo9^+m2!`vDF^ikb$TbMP zF+Dz*rgxbMy#B{!lHcBde8si@5Ty*vI6JQq9@0&UM*5O%iS!Ogioio(-%E|*`Ejn;3l}1NGaoA@@909eUh-O6 z@wVDeFrppcMZY4yRlL%PAsnwc*l!sCah3jR%-vwp&1m?B!xs4ifN>-wiX3uKR1VWvP&{R6hzoWJR%J!1i_D9l9v_@gM~RQO&#mL z)(~!Y{fTadGvUBhpNv1;o0MU?3c^bX4p&$Nk2!dCDynf=8BN(<8^=+b!Ix>^g9A*j zS*s&kyY2XK_ReuA=^0`-{`8%GLutqzE7OAk+MGRP__9hZLokClNSr(Z40i7P&o1DB zIa=u8&niQ;TrT-nmU+kEcoy<=Tw}`zMfYsT#w+RLa0o29I(DQ*%g(7EcBUw$^@@Vz z#fGrB4q=`KG;0W|&kI1$bz~k?dbAcVl`n41ZlQY`R@axCeYC^G>7<=o`O|n|$*7XN zkuqD&6<6hZxTMZ@rZRELKkWy)Y@_#gapGavzFjP*%Q^4wC- zh+^pv)+e|{AKQenkPq%cmVbL~7lWP4a|zLME%39^k3{61*1yWPX?5H6D`a7I%Oaz* zwiA|b`7ibP44+8yK}tg?A*Ef~LsDqB7o4?^MA_G?213SlXq z5pm9G@^0UeCOUD6Z#?WO#iE(}@`bZ5g!bzkCq*}JcMER=KhQoy7GzC<@>mI2L*X!% zw2Hk+RH1WkMf4j%1zYgj1&$1#wZHWnPj9dH0q5U=HGm}K@^y7>T*u;iwalr=*|GR% zHdX!UesnZm=&M1}^#tul%AVAV%t?bNtUjM4M6X>h56Sk!)AI12Ay6#20-wE!Nh zqOfc6d+PjC0{u#kAwdQ2rfiE}bFF%9-iX*#W^Lrq*tbkIMi)AoerB+x-fd(+QARh> zU}v$d@h9B2r>WQb4zH8iyjjRTIS`%f|?B zsU3b+SL%Ic*ur#%lyq3(^M?BW!A*9cVZyo0>EwIo*S{0v_&qlfq@0ZU##X$xIl&%W z!rR5GcL6jFG{vy&FD?FT_;luYJNk`r*`ixgrl|pV99ZR#Klznp-cuJbWl0@$izjM5 zdW8dUww8#E22jQ`>!C?SzxYWW+M>=1-Jb!uW>~7wMp`W4BB{aJP@;?7w5LM7HmjXT z_93*HUtFQK4!nV6X_*t;e;c;P5s~&>gZu}l+c;j(ha*FIhfU|^n|4>|ZCw|w^eqX_ z_l_5z^{Zxn`d&lrcH{O=SJ#ZVI_`d_TJG^mM9a`)jQR_TA zFkxj{0=#8LI!^31S1NvW^XDz-;#}CFPWy~ArL~CjtV|``i@UnQV5D*D6tTT-{%Td{ zJ}&5f=6T1h?|%1Yb>l4J2$&mIzk_vDAXVDpotn`W8ZVr0QpXqxB3x1HDVDfKVjm`` zx6V9_bCl%+T?`$3(gPCtbiDA^A2NR!Tq)~$gCA_r=!Br1FhbB0vebEfs* zIyNQ^@lgFhEvxwlgm<-Of)hn0&NIwURhXKGSJ&R`79u$M4Xz(UrP}I^tGv>I)lF+6 zy<)|@Ueh7Dv{z0155)0yRjbMeE?DAK0w;rLPC<>A%jvcAXmd=Ns0Pu3QW*69Yp28W}AJ)i`DFZBV&;?XF1G*c*3F48^@j~(Z&UaE1AMYwe`fg zmkNw6Tec48a9-a<;%YUEgIFLhXg}c_7&QeP%_Qf z=5<1+7n;!On;@1?S0A6n$@14?rxVd)VWGA0>_TKeBW@^bw1VI@iL4;tThS8V3*vwU zYKkBB{fqghamctTzQQ>*y>O9daWUd-B6)OAdS>0`df}ycHEQzU6YE&TyWfhyxeMCa zMtJi{)JHl=QF*`**8hC9sZ8YbbrWwFw`Ct-3@i|H(N1mBPdq&L(1IhQ$_>VO771aj zYqyW~^Wyr6J=_c7LU$DwNqP`y2r9lpF9TcBEqaJJtuteFWlq25c){XgCQ@ zv$TgyCT0b%af27Vjo4kA`wI5#32H$2B={4InY*$7b7`6u!BLXo0Wr$IwD-XnXD``dPOvaT+v7;d^ zIjtCQf5DpgDz&R-$oO1Rgr!5Ya&{^s2c7Zzb<;Rpg!BW!-hrrt1}*f#`yS_d_+Vjo z?qyvCF(CO33Lk+)>sI*`7e%9kC0sy?l4$q8*V&g0nOIuTfY}@yHpQUkn|Igh=3`p< zu$wr>E0>R$q|eyCRFkeYbri|L_Dg#2_=SeIsmGAbr7< z@n!is_-z%#(C1^@z?(91Kul{imET(goeP#5^B3%F)HEdpi6lZAb0;pu7#xdS&T1-w?@so{5uocGu4kV)SdTU)K=>Mc0BxeF(yWLr+oWd~qznAfb#XiYO~+-{n+o`Yg{cUQ64cUW@tZ%^YU zGQlMaPOD3>qk_|Z1FY+{57SSN7Iu~lapx);1y_;r6)w9CM$|ScXjo%1il}rZz|}jB zr(d*sMnl={GT5z2n37)gSS9~`AiK%g(hO=2jVK}YeVs;V z$j3hUaZ|-x*Ip3XJXiG4_u)V2KQv7TzrJGk&N@G3^!|hAdp~%wuKSxee$V>bzBNH% z!om-YYd*AV`0?87@qcwVm%P9B(|1xo8~lst*B<@0?)A1Vzbj^^v-kdf`|O{-&9+Ti zvu4+&CpX{u>v13ZqkEg?AM?&`8~yFu$d;FGtozU_CgHi|KT5txu93kZe{`MpqeE`5 z-S!xAT=_xF&9;h7MW^2}&JC_y9rgaQR<+lf=U)U%tt4*ay9eFcHJ4tq{p^Fp_pGN6 zzF2gB+oONV_g{bhmxTSN;;jR-V`s11JzO4F6nH7|r~i=b*M2y=_uwP3`FY{Xo4>s} z7IMeu?LWEOJ0CU~9{h)h4y56Xn3^*(^GZ+po#DB~FwR^@;O4CrRflJ2XY>JhTmB<8 zGH~Y8r$H@PK`Q&{o_$=`lR-LAabX6y#1bBsdX(axpi+G~gi@M0`LnBA_*nM?wlTn* zqHL9x?>Xde$X}wkApU$u;;5=K?WTb~{LC!3HtA3cb|8Qu1-nZ&Birossu_hh@X?E? z@X3t6M-bsR(v~p;oG5R&S3HEzq7){LNXeN(hm>ZEXG%p1(5PVviV2(oFtY4NJLz{g zDPamtdiE;ettUJp*)_Y?=k1fi|%KmU5epBl9Eao&!8QKaf4xL60&b9miGtJZOsXESIBWLh3i?$IrxuK z9_>|-gpSlvx1#-378ltdhPf~ZpXyMN9A7vsE5X}fP=ijG;;N6dyqUm3WFqPWeC~v9 z+6}xA-K~BCOeeTk7@tp5H3KD4dpEKrL+z;?UR_NBvbz_3Z;ZcwgBeB8 z$GEMXdr8)O1iN2%eJ}s-J7UT}d}%I|zNi=Q!@k5GpmX4u1wu@pdB67IT(im2r-oBx zub>ynX3H3?Bx5X&_lJz&a5xUm3UQdiAO_b~6jI8Zjj+3BKh=4n?GvGiypv>!sJ%Xw z3wl5m+i2*(-g{`(Vx}n>gqaBb9cFw4Y3dw1wcMIND2pBAd6v@XeVNxlb|wlOq@r?8uVL1+_Z5FR&! z({l|p^&F>R-mi~nUu4JOh-^nxg;Ve6c=7qtS2=AG1?~KajzIsyF`coLl(2QG`bsS;TWPat~OGAmyBzW=TSaRpU;^C9$savh;;{ z#s^R%4po+b{bGmgmC?ByDoBdLf^ceoiCRHKZEyv%hsW(7aF9s$t%;8Oh*eY zixlzmj9KiMoTfJrpLzBG6*I;zlq=Pn2f9#3**(riJSGn53@S}CCjc57q8;EgB{49i zl!?ChnV@}bO8}S(Y#UBP*usy!Ou%D z^DUIVco)%9EiCPRO&yYW*O}_;`3kpILi&~&u=f3jfT|x3IBsj1qv@=$2m|s$>(h)H zgDi7QxA3=x1PZN|9S;{i0;Y7ZgHK%*wHK2}24b)tbR+TrD+2qh>7YCG2Mh6;O2DK} zO@w*Tww6Au1Y$?k&ay0_bG_TFIEKeN)l6N=Q~Gh#tp=etC{%OoG+7L0b+_;b0#F&a z`?3vcOk2W8uh5mC;bR>5eG1SlP*}hoM=$sYPru=erRAJ3PIvhX?-XazJD?ZLF!Q4X zr$R(&@y;-#;ev(*eg@M|Cl6Pq?5~&})fi z^FGFAdETx=y34=#rR=6K!iz&nEv^2(g@Htbg-e>YVu(@Lxz~$`92?b>5yf_!NYoYp zM#vSkHd=5+^jIX?sFi#03Yym4P~y#quX(D18o!4MYNXRPJcbJQ-wXme({%MfenY`l z`3%#((@+K}>>!sh-ylD$$Wq6jVXU4dG&zTWOUPce(08QGCSd&XN=E~AUGMn%FxKF} zu@+<)O20PWm%!g0*9m}LqgkSTeIJ(q#oE#oqPu?TnZd?un5)c0d&Yj#u|ucO%|1EGejnGyBwPWc3n6p=wVG zn3QQS8=!H`8J-^)&LxWVNu1608U?p@3b)KV{FJ;PGXYN?Mzwp=`clo?pXHOyBh$II zeWF^8cSK_SO_@&|Ci8uj%7R;StmedBjNGA`B^-q1eMOqV`S_3?MhNhx$6^GxZpy+p zl|N$KlCQ}J;jmPNkyo2X+W1~02%PnlYP{o)9w+-B%mnVqB_SsP5j*A>foufo1boj5 zo1}G+U$8(brtof%+!da5QX(?$ny&GWREOi9^MpvTOr#lzU<+VUl6sj-PoKf) znj7bE^hs{$e$-ip#i?&Wp}lZ^|}}*Q&o?A`MqUs|-I-BzqH^#72kLFP(16 zKVBHqO=t4-in#Kp;ll5eN$Pe>-GOI&iP_id+5jh1)TsZmql7$7g5#Q{kd`}^NGUL2 zHcfW|A{deMg9F8*FSC*ED#v0q0vh-V97|NT1mPtkiA-al!_$3bk}xaNeL|)w4U79b z-j2)yd&vce-0uHW-dObqK?8{OESohE&)RlgW^l(RPSMt-!}N~;*i??v=`F%Sr>U&i z8TKnh;9y_!_B)GgOLYButCSH;8Tbv!7z$ z?u{NH)&=kJXU;i!W8sOvE4*u8n%%EuXBYy+!y(3G+~o2`gMuvJJrW1MVkcDkga5wq zPk+JM(nm3-G&2|kzoAa?In!&t-kCSCVujmZG`|vY(K+U$+;3bO7J9d*aTlV%b0|7o zW3_Q*?g*Wqzxp`f(&x+jN!`KQ-E?k;Tu~&zO7l_B&Mnhyt(V?Cesu|Bm!^MCmfwyg zvx7Vj<9)7UrHWwC%`AY>Xx=nVzQ*KxPtUZwM< zu_4Sw>s{S;Y+BGu6!AvuD~T}mm-1TE#&j_akdi!~X2p)_N{=yL?x1dgJ`g5Us&zBh zHh1AgLBMVz)I}6{@CU^v4dokm&#Eb9m_;I%Fa1Qnq|@788aL`g)mbBI2DvSYg!u?! zl}ieIkwtcwrma43x!&_b$kEN;wuY zq7vu)K>S9DT|i&746}1IzFQI!@MA9;Dw7%(0Nn)#>9Y)_{VjF&pJ5}jYE%&i{vtc1 z;;{9d#{|tp9PcY#@E2x^>riXlPuj+nk4jQ;vw{Gs zEBzI*BOMh~lNeD7I{WMcjhh-yVb}e-tH%3$R6jT|t{rw_uLOvPdQnvJ8+3tj(~>t{ z9;OLrzkYEs>?~51hv+r7P)2RKR2MLe<2OKi#?9H~9bNCu5H!t?Kou;p%8WD=iZfQx z1?zYH&k=0o-{BogD0Hf0u#C4y5wUx-*nxh%o1Z$xy#3XwpRaFFGxiqp@rnFQrmGAD zWh^pXWhB7p^c!E&D`C&2N>9<`?9KSA=gY!YjuUY>y4u49WnxSyYchX;Y;JBi?$*H z6tDzp{Jf>f3&lmC>iaVZMu`eyx?P}7IYBMsD5uax)`kSMykVfL6e1%9Z9ma6o96AB zy1LY0SwAfwK5cxItiljRc!yCbgvUqJ`DQa%Wt2ucNnQ{2Ez^~yX?6&7Yafu=vIrk>09Kdlb= zL*}VP7qaQ#-~T7W_h)sgfAOv^jLPJlKpC62@sS>iFvpAuj+?2FRLGzR{cb27VLf1P zkD&`H)a0z|UZL~_GxG1iEfKe6O~Qphso_?AgKS&eTB&4;0ZrrfJlCo|++$qkuTctp zYq(q#_Y_3IjeIc@UU&(SZKVE$xd;Uf#5oF^)=j8odM{+}=C|K5cV(g2$P1^o zUg?*4{lwZ(5m{_;RdwemU6StdlR%~#R<#kOOKK;Y!@}M!8CLVYiyPhT-VatD{6U_# z45B-42Otw+wA&C~Q!-YiwyJ)s35=aVSh9o8rH#1v(`R>7rT0tvK<{{d;7Xc7HGyIF zR_KRAZC3Sc_FNSs=YudjhdckgI$?&PH=H=T@N{s*WjfERP=sDf6v%dkPsQ=#eM^S< z;T2a{KH4blY3*{!adTmutc8!r^O=0ve3#0xNmG@=K$27gKrm7!lAkiidYUzB*CAhU zTu!^q-k0XvV(OrToJioLH2brtToLiUg&QJ!l!C>~qQ$DIM_9v**8h%hR8NkPWxna- zLK)Llr6D2p(7_nFvM{2YYypvb?xb$48(rJ1Ohol&aX~{}>&k~ta>pF}P~Fu$L=0VN z{X`97M)J#@8rekVP)zO;tH!OC*XDR8#)Ftun<^bxu^U#0t1s^2>_{0FsFyhh_wuKr z7-28uDQL5i7&(2x)>lQpJS>Dfr8=7D6R+mYfHoG?1FwN7sdH67 zJlFm2&2XUy;wp#3g1-1mNxS620?(&O8E0cpxJbA%&H8xD)!#K0h>}xNS;2qc96J8} zL*8jlEAau-^U9@07iz#W)!xqX;!4NNNDw6nb?^xIz zCCWJ3Wb@pIl=bl~3jZ_kyjj4WbF(#*QGK~ZSF;r84MABO^6TDl_HdP>;^re4*w1dJ zK4UM6eQW;Jir{CZSI5GNqDtkK$gl?us~mp@+W`)OZwBTK6^^@q-4t<-ru+6%rAtJm@=YPw1s=)> zqa_UFy6Cwywkxh&-e$Y3snVA^K2Umn08@;_egRYQAgy2bcAjS2n-jGf`6AVi6$~OY zMzXmgwuv9N_QZ(z$WtB~eJ_*EYusPG-M07*_j~eM(X@`K*tC`n-q!>l-Choz#LHi} zXzr7_B-T%5h3H>%-u}ZjXAcCq=16dgpQ#1{fGz)92QMVNYUTjF*G^qsB|kp0hUg8d zLLh+ivhpQYT~F5L?9KW6UxW!SZ5zA!=be`(&o4Q5PV~#W5o!HQl656h=+xl6DlxkK zyw3~S4;`vMba|oFx_!&aPkZj>y}dB!=s&ubz2F=1arpn7k6gCn-NLK?%6tB~g9qOH zaK+u9D;NIpMce}G)};OC>UN*lcRST{*P5C--#uSuJTLrmpY($rOJnPo4$oZmbM^Wx z=+@#zt3P{f^H)6y)($>vi@x&u@>=0g%Dwp&&#I;m`Jei6#l@DoA1>cleY^0FUmZ5D zsC@Ryz7KZ3`r7i}$6tJW`16uqlV96^&_nr&;GpPAQiNjqkmrfLdv4Tte{}iB;Nu^> z{KfedzkTuN&%fNXZTgbk{`s5_k_WwSZ7wq2eLv;;%<+HppZp;3VSCk!-@Ldk?AlPb zEOK!W>d_+y!$x{8uat)eydEG96BJ{xK3n}eIpAm5q9nFP8|M9Lr%-DO&iVq+#GZPX7}fx31jnO8elT`eCtj0~eD2HyD?%%72r>PtUA@B2z4N<=gB~bzaiAe;4gg zl0XBq=Uhg72yqYfj&HwgeTE@yPT^9xc5M+v@K+~b%yJ83mdw`6xQ*Nw&Y3rlI#+XZwiBx zIkrs15`Q-a70sL^^Hu}U4E%sl4=RCmH24+wT7lS!G{e}egZ%*%s)Us*e6D{tFO_F-U*lPiWu_O z6|SOT(*QXC9OIKY!M}d9ZYj>Agto#EPhRNsjbC*FI#h>qWmY1RGEJkbuughT4d0eB ztq?&4BZn3ROBYuDBA~+5V9|gAaGHS=fTV&n1E)1uT$q^)eXo3Okb5}K?Bp}q{kc@g zuTaxy#U!tHE#t}?uTkzF7B;vF8f4ySCv^LZKoa1NViX7#d2FRW;~Bn!b~0F3T;S>5 z)RgoYRQi)(p$O5YS_}dX0@06%)Sq)sFQp2A5h%HCS(L{0(6c^AK~wlYCd&j45vnUI=^IZU2H~#DuQfYIU*X<4$keabBy& zc8(@dh1P~=W~?B^J{WTU%}fCGA~`2C-eU+{#AA12sVC?!WHHcog(lOnP-?*Uhe0!D z%u02vC2b-ob|4dUUoUL!)ghV2_XSIl9XGO*BfS0&tD99rm{G;@9%h^UrU)3JZ8i>YbaP~bhWB+FH=(Q7 zkdpCSctkCK*+XR+TvPSQ0e6JnfONnacFK&bm2;U~=@W(L{G3s0uu)rjzkX(>V|lSA z?x+%uPzz|E!KJ+v^`gl#i}ARi&gqzFEEj_|jPuk1p)lDWvjE+xR5FhNo3x+yWn1_R z?XSke+nUJj?i3N>-)~58u|tm#6rT28-pvLCB?L1ZhJ-*~M{4}_0V=#VoeJ%!>xpI` zd=v0gHWlp_bYoy5GEMPXZ`BE(jR1qK2A>B-A7m-kGBA0C5XtBqq-`}CLJ$|eqz~{= zpl$68Ot2}5F|=<%F<2#-+q?f4GUSd%dD_ySkO{ejq$d*#9?aXeVA+G-la0i$QWM4ahcT_igaPo$k0oM4SvQTb5H=oQ z)NTVYE6s2qE|;9^0mh#<&Jrcu`MALn=~CsJ<{@utWfQ<)!1Bf4?EIcpPp6oJ`vntZ@e``f$#oD9x10PJ z(e!i+<{{7(0)zAs17sB@TTOl(FV~gFy0$kEYWfPkX#>_Z`0TVPEUblL@mX9zL`NHD(Lq5~hzc8Kdod$ak9^mzU+~%2*c)02InY?rtVg3j2yBU;E%KGs*Wj&g!_%osi z*=hnuDm{+PHRxQqFA*p#Wr1h(fLxJ28C44|-m)nU6UPiwxvlu99&_E5HLbUjUmhMu z#}FeLZsD6O04P%fAVtqfDFR^aoa9j;b$mG;C)DgS?ab zTH+x4{WdzMNqEP`>Fqm`GxI^nJNeYuwqOi?Vt{w+hNJp<;Tzh6h$y@}laYu(9UQ)x z#I(bkzpJ^%wSLTQlk*0#m&NtRXY>y$)V5`Kqbsg(XxN1bL3mlF zh(k%o;b$CNu0R%@%7ZVjcJo^p!|FCX*B@AF~tdReC}KKT{JZfzR`$YJ5t3IBL$H&*CZ~4Ph_g zPs8GSB{+X?9`xU?4dfvlz#Aa>VLm)?rLDr-bg0^{o#+5a$sY76Pjq#quThIihYu#P z5zi*kX#*w@^#*9DZ-!N=w);L~W8DKnsTWpg6Yy$C5cXO8(+!^hr@nzf&?AUs{mJI2 z_iId{nEg$!MlM5A%Il`}FJ+rwnp4JBjvjc^THnSifAO^0uR78|PW~(F5y;X1zD#$% zX@1Gl%`~(CPKg__h7YWS0V;=KVLh@D%5KRmjg!i;kP%5wM^p70Khs$}{Kf@~-{O39 zS5*g+baqZf9t2nxNk1KIYE({I9!!e|*4w*%Uo(w~NnTn#`p>F9@gAaq&~~wd_w*R* zPDj0Wq*%t?D{FG}tMg@LKr)LyDp2mv=od;?C|7@!`#t8QH|s?4_XHkQ`M}8zv*?XA z@%<-@t*4^Oq#oh%=V#fY1GYQ$`SEU?%Yenp zvj;Yj`WU+Y?lJmtDmgc2evoK(N&IX?^4vz=Kb1jq)tWVNZ7*E>=`g~wl>`vBtk@o0 zOlbVdN%gNPeg1JjGhb{Mk4~|N*-i9^l>_K7lh3K{EzBD(_t&^^v0vSzAoc|L7l(aX z6+cUHtB-T9Y>j_k6m?^+%VWlqm-AoeCCUQVi{_%|J zY3)z;YeZU-^K2Sz7xV(Va8n|E)cWxu2%|#>{o24YJf|Ul_rt!86^SeEAqSW&_2K4D zw72Xtr!pn+V{FW8C6OY>o448R8w_Epg7iEMIx8M59Texjk*eMT-|8*3e+q}iS%=d( zjmBvd3M?!Iv9SW7K^lQ@8Tt1?#HU2!uvhVTuY%8kh2q@?3%ZEFaNxkT;CFhUmB3Q4 z#Y0W~1IJw;$ygDEnfOKmpgEthpeS3rX(ezLy4qwa%nkjQJBSZ2r%-iFcUA3DZg%NC z7pDZop_=0HYQ#U0zXOh)q-Kcs*x zY#WUE=@zVDOc#)^l=S^j>QPVGDt`^yT`}0v_X^fkfjEX$UQjW|ZY>$zRXJp6h)W_8 zc+Ce6QtWch?=kx z_$?W!d`iN;*g4J7E5lxk|5R{8rmziTAz_Zdj0+nUiljx?qEdH+!W@Cjr4nB#a zRB+-`7|&rBWU{8xaj}UL;#Q;nt7v*Bk##1aamGl(CC_sxDN{bAGB4R&s0y1rcR z&eSH>yKTuUf?QSD&nu?o_6 zSrn04`wnYrkVdWL9(3bwWg&4-WV(%f`&`@%OrC(rBp?P&cz$M(}?Hx?b;5}*@x$LB^ZEx}UdVrD#C`h{HvWcjSk z16L^39^8^pgah;3g%;2_Q*VQ7>L2B8+g`7h^Zllf0y+sEl*NCb|9>2v30PBS-o@XW zg~UWiP!Kwa5Y$>kS-K3%uy_R(rYlyhd}WJTti5z2{?dIManfymV9Xg~IAqUr*1Ug>+reE0-j6@sxP9^HZh zAt?1LW|J7Jc+5nfR0;Ry-W%oIaRMm=j4h>z?>A`lD4~STj3qF*_67EoS|oJy?iKIh zSWSWn15afKQOIXWn5+-%%#+g*f=dhCEUBEU!km5&&*59)$waT;I3xkzG(xTwl1Z!AfY&Y&F5?FiD#oa13PZ(M= zj7xH}j4nOsj2*%(yya@DQME+kt&i_E>B+|p$h{E{U`6KJl6`!qq3h^CvIdg1W@nr7 zd&QA&kNOtPc|iKVUN+2a#>UC3B(ohgYS&!Q8orPxz=eBi23cGX^DlEdD;AMpy;UsjguCU0#-WItnsnuXvQ(EZsARddTE?SWs#` zOVI6sI0XzF%WhRRScOUU_S(D8q0}byYdlf*a?e24iWW%hm*fQ^sPaL9g}B1gm3FZC z;JgVl&}62{WHE_-A{r=NgakuBI#kd;c}?Lvx!FZWO12zcdC6{5UF7ZD_S1nq2Y`k+ zbZz<2%7^&k3lF|}X6bl3o{&Gq$#Oq6ugaRFfe&6JTyYJ~`a{q+tc0FhGo4J=Q>N*6&1}0x zr?d}Ywjf=ii}r!eZiOHsNQ|rb;+H#^7yV{ui|CC1FbH z$z)mvW+WFRTA_(vgRD(mi{w*<-2pv~snMF;=jnYp9cc`%of43GUTC<^n51ga(i~Gg zUnC7)Q*F>%I8}kr;r=M=#S`pFwTNj31Ik&`#7p?%J3vhR;J4tzUEgKFdMjl&1`rG$ zw~>qMcK5?bhw3ZKNC+#*P}j?vRx>3BsqKJ=4RG_3nfyuEc;<{5XTII8C?4Y4x{4d!2(cP%YzBHkxw(O^)kQcd_8 zQUdlHk0?7UeCX4vY9FntFXvAf)ZjK%GgE#MBxeR3m(aK<9rak6*7QzH?EBsfPK!{w3IIH3GgVj=I+)nbuUiR5n-J?DU|6qcRM$5w+vs zF?!dmYEX!}KQ zEYRlMV{Bi)6zF(qFOVPhnpOqJC?@5OuMcG8DAMw4zG<+7X&z6rQQ#nZ0nHEWOf;{< zumZ1;kAI2V9h2>wFO_Ph-)ud&=6-F{HVcG82+wG<81KVK4P&K+8UGc)Rf1+NDZWip+?qP1XjRPYGNp(J|1NN;(jX^V#( z<4)OnB~Y?yjkpp?I4?%WV51JSQ9OQmVTeS4RZlQ4?iQ?f9rvoqU{+R10;SbsT49fh zs4u7Y^XNe-Knm3^nV3myDpA#<#1a98fZcezC%!!f(TXo9h??vKstz))9o`9@bhbnQ z|Mjw_&E)Zbtb!${@)+oI6=J@t`X0Y! zm?hY#KH_*zv$!Q%-8M>GY%f3ns8rb;gfiKHc>v{~>dpGak1)^Uuf0A&mHh#%QTinE zAcNK~wH#DsBQGL;!BTBX5a(kiG24RBmMHJ59uI%Ny*NMWc^G*&nSR*%oU3of6@yIk z85id}mIIxprJPgw*PF-(E~<$hqN+qcFO}o(9X( zKDyJ4eo<2*xb*zVfQnk(EqSaHhJ=S1R@O!0<8jmU=diS#2BHY}h4})FFurLw!);s6 za*iCu6lCqJ2KQ>Y+__h32j-zb;Tm3L>y8O1#?+iyW`Ykoh7OZFcM9li?f{|o>x7{? zpxvv7{F|_nqT#;98r4{P$1l1_y9G`(Yz(u6k^g%dV{qwrV#4g6el9^ArI1ol29%FF&(ir^)i;M>A~ z1)&*MEf?Txpd8}Xgq#H>ZI8hKQ$J|cJ~8}O8BL@vN)A*mNX>yNOtbI@CH1Cb?@4Y! zv?YY)5%Z}L=5M%sAbqW7#dD0{Sp>h-w%w%7h3w~&weGoVuvUyny;lUPvmeHOYcU=%j z71+glX*GY6MCl`fWos0&Ahd0qs0_sMbO4b|Y0Bbuquzc_Gs4GHoWU0?B|Jfat&0c# zId!|i_>%Aqc%Vn3qR?+jV@CT;;d>bH7SdcqFYp3s7U^7iIt=rNJO{>of#}Xwunt{3 zbsAZB!UTvwl1Ae{!#hGy86f4@D80H_to{Asy!BeLy1vEu(mS6qrP%)X8-Z~j-P_|_ zD71<~L&~4TsogH6iBw3=o6*}Or*2abj@qq*u;yRX*`6kj#<#rGuE|YY+f-Hr=J+R>R4M78RIu$=p3hFV$mRCrDB+P&8t!6Sb)p!6rQ8-B4bPn zs7Pfrch6It-uGAGDnVTRDUl_FiL8EupFZn^jB$FZa41T0LrZoAdUNvZG1iG?)}whV z&rJDV2JU7UC`|mX8xSW&<&krEP(CHhtP9;^#c=g4;)CFuA3ra9Usqcb|Ff5Nj>1GPPfx z=Nhe(xFEKrQ1!@|%n_}c<{qU7#LQq7W^REf-0Eu)Mx$8VuhpSvNm`f5{ViCVdJ<(` zGufAd?1s^oj;_+{`NbBABo7Y@rNDkfGpN$#h4X2B@R zQ&Axm*C3u5xy{%o6QdzlAoZ&cyiR*x7WobFNO_IRR^fr{6WU^6Xz zNVF24Hh2D9683$kYG_i~W9&?GJ$a*?kRL#!y2tl)GiD&sMsND>oQ{pACvjtSAi%ZR zKwhUi6WRqcS0spDfRB#dh^60w+h`zQiPp7y>CO4HT8&>wi!2E`x#n|rinP=}gH@zt z2UU8SW;<1mu&5ChS2YKf>v1S|kR5(K{#Ce70m+^BIXp6<6m zT&AZA6);tDvS<+frCR&qpF@n84Dzm*!4R5%MTlnD0Ip;2c@i?in${{^qdNyVHXq<& z-&<;P%b=A+4Y9@tgg5)519$vEHPuAu2;+;eDP4&|_oV6YazYy!9azf1W5_j#Ya(bI zm-_~!2R%^BtDrtVD_na^T*1}%GnCgTci;NrR}vV$jcQHyN4={^*UnRy_I==4!Tk=f zVaXo5h`>GfmsX4vh5mPp7koK;l@rY!s8h+%kGB7wKz8Nk#;u3l>gcg+L z|7sHa_|OXRFJ*U-3n0dx2iI;%wB5&>eoVvFpik~#%|K(0zqhzKqp{rfv*-JfZHvkV z;pM<;8(2U)0pIM}*R#OJ)(%B*19J|{SK{)R36~y>?o7BVF#m<#a+TkVjipaEf2-tI z$%j=M!eP`j5djWYj@S!$c`(oonko; zjuhKouyxF5xT?syyp^A$1ud=ie~l>^0h+Yq^&TShY&7#m4~VZ?YRL%y87oh^jn07v zTdkNs#mOD{dckhXR0`vBv6zqkKxy3#G*n|_eJywV9_N*Fh~@WQA{+C#dq>VzevTe-i@4RPTZCI02pW01=Zf3$f zIGwJE?F9id4( zrQ2BB-Ad_6?UDy$h=m;(&mBr@j&I^`5tncde3lm+^_?46|54jr$=>mm2RbO__t{1> zXDEIc$y;`S?tDYOhey+X$J$Y<$=~s(sdSu!J{nJ|S4{M zfZik}+-O%;dzN%LZuTeuk+U+<9u{e~Pq*!U=7WG)CM~8ebtcPh!SI8=O4Pq$q;>>x z$=czDozE7O!xJ#x^G0}No2kToB?nIx$bUJkhFIQQ&_+z8%{6H4s@E~tJ=`J$&2q4o z07j-%V6ZADnK-Q&w<3gM_!Ak=7!YKvTs*jV_!_0~QIO>Tzr<#!Se}qJg<)eu5n9&x zvC_^p5T@mLsE#6%cHbdL7S$#2($xjXCu!4s7_ogy;p(kXnPBokqi(NN;G*h@BYD5j zeaZ74;Ge%>5ZpmO0>4?gquBEGx=&p|)?heUrfwO235qp>7II>Dd=nQO78kpean70? z_W4(;KxfFdeK`8zvOozZ>}DaI>SqP${=gnSiUxLCTsGTL9yVf`_?`;9P3T{a5a%9j?aiCaY=Q{iQ%!Lq=aMw^Mgou%4tRAc z*rg3uBYtxLwl`Iw9}KOh1xmp*F#6*6@9VkGYT(_6vxICNgaj zFhBkq$b*{ee+8F61`8d5cbFqyHlFJl3F>zFEyUpBTZ3~BgSy^BAR(fkMW12(dH1cJ{!njB2hM)V8sm&Q$IDX54ZDeTaO zjin2U`JZ5}N;rvfjAt3XV=ngU6_^bSU~=VRAN7`<^rAP598A%1Pbb_<7=t#!!T?Zp ze!Ale121{k1@7tAV2$6p=p45B5y$odjh#ZY%NzMoO@5yiTK!7gqwsAmbDi^qD6EU- zcJu@GN&Hkc+JgyKV7DriJ5_OzAHa{pbBh*DrZMZ!lTF={QwHi~JLfV5*D98 zSdy$qBS0)C;*Gh!(q;PDNWt>^+OrzYI|GO8O6ATI`xogGF089z$}plqtO4k5E+U}Y z?2~00ko3*yFvbj6v%m>8rCAfGno7w#7*&lX)EqrE$DRP=C@ET$p?^qD>;%mtxs%3W z%FL~&0>H><9F_S(GuzGWS~{YpU`d7_;yP7A@iDZr4VXYFKIHl~r0iD7jd(*ypS9Yz zujY8)ha03G;W*_9Y+VSDJ5wBiP0V2;csDxpmagIKzSu)fj8kgBHm7RyBS-z#X_kys zn|I-0m^qqo#YtXLqfGN1ESD!S6|)If90;!w(FkZt`m<(M_xT#r8NOQMcf+)UPuck; z{Aw9sA0;BIJ?pOx*B{FMMB987c5q>MIzngq zool-*G6Zh>1*V3IiNn}U*`BOne&Fpobldr&TI+T!@fnS>+Opr`7SE(C5o!8Fg|dxxpi`-%00SM z^}#R}@9TNr+lRboS`)94ZmBAr+W1PeetG^&?K=CKN|d#RcKCYLH)evOCSy+s+#3sg zLeOkAvl**EaYSaj!U-pUTc*1Dh-x=H=$&iF)q*9BovF_L z%f4%fZu1X6E9rV`|7Y_58#GCi+z?v-+iT}(bA9PQa{u*>*W0_U{4^DsIB<7n({F3H zd%pe8wJ9h4zh7pt_T63k{vz*7DBz7`=0&_){@v-fzu5Pe*N&V0rSZZcukqaR|9)e$UDrraXUaHrJqeE+qLsb z`Ml3=&-dTooVzrnX*c_9^IUXe@6^Wl>#@)FF1l*@1vgJG5CQp<|9|Okx7L?S-z zfBVGxFIRRx^ZtC)wr;5H_@88J_%q$d`WmS7udV&~#a3S%I(t+c^wU*g?r_#0{(Z&9 z(}hR3E{6&T0W_RO?uOV4~*M!-4dI;rIlu ztX)9MW3{v&Ip`@yWR*UbfD2s53?#Sft4JV_b^Ki&QAF$fiPc%qkD5JT4rJekfJ>^h({Fv834qU z#z>%0i*vq;a#`oxOCW9F>`gUx zz!cn5W$UT&o!1#29_VPq;n8(=gSu~dJ2#3|!f;)I>OZR=o(9^q#(?P(A+Sl&p1HGD z34bflS%$tj(iyjz0n6Ov7Ies9C<|~N8xwW8N^8cWP`e|TCtHcmI;QXz?-Qpz35X<1Je!CSOr3iLuBzX zh|}{L*jDV6wx0E|dTVY5yLs5Kit|bo-z-KTgV=rmrHA4?_cYDU)MC?Psx{uYm0fMuGmWu@6_|Qoe%u?IH^?+h3Vnyg3`k!WD*r?xSfz33Vg}Nx9uq`Nn z<%FO_U7L{c>RIFxTuvMxdZkXXE?SDKUgL*4FJ=iB_GJd+cs)7t2RzHO z3_RshvOgO`a?YUCt_G0#@I=R&QMBC|$YKjO#P1JL3rfyJq@cy>2LjwhBqke1%dm_5 z3Zr&1A}{=o!_;4aPn(hUmM`mq(l2ujk=&5jJFizzaK-bXx-Vxb@$4vH{F1p?Y}M|7 z%g#;*l{lm0NzFca!_|z+2ztP@hM5e%WLR1AJNZe80q{fJ+U9=L?OtWJ^x;dFN?z?< zKpthV24OMPwV_ddlWD$xD=+#yS&8GT)nh?rB!naNliV={#(*za|7TRin2WrECSmVs z{o_^&N01P>W7)iS9Fk}h>?`Iys10)Mt+olI{N^>2j5|l4luUDAV^H*=O)-h#G2jwnV6~szXo~Cz@m@8iU_$n7HTEO06d15P#YfPz8|~mSYqoA`STpawygi| zGoOmY^h1uNEg9cftstaGoswq)!UIZdnp{s`=`O22XR$&4BWIDDp<(9!XFzcI4J7S5vLeefG*Ti;9ls5Y?DhW(tCjE}$eDwqR z5EKzTrflDVc5EDa7vtuZg)=0q+!pvUoy%Pbm7&sFaGI}opt&`N@*ZqX8s2ZXvQ>R0}&#Jt=mz{8K_W9KgrQ= zXqcaFK%pw4(__`1OxD^_5bG;HXCGt}j8Q#$ZRpsV`T7xnNGRW7b}CF@zflg0JMW)k z)g#(-)#is+pjE@Pk`cXv|MxOC%U&Z{=fQ|?sDM`KM?~Zjd3a#F+CXtLqt6S&FIh!q zAszc8E~#FvskU#JajXOb)k$BLxPC{TP48GX;l0!*T}Fkn)-R8oOBrSdfjXG>+hcfm z@;HnV$J;&B^%FJwoSKN*iG$AAnlWHD;%GrzghII7XCLsUB;*|EV}7@!F~n-GVP#vB znGe0DM@5Q&ql`YRu$6$l)EBklB17vI_#Q0(IX`p-4DdAlH=ocC(JW% zG3cZ9PkyPq7&gx^Yxln7*qj4A_0bM`3++@4*60eLjY> z(#s*6pv~h@n04|uF+i7{)0wFb)BGi4D7nBCmPn;IKHCvsjmU+*X892@#zd~c$C2yu4oX3@#3x*{q?B%^`$0#&u3$8=uFqY-#U z_%}~r6MT`I^$E>^*AiVlRuQ0NL!m4J|BbN?w0M&76ekmW)#kgR^#RbCkF+CC1*q=4 zGyicnD%G^-boLf*;ca;YDKlerJ13(9rvV*Hn<0O7;JyljQrX2xJR1G8aa^q!$=8^L zpO<5qK^6+{JXu;Q@s~(ilKPyu-&smjVV0_ zPM4$!jnyiGr6uhMLZ3;lW72lZ3Io;HBJfVrI=kb+LBxghM7ojYFXaylnyg&N5pP_? zIIB;D5O;8|F@1qET0WY?`WrjxKWF*{h%gPKZsn}84qzB_FucJ=Lktv}eKMLy+$R}x zzOD07TPzSU18jN#Ch7pSt^$`#r@8)+wD1BFcVm#MmUCgl${fV}9p7NSBYQ z$O&{GoiMD)%16wk7C4l`+rR*bE37n~hpCa;QJQxh+q%m1$?(Ty6NB6a7&z6LnLs|!`vY-nqb`|TnI!dfj*4K^_znA?!~}<4NOoH zh5YO)j#Y?=%n}C*CLVbWn`@vVjY#Xm6v7!ur&I4nRgb%FO}%4sbEnib)Y|uTtC?ys4A8! zOVKl(+aSVy+K#n7a)JIhO+RoC4O_9*vij>y)a%loq}@7+n~Tb+M{A)^Vndulz!ApT z&?gU#JitM`3}y#l`sH{{(?p2~zJ2rpGM3BFUbrNZ*9F*aOwqFd}`_aJ<^L~i$)@I4dg$6y{{C7 z=!>Q@w!Zt1YMW>DcWzG(p`+-2wBiHL2Ua)dHbh`?*_IGmCE6X&R>xCqpU|+O9Q65- zjc~Ei61~cyEJE~pe7N+?S=&I96H7lhsoJsDz;~%OC^`R$1`S!Sl6f(opCuO8tW4faYd3 zmTfGU#~BRmIfV|z`HAw7x&TrUyFgc{-T1%#k_a#xKsRrQ?Sv=vPjZTh?P)^M6kB>v z{HbUClV+8-uE?}jMa52~J9a$bWKUMTa&5zaT zpfyT?er~dLM)I$@zZ+XfKb3dolShQ)RM}et8~(v!xAfH`diFv8;>Gn93xL;s?P9BKXm5HN`!D@0wKMG2 zOI5HNEqP0wksMq>c@%u<+M7g8>dAq~>LKcSwP9I3vOO=`Lr+x#o@;Z91%owmo_;{A z36fWl24bQWR1WhbQ8)$E>1=1HvRmjJ;cPEmUnP~-PoO(>6wpBM48v3&y^`~`o)-lW z3d)i^(g%{9yTo_kr)8FbFt6k#mFjHQpMNEJ=dQHLRQx1LpJ0N_Kk6Qs^xB^!h##WyNpN$V?t>Gb8wp%Yk2S`L z;Bz$=kXcUdxY947ovauYpwFjwkbmVpEM0uRMB7PXr+TB;xFJsHF{9xaSjAx`*+tqS zSQy_^aC5p@#ny@;=EL7jZ;QSopJzm#2n<~1!7j($OE_^R`kArGDDJ23>HM1`X{3~J zqwThS|75irXyDy=VYamOUS&3~CrOFNqg~YpD|!) zd@1o`s=!^<(+{JPH~muUB$aJQBetjAI7g1VWWk32c|97O5kNrx&EUZ-`*6R`LGBhN z(t0dDS++6#rNJkUKD5M!g-zn!zjt*`X_j0YuHgHtoC8n3c{818UowHxeRAN2(O46n z=$+4q!FQc!FrUHpfWfo+v@$It`0S0K(>u~cIWwWsz~1tp;+5dnrXPv3aLfMehU5?gW5gpx{>+b&y(iQ1$PsKv8xxJS_ZH3r*6Bx1PH_fGZ5kRANm2E<@~oNXWvUnk zg9UhW@Tm@Bivw4`oTG(H+R=b+0hQ0ejCc4goY}LIJSnk2sH=W@!vx3o$OT|s=IiHJ zq`Wx%PAo)h(aA`|0%%hc^bBN_LxPU5k@i#X6ZhCcP~IJ*`H&*{ya zb;2&o3Xq`Z;B*+6$ZiR?4_xQwSKtkr1M~W_H!_}aVMS*}`H1MYN+Qt>L<+{L74?(c zGwsAaEPS=WGq`?|{|tN7X%@z!O8AzL+F=A2#DPgOX(+|&ts<+_5H7B3!fWx+v@9~S zTIP0Ne7p(a+SqFb>S-jYM6A+x9&PlF9iYcv*`8&pr?c`znne_=CqKv=)ZG$CJuSkq zalc-u;YM@{zg!Lu6RWG=R6ReP=6u3n_ryW=OAOz%_kuhjS>c!XL}SW?amw_ixSo(di_XthEb9YKXs z=z z05lZUz=k{kq3^#|JCD`|L7jOZDZ8ZbKP0Wjrd<)fPHEE9!JYBFQ6aQylPYlVUZ&_v z*85)l$@q<-C5iun?Jx54Mx0eWg0#tmlQpAhizA}k;d;Ns^`WdbTye-ZJ{|rNL|XYD zM$wy}u1Y`EleeX(W$m6B&XE%a&bb5gQGA*1B=etEJPsI3@hq~0`ug2tk*swfV(Xpz<6rSQn^a zv}&O<#}Dl1Tv&+&njruj+JK%?lxCGFrRGsihEHmTOESm3!;4Y%VRAJ6$nDBRmo@sf z)I7<5hq*5MF@-pz+~LhorX3np5vUTC8(U{}#DndsA6OX7Qh9A)@)Y#q; zoER75WF_|mMsngx`y8eb0oz@A0?6!WX1h-T3BIU*Mu}&>BwszMa`He2f)l%U&dUIJ zYVla7bn}DGghJa-KOua1jRLT7*YwONn$wrtG-eVCS&WjnkUpKYED48}$AV@R_*E)n z+gdsyNyeKLOj`=?g-s%j6>G8^HiZQmE;Q{cQG-OBxIU2dT_KJqA4rC<6+xeeZdvc@ zv35(~8b3~(TVW}Ai;6G_X392<^z;j+(vUs;y-Czw5QT;qB;-&&euv*UnU=lHSn}qM zR#ZmrsWoXHMR6s}afPo$y_UaE&i)8oSAL=tqr3CAzn2H*UG7D&97Lh2<(?iCR&M+m z;Ik{@OHBM;g4dyXBYTzY2o$LVbO(%g8^cMaf07GU1#%CXq|ix4c-C}8hz4PTZmv6n z-`)IzEvg;exv6Fku*{kN2bHr?=^lM(HyVy{I=Qk$7-D7~8#8f5 z7(EAnHdE@+)3mnZ=6G13swR%ktH=4suEkOzy@THO4vdHX$kkVJS4W2$w2^wd18j5S zpyetga%SVXSwk8n;X6wm{f1{ zCaPxPHEg(Lqxu8-4NH;lX|A4sSibG3nPcC^Tln2_i?@SkMom6&YJONMMvj8-SMc|g zygfBhZ9&U;&cK2-#@R{j>h`dRJzY;UZ+Rm>X$8Vf^;QSkAK=mUFu`Tj4zPMG2c`C_jkl&HT$-_8|(Y(510Ja?~?6ypZsX{&-0FAc1HWj?Xv_lRqUJp7OK_1OO7$Dhx}9Xs>0@Y*~3#G<$N#GCJ%)jd3Ckyq{M zdS&;soO2#gU%$F{Q~lZ76RIyx=-#$kzH&Bcywfy&=FR$92?K`_WrPqEWKK{42BhUY|=5WSs+lr5@uH}^b z->_Y^Ngk4L@2=CEdjIyLM7`0h&~EARSL<5-a-?9xUpF*%R5@62m~GAzQ5?!_ONKtF zKBoFqJ{&CJ2`<&~{_(ei*SQ9lOmhEoLs~-n-E{~E6fE!1ApEn4xIhM2nW)MS$|_(S8HOl@8nz>o)+Kqc=u>w$#n%UHq9w;g?-S?uI6Cpuk+3)4PAPE!b9%(le_GO zb?!U={_3NQ(z1^t=giDwtT)~KwEnL%o2~tR{#fSFdgsmmJJ~=FIRw#qH~(hIDu3>; zDPLOeyYW%h@tSQTt6e;P-tKBB%v)!=u$57k1f07U5&;0g! z+;13Lbz1My?PYUn1Ao4BF-gs?kd0NPe3`NuunyeZazH>p7v`RBx6|1c6ZZtpKsh|L z_rqy&?rO53uS)K7ruenvu%xs|rn#K}WKshfQ zS}P3p=m<;6OB!Qj9z^^P&;x77lU~Q|tp>RTjh`pnHrn*u7Cg=-zwBUwFLnwsB%P(u z#)%yPq97BY;L$@4nWv2sdxSvpyX^(D;9c-#R~zgeGxndu^dqfFiYAh68|F&7L~c=x z<>nD=-GEs8{c4h%1_WiKmhRKk`{Qv93okT&PHYV7L4kEfg&YpOCHHu56N@J`dklUZ z_)N$WsIC)mkDyN4#oEu%nC{!DETnFg%8&X6`NMPfq=2p3~hcn81mK z;rhsGPck6gNt+K2@D^YGC75-4T_JUC>NP5%iROc*<>^^#S^oR;pf+GjQkaA)38%v# zi}*w-p=aA9h9}xwRFH?q6*@dD+@iX~`3jQL!NXx=Z!KJ-u&APt>aKW?ryY_y7SVxL z?!C)_p5eGf>Oh~Kze)#3cS0Mr3xr$xik@VSxjW`ZXS??#&!bS$sdmM!Qekvm6mW#> z!&?LKU`p^!;_(Y z;I+ul$rx_)pi!O;#|uGMuk#Ns6C4meVJJpYWzl5%K!xXqE2WsJi>G@CpxHh7N=_O`jBRYq}h+}OKHHbuFw|I&X4|9*kKM}}(swr?h8Qt3iqpn?YJJQ%_ zLSp%?K6FYVCwG)qC*{F4P9g`SUJNf?P}W>Z2(QgQNO{7qc5I^mYIT;#~Px7K9R+?rUJ*_A!FRQI7c{70BO>1pZjR7jKx?0qZ>sawr3OMwNGyoRSyIS z!0P@a#R!%fCwSbue8puoD?pDZuwl3(*WV>hN%d)nnWqm7lhr=Tm~JzL-!n#BNU_U$ zYU;1UBpVC`zk1xufYWSUp&Q^~p!wB3!tS>V&Se;PKsrr;DIqAd+@Fe zgs8K!+}7E}@#IPzLG7bDvH#Q$3P?<^aZZ6LXCOAkt`U=f>{%(i%PnEWTst_kx; z?w%RS_E$+HTLcRLAOThj$`@=z=OgUWg`Z=h!^~p1sPe$E&*0S&t0UpGdCea?7sZGE^zXBLK&zgN*s5~&xnxz8hkMlQwPmRq<%t+bTYM;cX#jG6F$ zj@5niOUJn~A}>aOAT^;H3`F10kUA8j&yAUo4?eMWAD!e3+#IL;?cMX+E-7*n)@$V+ zSj8|96fuY$s_r3lKC@96oiWqB7;++DhmFYqSpRX4z)LBxzhb30=yj6mL=rAZo2*DC zer+w_+H>;=oO9CqBE^dr>=Da$tWxT5_{#HQY7K#Cflr~6%{lzcHif&|fF(1~D-SV^ zd$XF@OctRbrAG)R59UNFFEKG`(-LxzmoUrBL35bpWVxhv^Sn+6k}q~6`n4Z=Lm1Cl z2Y}6UYJg*f96tA}eSmIlo`(py(M|I#9fsJdU>Z4GLRPlzLnu{CQ*8yd-3UaQ&Lh{C zO#3d>2BzL8&dx`LR*CMt&k&R(#;8`JO)v%;XHn!MK(Dq}cYR}9KlfLJ<&>0-41O$T zAR$kPWn)7S3kuHQF!!baWr7zExe@|fkkowg3SwENg~;>uJ|c3T9OmILv7qNx2=atc zo&Ch@Ae}8|7nIaZh32J}aD2jIKru&e)a_aY?+Q^85rRR^?ot5jRCWu7&u2LO#2w)6 zr`-Hv5=`zbCIoB=rHvMa?XBWADVd-!24RKZ$4eb{KN9tu)LZaajaTE>i;j5CWGkJ6 z%`<9wJEt#}Sj+nWy=qpO<1K{qr)`K>t)1oo zf~kaa1|W$lV4#y+3Ce*&RrZ=e=1WddO+-Rk=5rV~YyQZVR|?4y_x&8%LyS$0beEbxW1UHWt_f)nBJ9@40S&2t8W|EcDkrQc|^OrN!PQAkxocP{L zQtt8gxP~F$5$$w%oRjgQZLq?r!}oRYeX14oPx>U9e_u~jeS)&R_agb1hWw3rCY+gN z>=Z3WACJPDe)yOWz+$i^RZ!Of%3fBwd8CpxJ?Tmo^S?lyW`X$};oLFB5(e(7exl zl0*31sC%0Yd+PS~lumMvxOi-KBU-=I0xNF@*=QaK47_P3I}4JaZ)UK8=lqsyh$UJ; z{gHJmic8>XQUe@Ni(wRPjz;H>C!HJSmmScbMYYMHEw0OHTEAPOc)v|6MB$yqx>(r^ zhjFZ>#i@7ggUoxxeI%x)aJ>%3OT*sY$M?aRgpnG!^sR$vwvU>mF3oF!W8{}x720}E z1Db~_lV1gjWG#id4I>tiI4%6dy(QLQTt}8RnO1U*K6Bm(L}&aH62EsPf1t*i=_lJa zC}w;5x%2GFXw~=Vgvp4#x7hTJqPL##15~el>helpZZOliy`GNz;i<)^J7K`+7XJI0 zlKQH$;QO7e!BpfRNm07a(nI3oY?uoC8LJZpYOXdfB(10}!Nt>)1yY^pD`;VFJgW$r zrTL3*!wQQtWcBkj=R9mulMP$Tlt{M`1Rs&Lr>^6f0WVqb3iLmwgVHzMo6Pc_ZnX70 zi@7kEQkxgpt)+5Uqxj+y z2I3lYE02+WGjxi3Q11sf6wR?&c*2fgit_DU$(|R?oC1%vZeh*XA! zspuNg8%R@Wm=?FAO9&%qlDc5sqJiwfFG7hsnPu>kdj`|}f;-ser0G@O}4A zN2_cV!T+eXLV3zK_haG7i`hQPh(Yqn6lIY%X|0vrq>`QrT8F~R#f$nSf0&^8go98{ z&ywp(e$RHqqOMq*w;qbD`P9Y!$lv1mF@6y%goSPmQv0Pe=Zw3Y-%Ac`H)ZL~>!R*k zA~qLUlP7boeZmIGU+vYs7ByTME&5L2$Zjc9{&@BuX=m0c7F%;FZmr=zqefY4j@I#L zuhbRr>`0w$;Ue)ZmA94x#;~~}4Pcgq9hj^=Ag}1yWGQ}3)N))f{_2fAAPN(@c=yPF z4xlt2W*HRdwg~dlu*@2>6ul(RC#*EJTYQWS;XAvhP10-goV}lN3{QH1`lT^BGq~f8 z=PKQ;j&*9jgCEf$$c0SdjKEt0t{Kh< zj5{SeG`TYGAhmhi^}gW3w%^_qDY!(`zQRma0@uX^XL!dhij@=2_d#~~pHSGcuO3%E zd`5kO?CA5|uqDu@#eqm?q)l<{6?Qu4m<%yEJbU#sp@qx*{syW8`B`$gGn4#|*Po{HlG7_MDF!y5l zOQz4wvG=w{=Ay@7gyl@}{qBffQBwr>%Ts2(w_bD2pa?P=l9tbO^WdNmE^u_s0`cfQ zk&MadK-)oR;>8s&8V1Udycs($PY~h{b13KUJ1zqvU+abFNYGbnOG>4pzNYJO1?v`dKeQ z-=%nr#d@4@HP?o*SF`Xstt<{tY2E2nLI8`c5^_6R$jXGH*b%ZSoiG~R!S(D@7H}kPgN z9UI}UP#*@{C+^XMN0LwPEZejQ-E*0_&(#g*t|m$!)DA^U1MtN&=aDa)TVekh1eQkv zfNtZ*y#q0VrBll##li)`y(cbE{Fom_Rx4(?#5nK6uAdMWJU*t<=Lk|4eY!;=g$84S zO=&s#8T830#wkqezPnu5zN26@A8yz#I8=h%k0Z&o(x{}_f6fSiywBg{c(&WMAy!n~QTgV60xLbNu>P;PzR~#{0@Z0rl3_H_c2YsioHzurW8=;P<9vNc3o_ z><>YgG;9i44Fu&Mam#d^2t0yZXR&kU4pAveeSfwwq!-gut?;|UdC@o+N1kX}4LmCz zncFae<0AQ|PK&T-xA=~wY^>%cB&c2z2%`?gK^gj^L%YmgDMBbbs~sB zs2ahi#KZ*6wWla$NjBPT+mZCUPQvtXq;x(Hr^vM_i<6 zsvKl5nRPHKfbsDXw2E^Hd3eZXXN)*CL0-r9>QCYcSpN(y`Ri>AT_cPqtuw>iW8-L8 zaqFov3z=pFdmp2_ew7-EV=3(D(|$O#Olz)_7*{rAI+^e-bPt;>_S0s|ZwoNav8Tji zfV_>(ZD?#Rx6zLQJ)Qs}&}KZ*FCuSTNnJ9yhL^))KdTX!^gPCPjF=XJR?eAyuo$&@ zg0>D+l91$6TF!rNwOC6hx%LD(BUfJIfxc}|YRSjxPV<`U$?a9kZh`yz;l#u&8(8(Z zrZL_?&uh0y@v1Gu@%h%GH-6ciI$6m@-j(92cN%@X{Nin5Gi8;Q=lq?4r=Py&fPJ8dm;1hE~|dsIwt^Mch;|G!>$|`^G zsQYF4nLx82U;XZ<_ukfZE_rw0M)dYKKKy>?!h_s18OQ%VdN(uoj&@3?8-CMU^sUz$ z4Q>tOLdN%zpAD=I`g-{G&7YDU#AT+w_Vce*&d%}MpDy~>o3hN6OJCXYEGFXizbZ4{ zNEl3ulIlgfpJi{o{hxE2PaXT~t3P~7=Z?8-i)91iH1GWV#)Bh5>)Mu$`<5PiVDat7 zx1F3aDAU_~&J`!>ldXvA3`k23vYPnKKB`OD_vER_nVJPE`cKqIQHy=|+D~$hFBsE9>)wk~v+mo@ZCjbRZE4Q!?88lk7ou!b2cx?z%L=w6 z=`;4*9m_PMT*T)$c=+*64V2W;x8gnzm>(`vOlvm$CRJGQzUW#OxCO_6E80?!Kpf1L zl_-NsPIdl~d|tVCt80JUo%zLneu)DYpUEFzcYY-^_tD!om;1VW(Y0>>a(>iAgU?U* zTIlkoDBqj!uX6uBx^8RM&_CaauQ(8G^M9TpSHAGFdvD2yLCc;uPR(Zhqw)OHRS9g2 z&(}+4kDWMikeEKHJFvo|Gl?=`KSIB6CeCr_P6_=I>hjoot1`OJ}3Ik%dXmG zY4+W3-tl$0J088gqv)SYW=TfhZ!4E<9%5H(j(-xCdFt|;n;)-z_XE!H|L5pDz?wS$ zFaF+ykQfAlvT7Is)Z$>+Dx)BTAz)p&{go9rZ5a`jp^O`l;Xu)%P_+t9>Ht&<2nYeS zDj?!!6J#pWAR-|4fAaTv`m|4L1#<6w@B4nwIiEB8yMw+bFImji5WRmjD|@i;a@dS{ zBfeG(X0O_G>HMbpS(gGe{c=}$P3-APyk_+0ZnKkeizz=39awX4{j9grj^xqULvE$k z6(%)ruDXZzx~~lkd1x1M$7DzB_iJWbTubjO7Tr7XDfR4=#~VI3JXrqSwX;ULcLSCu z!ZANS`oO1c>Gg!Hhg)vc@3`I*S~pu=RO7L*c&nMWhuhi%d|QXd)*-*C#{A*`M(b|! z9?>SfCvj5P`UYflB_V+4P)Al|3 z--%x~e7^GZ$1~QmetKdwJ+SRq%9@@Nu1kF+_Lt?J73-cK{6j7s9sKT|p7}pX{|u|> zeYy3@N3ZJE+P#)?XU2=r=8$<>rxx_o9A7ClDzw?+dgb6&)!aI)KRbR%Ud?|rY#%xXW`bzv;R6HWTgA#%N&x>{71WlSu*a*Imb>9VHr0!9L^<4 z5l~T!U#Xq9C)c;XRhf+*wu-?lP7rD>WJcZ7(}7mKCk%vDIYGyV*hcY}&?p^wpdo|_ zi#?;{IN`+etM)iYG;BRwU^>_l5saSu1XMaT&CR{G(=TqP*e&0@+DF1E(O z258V!E;;9gh7cv|CarGfPDcS{-!9f$P4fV@_#8~scEN+01E&gXaOYhKod5OuX#kQI z$@W{6iEJVUuouiuR5V16NIto8;O5^ei!g~E+8+$oW~s&zdnr{=b(=8dL13Z7nm+3} z$N_;6Iqll+_#@^FKlmBQXeHA2542fY1e_y|DR7rYN2MW8b%tgJ_3TEwF7w!Xn%5kY z3gb#_@>?N#jWPloAcXvDCsTO_YI`I2f<(=GfSJPU&Q-;h7Y4A2&)#hFFiO7(@sglI zbyL1MY#D~B+eRsOFc`a-JLhM(BL?Pz%GJku)&mTK49W!v)BiB-ixNp$<1&?r@?rKT zxwZ!jX!;&@!H#CB^MKcbJX{xaLeHL%saXfZDZr(7DLT$8t%Z8#-Nk#T2*S!AfaCQO zqcKVvFfEIfKbb=FCh-S1C_fw2t_ATfo1qhU#9E^I)|dS@*8}iHr;y~2kokx3(h`%q z_g^9Lq>X(E4=8&@%h*wrW|a>4E|U?BGWc_?ddBd6ojeY&5#~_?M+iu|#QvM7Z;Sxd zdDgpW-mnCf=SZGap-=K1Dj@j<4>av%Oo_;c&g`Te->9Ir0uKN9(V%+q##4O8=1!s+ z)H=d)p8ROuh*}&g)Id-R3U7hp5C~`UGc;}m6{ia23e!txCp4gr#tybVX7{@0s|jac zzPA$2jF!GDXlDJVSb3bH$p*#HAa%j9tJu0ZPtct_qnH#O8wf@klOlZZR({=>7mm}6 zbVbFl^y02e)eK=H6eN}M;d*_#q|qV6Q|?ztvNt{wn_)x-8z2U|Eo5<8#H7fz7~`#n zAStsyAvhsN7zIxIl3QT(`(oqVNNfkD9DAWwW=VO1A6%TW3NI!g(%D@QQ{msagsC^X zqb$X7Q5!s!Qg$Bk%@8u{Lwh70bwG;WrL~@IM}PO*F$N%=ID^+%Gv%>;W92TPb%6-d zh#A&YL6FR(XaS-fk?6S0n{6-ckc>*ko zZ$j#I5y=Q_5!*&cyE)F284P(d$=+{NqGN|Cy!%;H<{D(okxLE#c*3JXFbPJnT`h*= zQr0I4KwYV*2SIxcyz+tUj^=RCyjEGDsf%R!bfaoZX}CdcR)?DXMc!(;9OSY==1FvF zoyQM>d>fcwc^ra#XcWLfHh!37`Wvi}f`42KcX9J$O=}nYsV+fPbP`yx8ccseV^`1a zEabr04vFLuemBhz=e44Z4d}VJV|Ewdlkem$_5@ajppNqX1br+^lQ18%K^M+%VV@J= zd1ESAJA}FYn`m{ldWs$llgMaLeR7&$0(*drqiK^5um-WhlZ(X2Fv}Sb&?)0U(bS7? z&?ZRy=IDmeYB22_qf2H1Ar_uw?qP&%lOp-vT zD3E4i(w;(u#2CYO9Q7mVak?{)VBzj$7z+9JDM&_~_b_b1jGL6u$oXl4jjv-V!jzGR z*gf)n(NcKs;NmA@X5dGB>8~=$1A^9>nxV){v49FGG#r(D>SsPCdiji_gEku)Gjnx% z36KRJ*gRv%AFX1ICN(?2jWY;rq9X)dI?Z`%UitCvJxYXH(4pm_DbdEK%!=2SwSxvJ zQw^V{ZdOYSQ`I+70#;xb!q*tcV(xw3gM5~BLDbo#7{Y?RW&brp$(B;Amm>F6lu|e5 z)5IXhl*fFf1eJ^o55pPdh4D1?fmy92#M6y|3WjxD>lUqCZ2q}==ykTwh@cbjTEusN zEBzdbB9@-|Jro8SYypusA?w`2LI062%(C|QL-o9Z@Eg1HG{ewyqli@f|Nqy^urHzE zC&b-(Ru_rF2pN}@50lw?nX034jnVxXZj*0Apc=@fko}8A#JNB1fuRkeC(WR}Rip7% zNa3h&AR@_dSC~fA(bvoGBM4T7Txe^dCL#j6T8KGDDWlBpZoH6jlJ^yPT384i(aq#J zjODkLXYw$g+;ta`&&@nrXXvIdln{&4Xl%sMYm_-cbJX_ZTQ&B+g{K(4#w3ccglB~4 zQ#9Mm;9kYhY+ERO3%_F;kSORJVH}l-AxZaxxjZQdz}UYBb4mQ?eJCF3r!5u#NYEMs z5V{mjQFs_vPa%dlVFTX`Bcn@bqm*5v18V3X{ZpvVZ5azw)T6!dUFdCuYh`pD;;78P z=S2%jI1-G^yKnQOgi6ClO!TE=?m>^i>s3R)7fhKZ=&oaVZQ)Yu9xdv`MY4>3pIm_teHm#-yo8Q@w!27dJxPaIYoG)9z{9@l=hrAAGY{ZOjeVGV+X1qHFlMHWg2J1i+VF<3tnF)g##43Kb6l`-!#WkS%nIb}uP$Yv9K~GhLpHgPqf0e9O3Y@U!=6?S~Ouo_~ ziCIFnO~sJS*5Y7f1_KiwBPT{x_)p8iSgt*?UUAr^Ft+7Zx|`wFkaf%wx|)8PZFa?c+7(uGuW6>S!Aer zqmK&Hd_8hqf3c*o3PELbq@_?*nI0zxi66#J+Z+XNR)2yj24|&>3coxDP z#Qp9cnCGNMQE%PFBv7tE|9Dy|hcdc>NPatTv|0Aqm*ldubk6n5zTP_GG#*b@n@_wi z666EC896FcEkNuru=LBfT<;7j7#T9e2jq`Z5lRC@6H`yfhfB;Xp|RpNQ&J=Ogo;iP zQD~=9w@eRCmdRM2jd)4ZT56)qPc)1|!??TJKClo8d93_QfK0-;kcQsI5D4KDTr86G zG4$wv@UtnF22H~^>{mcNs@qK8Otj#R5^FdGFh!0Th%Y0HcB~e$J6gF$xUW5rgNXz~ z2DuQUe;s-{5ooE2lPt0nNE`=r*`kmNaXvQ2IP#cW#HKI6a3Fb9gR0&xLkA%$@TQ@S z3js%-$tML!#9P`JRf`(SvT$m3X^)G)so!l&;0NALN?o4n9yv^xU7Bl+!~&MN2}|bo zmfZcq?q?!uA!cEF%YFAtJ8uh=hU;}1SGRw}nk8g3hD!HGp1*`yOFXi}l=goFg(T`Z zVuvuvZCnk?E*Q@9_YLZQ$&~uK$;~Uxz>9=dN&2q_ghfc91AT<=neJA!RYwYd(0f1} zyTdINeJsLBVPNSbO>KB8ThA}w-7s}ZzWOGC2#h>@$~@eia>=^jMou6|Ln{t--?pdg zJ^5gYO4ogu{%o7ma3jykS6zfH$VNu|#wHbi&FXm~k{>I{C)IkpgIUwY%(+R1o;vV? zNs}Be;re*Wec==VD;&J?a(IfFeUd5>aS`(|ge-dn zG!EF$X4q^N8lKaj37y1el%_CXGoQ=98w+gll*A7zi7CA4!o;)R|5Y9dqcoRmCq*Ww zZS{Ognj+^mXqwbeVXYl1S9B1CI6?V)+6K(GitW;Rh!Uqm+8O!5xGQV~nmTrp{!*F! z$3nv?IdzQK&TzdPWj2q8X}P4E;V)41oLN$V2j` zzW3BA85I7tDXt*Kh5K!#DqQm+Z)yF?9!6(OimJ;9^#N%gJi66H6i}jL9^+}~N%?uK zTfB>Na5FlN>S5Z@+RsbR3LY0G$j)El@Pik}=6U^~MZB@QIiWEUYc+YiNs!W3!fB3q zL1nk7DK(a*6DfWuULlqh2%!EvILSW6Hg+7X6|g3S+7q9h?a&P3!x>EC6<3uI6`bri zL3L{16`+{`KOhn@pQOZ?koU(@rf?}w3rq25r$hNZ0=h$!+)T^3OX$O0N)uTU3rGmwtCU1q5(rJENp7WwPAbM@`tiSGK#;gO80ri2A0j_|UARwzQh{m?BxKlb>MAJ|Cfjb@ql zqx&8%dx?`o2lKpOS5a?fHDjPqmHHH$h-@0`*-o@=`HDcgYNC&wBV&QI)+=-2Zsr?! z*d(H!xdIF@7UA87$DYY zjeeTp{2^aR<{V2`zd$~>?v=rpL_G_Xj?XDJ;b4U-;XnK_qCFNQXHU)kg zF>xO+^E}MhIypg&<*>ii8vCSq&z7d2vTowCM%Z>6TiA9NDQ%_ul}bOlfWy=pmZE2F z{*kP#%uck-b_1jjZUh_*mAt+pA0b|D4poV<2dSK*{#rtLSvX11ECtag?(L_zF1Evd z5nEA{XK55pev!a*%1jv2Z6j9r+w{#P>Of60B_McZhiJTlczlKa9naD43eiA|B4cZtiX%V+1bm!6N#3P zUA`)BG^cuU5@gwrS#4aRC2)c4oG-gDP^!_Sv*dQ}-;Ggi;ufx5ev?{ObLjIGPuHxT zdO3N5Mkx%ILW9j~e^G7`UF@K3XeE4qtZE@4L`PrBPvQ(UBenZ#u75c(+H1`;Zx3QK z*Z4?(R@p9XUoq;c{R|-I6=U%#klz5^*e5|+=cucx!WqAN}y^*-as76AHvm2DmTf;1YC!rfr$^ckg4bi(Nh8c%q9z#!R9r+=) zKZyMdd*tX`l30s$T)9*)?3Kbncay$YGVdw1LF!q27Ux7$)E)R14)Pe1P>e?4BR=yL zxUAuIsjU!6=6soWSjzE>dduwmKvc{6U`UEf{MwHS5u)jc?reV$ zt*cl35nvz|wntCWQBGUxJcp$QQg{J6=KFIZGGGJ_!Js2L3t07TCBHXHPEs_7m!ckFPs3V~0sT@?9EzStQvDhUXrAHHzm(>O} zBB%~S-sSiAN@Zj&otXap`K)<|>@rxf-5k3C;a-H`9@{O7paOTI8YSWc+`EwEpTdQpCsu| zwF?PzI3DY^&alhixbLaAKKO9f<`b3;bG?84=kg!-j;;SOz`uDog+6!afcWR4LeEnWAil*+jTps_Y*OWV#CYEmH2fz9LPNMD6 zH-4uKfBe<)#gbFE_s{;rRb$PUktNAH>wE6|KQntV?U5kCc;##FTTN?>V+OT1#JFy7 zdzN~9<+_dY?(e%^amUTk!_H;hU-dfmZECI_ z`j5nhE^W`M(6}4caevjPU=4$w7mdG~9Y6k0XsZ0mA#eY@&D@~Guy4Wo5kGF$d^nT4 zX58`sV`})Bqz&(z*3Vd*mR$dc*HdQk$9e5l4uAgOtAD}vsQ>+Y;v46C(mX0RxZYgg zo!_y3+O@%)0Ast$4#F`#YbTQ%*W#DQo4-6~DRKRK*}2Q@oW)i)>;HQ3H0SxXnWwz| z$Gzh=W!utW!YjFVe7xCm<#Cg1&(edb4dPI2m)vyF!`3y$ioJeGgr z>!SXb4Vz0(s;Yd;tuLCBAI16mhrD6y-`scIvbfqiy{>KefyqA)IupWlrZ4?{lZ)1H zVA)x%L9>5OZ`XCIejlqddW!Be+c&#@VH?vXz1oNWa)YI|=^n4#U)|z0!vCHaFOQ$F zXO*0nK6B)KJ`(LHds)4(P1O0lMC<&b4c1?ef0%TR-TETVy-#KOm7;-T%(aXQ9{*wm zTe10htNV+S^Hwg?QSLta_pz8ai$V@FcWnF3>3@;O&nyc1crfGVvW8hM30_@4K7DYn zY2(AQnbD_~pLLscqTaUTL9JCoCMRIrnsa#1KMPbf4{ttyvfEg1qW!abXwZoj`A)`B zNkVhZ4+}lE{^=Bpc8*I6BN{_DxF@egJ{_L-VnPwMruJU$9*M>zetr|LWk zb|#HJ+^Mwl>ZIV-oT`P--@m=!X!5$bH{qjZ^8&p)5!#10?LPh>=m2Lg?tjrf-4DFV z^{2ihRX&*&bXKGBlvz`edFRSMw~CLxW&cNh?|K}*Dd+xS-}ZQ$_l7}T-(9xiyn1vm zqD+``^h{pibN?dW$KPMy?ar_)p1@@0)9D??`=_l~*w)vi|I}rGE3! zHZye_Ni*82a`BCu^^wU-J)3uQO);9{{r-QuULM`6Idj7`0}p4rxI1kzqlVHOm;e2i z{&l7NfZVy0V|sSvV5Z?S;ZmoscdLT}Ca))r&-Jzc(wLc=l%)H2Ln3z$r}h4{CRN{r zWv6DpzWGbm_xdFZl1@tQmrZUQGHcj1??194a+RC$0kwUi3w!_l@?ukq>izHnMzP_o_eL`mx~?A|JLa`x~a~*aqz|BoOSOFbY}eXI(cZg z;^u{@waov>{*IsjeW&v+t@=}6$=@rEAG)ctqSEKnR=*F*7kBeM&JP|>JhlB7otFlO zFKnMV{gTcSmmR+yx-!diIJHqJ=aJQ!8!uMRY^c66vhbp=YeSxTR7=Q_^W2x;-WdPh zxa8jUjiZ(g(Z5WpuUt|R#71d-#NG4D=iDf{I{)3nxx0ft{LuW#b>*rnH_u&d->_xJ zq1tArC*!XB&hyI5CT7h2a)e!TulmzW4=yvYZXkVw^X`Q|+E%WdHRWH8AA&;C&t)~) z>7UCxVfTwm(?dd*|OwJ$sBW+C8a~9;uifl*0n39XFhOWuQU4lpzBT_kG{^@fJT|pvOD1+ zhr(i$zsCLWokyLPf#n+BPrDLcoH?J(JlvSfE4#IOZ9}uZ=?3+!GyYmOz4AnEYsBW_ zp7F%sk7sP9v-Gaot|-^|{dduct}S^>FNYSb^53y)OKR!Me@eOer5^?ozQp7P9a(!R z{K|!0%WL&=ex5O1Jk}AoBqdCF`sblT&#!h4G_E>rqI1#U#Ne7dc8b@lAyv*28;d3X z8Ws3y97yYmdzo2u_t%;GW}5Wy(tokld%kYXPAmVm?S<1H#;+b{9m=}4*7eFP4by9< zw-x4T1k0t7iMBY@bg2%uPP}#m;dz^X-R7V=M|=Ldh$WrAI`_js6)D-blesyw zK1t$uds@}+vo`$i$KOu(xCdBQq&M#!I%2JAa!{*e_0r8NzHF+MAbn|*73j%d5FEHvdo+=16iqZ;g9 z%)7j3OZ~WkS%r8F-?3z>%@{kqPy4UHkyEGsIboYyxp-;8hJ%9#)%Q*u(@ica3VJcU zJZkwB?mn^1J*cvMPFKH$(DuZ1qCN|$VbfXyr~hjYtMfX;FUXYq4?Wv z^_{gh_kEiYvN5~nKQhnZ_sQjFKDo`Sd@(R^eb`lcw|IJ_OLVr=Bb_a+g6Ccp#u-!P|g)2#|^cNVj)B{NgiiR$~>Pn+pfTM zUV=leiI~zG>lZ6bTDs?A8vlk(bm}~J=!m&p2e8aI&YLzsyX}}P{KZ8 zUK%*g2yNcOxO*^PsgH|kD|+u^s+~87*K!lnRSO1yUxqpmKN^gphZ`h)ObVWGCUNXC zS}-DKC?lgXSTfhH-~jgXF=FC6@2_&b0)Wh2l2i*|W9HLrbqh;?K00Y+!-he73ZV_e zo>1?afl?#_rJ&L;C=bd$Vv8-dElhI&LK%ch3SM(zF$G$I}argh{#)W@#@AHyvzXn<=7M z;Mx!yOb$v$DfJ5jB3B{?Z1(m78X>pi@Gd5ga;>wtb{F?R-w(SlLMqZaPCmvG3Veo+ zI7gOxMvEfvi5T6v+(=NLj@kIA3^cGug~aol%%n3(W7q|=h(LJ&(XPUA)7Wpm^Ibm` ziOVaD7NUmmGbC+jETFmzSLA9fs8bjdy7?E0ZG5igvJS>Magu}3)r`)^WkT5JCe+)C zboL*w5OeC0Fr9npOO!3;hFLf;8gsgrKJ0@YFU%IzZp##2tT9j zJl7$KC|BK$MQWw^p0K?WYEOxDeHVK~Nzp8e0Yg(cgI$H=Gr=6Q>^)I@Me8wPGT2(M zX;Fd7TmlgV^LJF@aDoWu8!bRdPR$S%oniHjMsBfCwFKS*KZI2$HY@1cP-=_{(Hqpo zdR9XW3ImxVlFFVqqGKxMwC3ZWur9dl14!o>!Rnx(2B{O&gfzmCwyd{~V_3_618_>3 zK+HrAX}NV2i5Ot#pg_l%zyYsKhZeE5?y^BUMctu1lGJy_HmR#_5D1 zJce!ynh>QjOcUXf^Qdnbgmp)3;}azf8K>OCJ`h7o?{di}bROL>w1nsa-J(Wj5_3Wa z3P%#Ys}RMH0CmaI56cP}jypP04wVH~4Yt6}E_1Ieu+$)&OeecQAq^)1%s1@QlhV7e z1}B*n_^O}X+`(|Thbum`3w2YlDs+p1^;2#f90$=0ObQHI(!fvz;dubeRMoc-ma_{v zfWg8RoI$CHgnAbB@T$2oUO^xGPEd1-BDA=h zRjK3dZ_`@vgyTzK8ELPoQAypR6nwRYIA-BSGHvZ-e<&JaY*EvZ+}{&42`I|j`|mN6 z`H%EakAa#lA|Uo?ORdt-1g)kMT*8^&#f2>v#i}wZq9W3aLj(E{!vzg8>aWS%iq1%Q ze#?iO3st57wV57*fpEGUq}b+g8%aU6a*M)3%gwxlJpDse8A^vH5a+-X)>*H}qm@Ye z9vBK7XezKQfQn;vFaYad*Q&oEq!c%Sde#)>R!fT;^F$Ekf^fSsSi=FR$pWAEYKmE@ zPX=>Rl)<)>GBS?!Ky?Fj_r?^W0Wj}^~xQoF%)6Qh-99 zjRcZLW|TDo?0%kl*-3nJNchZdAPs0{iX*D670X3;7b>WQ9EpMjn*y&1wa}GoFY&v< zkyy=6G3Aa+_7#v@3&*6F<{H4(u<1~kgyaYuMDv%}2_=lLvQkQk&9SmIwPP# ziKD|Ko6>bES$59!v2@nKgJJ!Qlx*PzM%}vm0m5UajfAupvL$N`O*f{)HgI@zU~#p| zQz+8-G+8PKhwqE^GIa;&b>_w3tL|+PF(NRv935mokP96*kz%`iAb%zDdR1CjoKLH4|4544yBL4v z9zc2Z;IUL<>uPA@S4v7VA_wC~X{8nX>?2mO$4)qSM&@8W|4efoyxyr<^G^+}?(Rgj zqD*PLBqLDH5+295)emSD#>*VO{|w~IcP!grfNt7`>FJ&EjpY@+pC`$C z7BaV50r4N%>hq0NZo~OZy7PObop2Mhu+3`gh$RK2;eX(WMP5*@k~mKmNICp!;%KSY zjs{fu0cyDD3nxRz($l+3Jrnhp9Y0*nw2=aB4Jj9vC#1 zyB`*-C<&E`HU~GRVy%9xYc682!9{S{V~zhgVL}qyjXY${ko_%XwhiIv5@ZgESwR!~ ztf8g2$+TJ9!*FA-GGSc8mm~_+P4SD-xPDYpIb>(&^f`zo$x#!e5uL2`us6P~YC;7T z>KY35?1W$qjxxr}`%8Ns;6dMA1kwnzKKikuRt(uYA#?jgIb>^UcahB24-R>3Llu8f zG{*n}Kj9b(gkNRUV?%-WXUPZ6Mb-BkYh;df%2Ge!^gm;D;*NoA(2VK$Rc$gXgEjVkYsmqcR ztkqK*SCk7WBgM_36jHAnAJU>OLRc~_OS@5mtiKN0F{L2zSyFQ7#qkWn)52@?3k)*5 zu@f01^}s^qslN?p6;0lv$%J6HlGi|KKMJPn#oD=ez_&S_iI!>ODs=Pqhq-d{AttA* z;Dg1jr}(8@hRnk3I#?{Vt1f6Yl*(oav?m5h%PN8Seq;5N%KCfEo%qC=N~^8ru+P9W z#qErOYMHk#_pegV{lZT1;A{KyriH9f%3k4Vx{)#{|CqyAxk2#TSTw`mKwt z?eD8qIkafygRv6XS7~S%5CoAX8k}F)0E@Tg&I7~yYM`_(Z?;1rBVpomAoth{l~aum zG?gNcqu#7V{rp@JfR%%CT8l9jNw4kfB+>idsi$OSod$62o8KnAd!n`&8zC_%6Kjk} zs-hJH9Kyi$bAN(lN}?drQE1rQO?1wP%+mS_=i1we*gLVAT^L+HE_s>%g?V&9_$0nR1ng|5b|5D;tCsqD$Tp{yOIl7R)@~hISRFbCbN0pti;a zO7V_oKURm&LP0OFm7wA%#dH970gji$JoJ_pFdH;iV5FINYrT?|U6_<}%9@QZ;*MWW zs_sT%m?EaR-m6W@~FOM&V7;TBxx^BF{afrylIqo z$F+}dQHrnWp+45tAb$=1Cxun9P0_Q#pQZ=i#YFc)=o7wVwv2$m`-mO@w*D6EH2_-|&oMAv5dgqtF_ zRjy5;ZDMGEw&|qx&wK`aa(ImDFPf12JNcYeZhkC8xAz{Z@5&e0fMD8%gHC!9TbSD6kOwacD-#uUulZmdE%zc|schwpmQZf>_f7 zN_FBI0zcxjBPyrrf>2h*D;fZs1V&tuB|43{EMb0Jy;!4KB+wY9K47&4+Aw#XCH)$5DQcD^ zADF);gx0_Ia9zePf62=lWRq9horJoCGap11v4LpuYSexnUVU`OOhbVqqMJ=KX-ZK* zBUCvU!RU@TLHXvgRC|`ArYZ=wEluQaMZzhyntcinHCwgOX}I(YspSWCpg>*%1_WLL zntgRxBa=-1sxieOBs$k9%u!$yTqFbFe0pUMGkz3BJ_C44u@1Iq71StM`-x$IR1?sN z=ZrJ-My1GXPKsPWFxglB=zyL%yz1E{LM~qd%XHD;*K#3=!3*4Qp0x803WPST!Fi3? z0azVQE@Cx9wOro;N+;}^;GIvgl;N=IhNgY1$KnEb({$`Ibq9$7c3ZtP%-odW#ShvS ze|G9aC92rL%N&Jbk2zx05}hia8GAakuYqkRd8zvLKhi-h>yXpvcarXt#!qB(<3~BU znuuGXGSaVPzB1Q9w5wRmX9?lWRekG?u@YcOyX&+Fo*DJ+?-pr)|CHohf{W8dOrwta z2tlR71+9X|$m+FPQkKy4gK?-IX<u~<5WvlV5g3wxBGyq(P%;jk);D5c@IQjc^!4Ecu z!gGdVpUmLrG^qFD4tzjtLaBPi8-TsCbz?g5zKiBY<@!4*dihjuCv1c1pmsh$a0Mm6 zV0F|g5wv)As0WTl2yu~%CM7s0sdS=JfY3k12!RSxq4BbE*<0=jo>>VoL5nV{o@7vv zT6`6KFkxp+&#m2kRO&hG%%=-ITLJJz8IWGStKN?|sJ9mfr+)V{6~-VKO|*5Ca0b~` z+X$P{&-CY&RpS9xaKi`9Ws#FYHfl7KRG8 zZ*g5V;38_On8FwfVUX^AG(!u;{BpZp5#}+uIft z4LC2_e`=L^`M(owx~}>=%HUElib-XhvFbVW!tAtP_F>MvVRZitl=9-s z(Q0&UV6%tU2OF>V$wLW4QzPHLEJzci%M%@MFa}He+nie}+A0k^v-l!c^Z7=%btDF1 z_XA~a=vU!J-fBUm<0RukIfE&QV7csV^|T450^AJhytNo^{SyK$m2W9iqU)NAcMNF* zuhCm^#}99dq8@pR@_nD%EDhJc5ffnszJ*!i_iXO48)Hh-+>7DH+Yja>)ZT9Hfb+3)ZVPQbL1r@2nROwR>~edJ`rjeTO_gqFub*wa(S!&x?C3 zjxa84YOV?}Z&Ajs7mXv|d^dl$IskR(@Gvj)V4wF;)Yrvjsy3flF8NGVF zruU+*&xfh0Egmelk7r!3)UKQrGCJ$%yxHAH!d{&pI~1zf{=RRv!yjcsekBURw<%p+I`{nE zy~+HC5}!};JI*d;{%*G)!M!+)-OM)_0v)PUyHuq^mmEok-Y0q{+csGc5(YwhO}kNqiu^_ z7`@J?H$Kl?{;v9$AMXWhdL8$_Bfn?%JQ6(-wXM28SH9Ez*JO1)i>C%Tt54q?w0(Kd zq*@p~cEO|NTAgRY%K(F&sh|FSp`YZSnseuJv_yURs(8i>hyDMKyT2$~^0{r+tl_@`0!{!tc+z?FXm*R`b)f%d2gIR-3liPh34rzAas_ z@>RjoAFsW7o&JTlU==5H1?O;>_UV7?I#=)B)_;22YX4^CYk&VQ%H=}+q}h}2=iBoG z7yU0}nRd@lKRvA2@bS@{m4+vuHz%}PR3Edcx$?$$?~WP26q~8K?P;*d*1eh+ztCjV z-8XmA==|c8Wlg`#VVu5jKqBbZef=z|RLd_#`D42 z0F8Ce=ai*?xM-<%{dTp8H+@QscBvd0-27{6mPnqsiOZX*ZXvU!N0cv`2OM?tKzL?T1DU}B_-D2puh}sDN1FhTk)7+Obq%{z8m$=L;boxX1Jx1V0`q4RUnPkt)(GC!VoZ2P8Hmn^!~O^1K~%f|NA(5&h+%lu@-k$+atfbW3u7vPb!&EOpUu_d3QKP956V=N=OFa&}AA zy4Rj|>$fZ$TyR`#>90Yx?>Eddh`y!uDs!swl}*~|=f*GIsWW|8zj$iH?>q1q+*y4@ z@7%)dZ=e1s>K&9ndiB%UL1AUjFY6vw9XxAz(^hg}Tji$vDqNNv5ANbt7x%>b?L)6N zMl{EK`JdeJL;6RH=ejS>D8Q=?v!;!1X;v334Jz9y=sk05((ArwTa)7|M?z(Ta*D8H zAa_w?TMf~Pt|jm4rauN1`<@6fh?UO}v9w%gjd+LN;1R<7t8G@3CO`+y0t)JggNIN} zh(lqx!G1dN{5hFXObWb*g`7?h{&9#%6p#e}{tm)w-4n#XbmQ14H4-IsuU3BgktQ>G zCp{JAfr>Vkuqi9)qZ=#8J1zZk`+Hl3*wb=t3s?_w5fSX9ydO_F7%6k^9c8V~RV^;b z{F7pVzTid4xxnml{zy0Su1-r_gcCug- z4=hxx4yHA`TGaUMw*{1HEp5}hx2a-l)VB;15ZP(HtDGL=QPK~5l+PxRcFz$;<*MOiF%uVQ-+9ER@md76Lr`yJb4FcxVXzA+aJY7Wb z7>QYW_HvUX!At7vTcZfh6AAS-}*uCD+8!)q5q z2W>PIlnL%QYSw&LlwIOPl)Fb)mERAoW!Ua!jhFYKX#(_`c2Cu`;Ks)~rejVI^kOzq zmgdj_x@m`vkZc4FDLL1^NUF}KkaN-g(1v!S*DY8;TosA9rw9&O1GK}iZjQn6?siWE zBfmMS&CP{kUko+PBm6d|Wg@~3IO-hqH zVDrZ04B$hut8`KpwUMZN3j?0q&|@);eV`zuS>+yrc2Po{0)q;_5BkDFqmA~n3}O>hEgCrf4q7a%$Bn8h#7~|;JP1U1zm&&Xr1ynDq(mD=NDGYycGJ}+d z8576nwoWjEKPenLfIF10%JF3jc0r!dv)e)}Zm3@&?>i%dS^AAJUabzYa8Eo@|m1qj&@*VA+r=`PqmM;Nv=L+eCgCE04$k5QSY0U5W-ycE3|- z7=n>hA9Kf3S-wJ?Ogdy7t7w_BJvfuNi!B926Gl@Cr-k+|!ijjt6?`5@A`BF_vsJE* zfP=?JixI0*!ErseU)orxYak@?jd$aQceCywp($nXzrJN04DDy<%Z%U+b*WaCM(5fI z7;;y#tGSRvD_2Q7l%Kxs$J51YEkx!w$!4sC4yhwH1NFq1V^CEZ8Y(~3Vue3hwG{l_GopoFtCMa{Cebs|a@iam-&E!D= z6!As?go=3si4g@aCA#99v=3>x3!Z?-_zL<88 z5kR@xMjFGiaPo5lBdQK+LM^R#k%Jj`cR{$KPSB(n!isTgWH3$cB6=86KHOO4zfua< zZhuQ|q*UHqDg&BnL#-_o0WjGu%${piQh8+_HYhlsS0Z(Jt9rq7N@9whwGW_RYGJPH zzy>^krj`v~;)XGyBy1ZD=J!ypoZUpysP>=S6x>Q4mtV770k&i#1 ziv>kj@_?0yBc4)((pY;nr*)5Gmu#ku&mDgoU;mIPlOiF>iV!G2yEI$y4W%6IYo2`y*o>{w6_Va#0=JO|L|f0!4$ViQ zSV=&9+0fWl$U4-?2`E+Moguuq^-c=W)RxuRdAnEI7zv7BsYViTwi95srZ|MT@d|ZJ zk%{WQvyJMnFYSrN;9!(StdkEYKERt9K>7?*IM{=bY=uh6Nt!tvQmB&_R2wa_9m^&> zUW;M~`7L**xv$vK(?(KXNQ42c{CpVqS3!bIMDhG^f0v*V0^MJ4recN; zPdH+&qVnA|!NNm05FH^&s+NifNRU(@((po|VJ!z~XL>5s24a|kfoKLBVgvh+$11&C zC02mu0CT$(2lRgFd;*rDp%5igMhJmNqEV$zDOgT$lywSZIPCH=^RV$LPS?A@IpvZ-DTB;ADsL#$#j7Iu+o}R zDG&m~*{Bb>tG*MWzK<^I*lI~*WKeerXFyryEb8G}bU{4NNqo;%w;I~@6xdmnvs)w0 zSt@tq`kg`I`z#{*f87FXGWrW(9V~t}5`q8@^%aN8#7|3kEdE^~zJonZV*|{<(bnAm zw*fIADbrW%M=6B+xvcI^hTT_bdyz(BEi$qP@WNbOSn^Kg>Foh0?+hvj>x@QCPZ!O4 zs@B6Q4o6my(OBTmpEJTd7>TZz=VEHMg^jCT@Rc4H5wDq#`DL09KpbTO5pf`be#YyB zKUgGCdUQ@|(ib0CYV97*dm1%CPf0ujDXqtk6L$rHE&jxUhJaR2^&A5 z$Mvf$q6C*)wFPlJaa}iroLiJ6SR=z~A3!RJwK||zdZ%zYD z3t|0OxF7GYE;FTEQKF6l*A8>JN7~;%w;med#+Pla*I$*ISZMoL_Q|W zu$O@=i8wGo^1l9k;1TSVjm0K^8k4CXvfIp~uzAkvOm17yq@Ef{E8Ry|A;T^|F8*yq z`I)p7;;E#@&q=Z{)dtH8Ae0OyelTb;P*lv|g-7Phoc>YBDLM@`tRVMB=zEvck@asy29L>bOXz zBrjCIVTup%Zcr19QH1s;?Xem6|ga`HjxCykqEP{qnB2p4tU%jE~wGy#(xP|S} z7@4ZV`X)u&U^<^Dsaexln}D${Uv06mAl)E~TKIh+z@aJY!UB&tZ|+RusbA8w&$tUw zh%VX7)oH!$m|-Br3q7{4MLCr-fC*;u+d<`d+YWdQAP=gh=k<=Y0HeiR&OV8*UeMK@ zmb)zG6&xn0)v|6eWhNoxzv`_1BEroOqXf$!gJLp+EvTe zA`Y>leI}@v(;kU<^Mjj+;~+As)EXIjI4v2!jZlyE7vQEG&*V|-)r3?FU~5r)X?<1t zVj6W+<|5XYu!aa~zWOu7bV5H0=3Z=IZbvuunn#gAtY>LO#K2#u-8^)_D(;)? zqEBeQ^p^uO22CBpz{4P))Anr6V<~y%lv=Vk)OacI{0egCcbmK{nx=_5Eju`uj}Do6 z9~hH%mLRVZlVYeD(NCS^e3LnOMF{onTsKu7c*!4SHkN*21;{0zgd3{1IWOO|KFW)( zis5anWm#77;{#sKRY{zn7j@P1u5AHyFKKpc<4T!rKkZvpFu=Uc%5r=0@6i6B#u~ww zt$U(rTVIxQeFv*%P_W*<7@B@?x>{t(H&H}PcM9LJi!WuIJtJ8QC)K>5$#bF{d-Gvx zp>;vkIOAD*ffTCG;v$iq8=gFD701qYW)hh(2GI# za%wD7w~rY-FWkV^fSx9 z7cJMnndv30Xxuv?d44DCy~g(2x%mT(n*|k#s75_E>`%aVKQfhVC zU$V>&t%a9n+nPX3@`!Ns@D7`?07=pmmO$r;q8!}DuaoAD44_VK9HnIK#b|TuD;<16 zl;{78+w6VSCiu2*R){cMspV zI73*BGGLV1b5W(D7x~T8&)ssq;Y*m)*dOG8kqc3tMRx%E|9+~DzzAYGt%O=IhZV(G z^NBIQ_@fF~0Ci$w^nuRVxrQs-Hs0Fo$q>*-2lgv(uRG)vk;Cq#HFRt%8lR=xL=j0} z7ug-yBnfN{UyS~zl+0R?qKX7!IZo6Fq6uHSeSts9uAPXBE0v&nfP(64EL~lMl8#ax z<_OaA!uhQH>uu;$X@-j4+({ewyM+HQAk%q59@kI&-muS6TTP87Wx`x`SK}SALAbNs z11=RMavrp*jV{Zed{ll@Q)JHP`I{!q=P*0NO_^P+_n_gZTbzYeusozhFH8de1@qX~ zKFEbaCG|IKG&2A>allEi2+Ewge(5qpT+&!zx3iLKSTgwb(ikX+VPT0E#GxI9h=)f=p$~ z5CNgzi}&aE;}4D=2S*hlxu5&G&hvboN`op&V>Vd@F(Bzz%G(RXT7xpDO^Go)c#5`h z40<#GATE3s zyKCtq-J005&jNsPj7qcNt^W>Li@+}nm35Nbo}@;1%L}8}lhZ=}v?=*lD12iBZ8&M@ zEVa2@Def#)gT03(e-INS0l;~5nfzbcU)dbJI#{R}l+G4Q+_V8d$)py}N=gQsfyz>ecEtSpUHw@fO z+D1|FZdm!G!W!O2BG7BZ1o!$l;!>qxdI-^nfpevFf~P;q52Ct3MGsI*jiu2tK!8{d z!9r!fNfb38r%viOUc%kzz9$xF$)5!LBV$X8f9*Uhhw^lfB;wBgK$1iRs2MOrU!9JY zPD3g-bzW#NQ#sx-u&B9b3C1jw!dT*nI!_RtF;%kfC57`ssVCf8t{VN#yXu2aCs02y z)f4ykc2j-bNN5vRrt1Oa7l`i#qVk8PrSvfoIh{j22b6F(5$5y@l0AH#TLd}4#@}}g0q@El( zjkEiy4gCp<9?;VC0^)nw7y8MQ;IN(~SpO(pBlJBnFB7Q1rD~7dP#&L3gnO`}ixUkg zd4uq5`iNYJTtWC5o&&?PXdG8*_kh~9KA4|4@W>u%d^mKMY)HpSWA<*z`M% zX8AMf?L;7?u~q=78zSS@_)j-W&D%jQ2MyNF!E6Sr21ZJC<{-VVBK#E>VB5g|7!}J; zD4kZmSgCX$>i{E}V!q1#_AkLsL!ENke z>DNtdZYx_Wnl&g}q|&C?2wfudAo7JeSYv_5Nu-br{W&YiEL)J`39zKZikZEDtm1n* zV^3n0$0ji>gl`g_urLfp^GFE_Ac>8WpNE6}&F}b+C9qv;WLb`pMYA~4A)P+ao=-|u z8d;Hhpi1 zX&P!Qz79F$wlaNV*e}E=V*nH|CygtDP6&?e6r#b|j?GmH$US}J=k;tO(F zU<5LFhCcZeKVyTFA_GmfvY&$;65Q#<0r`-WzYk1^=wtw@-e!3%n?}ozCVS51R`I zvt@IM>J@?bFL+P>xvt>%B(_$+U zOaZuJ7=-(E+g}`7)T2gKrBeLkm+8Gjm_8wpU8q%Yv~M0_)n{(hW(b+`KWcNHai z&ojp2;oYc~rXXf4QdTyJXB>0m_|7Z2BKc&ZXbcnMjBAWdD6_-Dyg+%++_d!c)G5zZ z>nt2?hFibU%yKPMY})+KhJNdlKd!0$YsqeX>A@S{UWz%;n^Gjacp=S?RCV!GWbt@P z@saEIR~v0hFDn|`FulwAfcCg+bXYRO`)pcWu^_Z)BFp-S=jScYO59!!Ez{C+$vXPX zGqOE*o&UQ%Ibj;r*;QxvColIo=ydb-($f5CJBQ~vxdpCSa+gDreF23*9_vgcuhzfY zr*@~b|BUwShQ#)z_n*!WI^m-dnx}f z(@TaAHmq-0e&&y(HO#uky;@G|55v9Cs%z%E#w#hUThE;cP(QlTv*rx1kalWEz)WuK z?!T`86?tt{(qUoX7ca9jLF=A=sv7E}ht3)PyZ7a>?^+(m1+84u;HQ67_UPKq=X9s= zeogm5y`%nz$L_UkP5DkdIv)8j&3s*>Me>qEH=EvLRj&50GES@aF1Kw=dRe=w)ZXJw z<;s0qUfurbft>Z`#U{7vEOeZ zaodF54bgWuf4%>?FDPJF*vIADe2RzkI*Ps*-Me6Cb#*@EDVNi9i0+>~I%6bd_htINYLcHF9%*JirCi(YTrWBkhZQs6m{HLv#nWRzpD z|M7vZ%V4E>vSFS4TGXz*y?tRe-+jB=ciZL@^D*#u#UESs>d|z|)-_{(ydOipWE$oU zkB`k67B=_)*|xo>SN!Xr-(KI$ke=0c_nfH_ISza53k$omCC@?}K4)gUE&Iu#pX^Kp z*Ap98zmjZcd)98dty=zC=jn=9=O4dJ@j7+0=#1&OANy1K(SYK-oaD;wzqeR_8=2X@ zV&K7MW zcGSN*9k%3p^Yub|vumY#5pU<-J_}rT@ zJMy6K{JvAhs?UG%|LtI8F4py&Kk@wUuN|Vk+H^8-GZcd?|MvQx)%!MHQA_F!((?}I zu06RV{d==_cCO@Yn=NL1E0(3c-{~B@?#QHk)%kbUvG2I~&E!Wl9dwZqG(EX~-)QRe z)#QWoR}TKj9o1fu`({c1Zvl=2AJ$nq{lL5Zb(5Uyzb!SlD9Be~vn5kl&e&xB>|Akm z@KkJvx-hjd^s@`1~nGW^_&REX`Eb zVp4Q*L&Oi7@xhDktu#;j>tC(Un|5%TBOex~?>BT?Mz7*1v^vykX55UI<{F$lP<_j1 z{!Enp$q?_buY2zPhxSF^ow*S?xAd2exs7vI#Z!9g+HYTSJXqTAR~&I7sCtLfHh}Frnj;fmGfRN(__>M~T7vdejao!X##4BxTZJ%~Apo+N$u*Y8 z=gFZx3FXDSOb7d)PB=Lk%Dqk6A~wEZUT8D`Y0c6PxVx9SP_&J$^5=I*-_6ARBv|Hb za>XbV_>bW(W+^&2`9d2JgP=On5>ss#f)*6xC4hGD`1F_Z0K4*^Kx7;_X;4D%1%Rv) z5W!#YNPpVJg_`Hz-x!oGaM-S`fmZn9_#S3W6b{0w(CHZq&{U=?34_?rE(@!Y#J7XV zImn=w9Q+zu>%kLdJ={w9krg!s_TfgDMNK_b9ThJkHu9l6u!{o_zd5N}KJ1INKM|@~ zRsSJyu|4o%0{88tkYOF>O*Jd!Bz21DSWsWNGJkxm3O%R+7VYb3s+*ebN6?P$bgTay z=2x~-`$6E>s}4(ccs(HZh4TzzUX}tP^o;FQ*nUh0L~{EJbcg*={Tfx3absI>1jpEoDt9G zir6bCwbHw|I>2-oX_&!2P%Z+UdO>+}mSf~@_9Rkcevx*?D#1~C!LnM69tz35kW}cU zY0Eky_-%EQWDq*6!M)j01ff5Q0HUV8o@nWdH_TtmROkTyLKv8;8`;@<1=fQIn1~C( z!bzm^q7k6@g}l7jS_mNkWt9z9^H?Y)3IkMZ5TqpPDL~yVVw>jc2yj#;jp4ncK}(kj zS!f@Q5D)eYc7T4`yolTs|9+w>JB8prBYA@yJeT&pA!8NK+>Q`lNHhaw6!uoB-gTp)8P1}z5saLCCShXgev+$_YZ)6 zOzWZ zVOAk}5JLViQ#p3Vq58s*lr$rxm)!x0IXDr71|ikJTM|;X?^% zo)C*Pq(n>HJK|v2=8=+3t#qzJJ)s!ohILqRDuf&J={|i(-5Ptu{+9wew%7tJf#c&) z0EZq(YQbXY4eUsGfyaFO4+U7Y)dMds8`(M7E_AqyzZn5=Eiiz<3vGzhDOjA?3R@8O zn^mQDP;z%VCQ|OivTZze8)yGj#@!@Lb3x<9bpUC=6UDATi3Ai9Zl-?qyh&zL94y z2<={6e$3%Otkk1}o)}W9TqX}|)TGCt@@#VQ#Q`V~lhqwLZ#o!Urlh_Y zq6=P?LGpTpTr;7bo&(!uat=uX=QAXQpg54u4?g41ZeVA^`6{Ky;zAIVbt>Z#LlO$E zR76EWgiQGeeq5>$?!qQO!&jBU@uo8ZMXZJWgYbg_Ql%-p3B&COrwQ29NS=h7K~^vm zsrYJj&=dOVSL%QoP9UjkE%PnB$iI=oz5LLUMftkyXG#bP{mkW~5AAvQ`@!;mL zMiY8)M-g{Q(!CHT)B;h_mOy|xoA#q)+IO14ug(Z_*1rT>XE4&yChKvaOc z8F61AFc7oc&j=C~{#bF1El!;vC*M*n_w$5`9iG#LMyLjk5#Ip!s4Y!G}HFOgN~Y zuw$V0z)B$i%6^@ho`7SG`UcAXbLse_bY= zHJ?vms{{1yh+O#Slx^ixYSvDIsQMi7WfWH*p|RcLZzuLF`b)Sc zGX93%cIi@DmYClTL!JW^o8yjvC`+w$U$Q&m94p5kf;zO zzvsAll;%tJeI8FS^}D5SLy%UadI03jWgwSzz$>V^ROulh8a(+DoqMe;D$;P52b+mYKU1b1 zbN@s31y~^b#NzVdEN0k@04zOR^2~C4QTn-l$^FAqxQ6aW5S4&KuXI)*8ge&+Ut{

*ov_+nriE( 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

ljZE>FeF1=YKy}dDY8^t`(TAl;LkF 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

~rqj&`>@36{QMO|7MJu4mx&%|ANT_9e>1 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

-jt4H0e(NbVwj$u533SNl;uUw(S;cHFUb)K z(ndFOB8tCO4BZeZshN81Mx$EDK1dE5jCg#oY86I22Lq^vSUS*D$Ek;=vqVSBZI(+K}SmUhVyno#~EYxS-LWFY&d{ z@ym0k-3EBWjKv8hDdPfYJF7EoRA80|Qds~s4$_ZujExBz;UHZFQ+3%7#m7P< z?{n#S(XE&R*gMv1T$*Rmu1>hr0^>bsQXL&7~b)|1m zvHgYi%$6^D?Ph0chrF+ICmy1V{{-;ZA$x@|3=p0{G6A9DH!)h@0cAZdds3(+r9%<|{BG9<h<>N8nuuM$KFxJ9*FOB`403 zg_^=iv{b;V6r-*bfLtBQ#{HupS_po9LNe{j;;~I!w{p6vNVf9&?68SV;yTsRzP&~T z#coW<9K5H-wE8|4>mi!!s(6xGrVum;GcaYzqzNu~l7FUL|JWFWn`eLmK#glgg}wc7&kefC7E0 ziOGcyqm;4! zY3Cki_HSFJg8kpy6UeF^8*zr^W*$T}9bR~EMmZnkF@$0aP=ZT1=F%;KH=4%q3b8^zJsc(^L^ zRD%rT-Tx|-_f|y__32CU9!e4n-QI_-!Uw_TG?C2i7*BqBL-@yavUkQ7M1K14uUVam z^9JW0zxcASGuA{N>4rWae$69gAT%prR>E(6vMV zI$8lo^0c!{v+tN`dr{_h?WE$oE5m^*FgUJ2e-bI|L&--2d*p`AJz{^(*7Z9=DpdHc!vK`bJ=}ixi)}j5=~}Qz8!-x)#-&lJ~OI- z1#6vaG$@u9DuNnOdY!965;*O*h>JGIGjjdU3SXElR5TUAUzZ_x%&X_5UeALo!GHER zX+$f=o!9h?w{A@$!T4w#UbvKf(QS~FoqjTb3nk^kse0Z>7@3tB7^Q?57$p;a>3B@o1S{evnRi75<9I=_d3)lVk{XQJe`Q*&*I4K?}@;aa^b)4&zbg4nvGn)W!2dh z$IyVnOr}Pg=;H>UXw!SwaFcTz)81W1HC)KigRId+NjrvujasYECIw(S1DaiFRYA zEUbVp%&_khqEd>m>>S7+phag%gh+(eyZ>EDv7!xhXz(JJ3&TcPT?O;Qn&OhXuJ$G$ zyc;@a{se7g`x6*NUtSAUT7d3*aHDU*+CQ!=(M0tEhMPUJZ0*CDnzf&}Vm^_NNp7F| zk7+~8tm~ZD*Nh_CESRC~zRZ4zRW1)`JNGRo{983KnjR+I;iogqf zycH2x9Rn>>8g&D#*v(fR;3S99)#1-$Eqo%l{H}gGd<{|M8FJic^S9*4l*w=i;P~KIJ4p9b1k8c&zhIv+Fc5}#!#K`Yrbfq*8Q7^hFFeLgic)mu5q~O7 z*r>x(e-+~xV7AOnzeYGlQ}LQLGwb)__PyW1{^mLFs(zr_>R(z=-D!d>f{MUtA0s&Ww?*I^s4a=?^Z3G+LK+)4d*!8l0d#3JD?Ou0pFno7U8PeQM*OkEK!#N$_9vr*|k-}Ga4`(9~yo3Tc_ zk&sYS`GwI^tTK-1nk2ucje5dDV1%U}?RR!INQDwN20w-22M!{NXVXP72zLjR=tBpG z;GrFun>M8(zd7D#@vd8-*lsMGiz!iCltOq;rfub}(doC^|HNMU?fo8cjb-w0nWi`H z>M~O!n`KwmgPeH77@>~SmEc`!zV(bl$StOvOl3F*m2jt>b!y8qe;bqf(g4zVbwK;& zyiE>IW9P}Na2})J^^|Epu(jMagiU){%`sSOZmj?7jyk`RCv%J|FBDqLs0&$A(nlx- zAwy&MX>CQNDIqja$9NFth&A}{;<{qFI0yBRMlvo*Op=-Q5}_}swEwUyQqH+6Oi4g_ zHr#Q#-VBz7csF$eV`CaVm?ED%7G`!u(RCG3Pb7K(pV=>+w!2$B*8fc41RJ-i4L%-2 z>WJ0s7igvN`5V1Vz}Ri1!gbGYSQ)GpU3n6MrXqxa^pNFOJJ@Wjr=k^&iFJ0){iP7E zV66WAnZTm0VE)l2rVB+&PfIb^DXU0wpdxwFzQ??igrGxB$zrL=P)+Bs3x^N8T6a0@_Z{_%Kvu)mp4 zBiG{<>&zym3Y1;}Qm`9lUAbKty`dhG3)g$%a)GH^9=jXWY0K7xR)5eIGu=JUyG5%< zj2c~)ti9T|V|w+QBU(+^1lX)!sHoH_cL(xv7dfp^F718F=7RelIRS?!H4X8o{>1GUWZ(LarVIZm! zX9O59*pFSB9gCL8ak^>8K*w}TW3|}VS_RV%E(n~x^&AvX*|u>(OzCe; z8abq%Ik9vcVN3dlvhsh4d%YXp)QOw>cj2{_P|4}w{FTs8OJfhb2R^g{^4RaT3UGd% z0thy_)mDUvogEz2gsS)})-D`qMM*P3Osla2zCz(;j5wN2gB(`KOQTp>3Fv;oK&_s% zCjG+iLqJnf3d8X^ch%hV!*ZvwO-4=Hy`crZrBR+)nBP12LRyIGku3LZyFQQG4iN#Y z2q$&0Ls9P)_?M`zgVZFf4YAUAO_)v}KMFX25ThfLw(h-aohAw1Qj3k4rx7wg6JA%< zq=L%hH;deL057P>m)hq(ko!xlgj%GrtSiE?)2uPhz?O77yT)={UGbu=gRuIVIT1r) z>=!ib!~p4|13cBUALKX0F+vue_T9phI8q;{*42t&-eLXdPYvxNw1j6|rZlNC)~I_O zD>31f$lIJ`S3}l0I96#Xw&!zTE7MJ93v=leZYNV0_^OJ!v+9&qPgU#O6;WgK38*c~ z>BWUTJeJqXp_H_y7{2-Yk7l;7?JK}+`W2m_5m_-q+^|MVZ!(u<5opXTE4IZK8A+wy zNwy9FD?2-is)&!?KB$(ZO{r{OvX1BK97?QPV*ULxn+l}I%3WhxgjY+gdC(IW0x~zl0w= zvgP1xkoumU_*U%k(}6D@)Na}5y}@z8_p_ddHc{Uk{p^=@pT&OHp6`|W^1I9{F8s|u z$4~bQiaogLzBJo7&pIgW*Zc1KO>CP#TED66O4b)AOiNDh%r@>7N9;PFM67#g3*So=Y_Ly1Xlj&K*cW?jpeV$ZAu|JlWO z_ZvdHqT9_W3?Pjkr5=lS>gU=laPqWO+Qr%O180``%elsP2f07=naRyebnd=65nKqN zIT7?*DZdD2C+Mph(??T>F!1@J(bg+UPCG}Y={0^wC$glp`a3$u;+oQ3MT|88@-^hw zCQ{I%w!T|=%gYSqbTW_#x_J7htV*~-mf zuK)c$vwUdQAKojMms@4?dvtx9mu1`CkE#yecI07pe&&x|rGH6y)_1oaZ=U_pfByQ` zi1YKR$L3Gu7nPp&9S3Jy&wmv@Gws36{R{udlzVC0%nn@7+jI1vue?8f_|DB+YpOH% z$3NX4b)=N#!H+a#%$h8heEZQ>pB0a0A2u%NNE<-))#U>jN&QP-do>Q*PX+Hj194+L z=4#n+Ro(oTJpGqEeqR(B?bxu}B}`OYYV);BvT?q~uNMI{Ixq5>*{bqBZUvrGZ|ZlE z3)m9g5c|U13Htjyg$w2kP5lT;Tn5iSUcU}u<0RS6c}0ZPS#5I?g)Q7gr2ytQvKLOY z&txz;B}OgG>y-r-CykFp5S!_8_SRl{n|Cj!hxi2HD1stkMX#yH2=K@2lV3%Y#;$64 z)K8$l6^EdKLAm5aEKxfAEt&{F=zu~*ukaO z;ObW2(eG5?m^0!7Ylj?LXYDQ7HlH&SkUoP9=(aie}<3?_3qwYBxb5I-NDOC)IQ^Bg^nM1t%lTKr0gH00ek_??wf^vbW zXD?zT4?E!(otxGq9|~hp!;ny}PBK-Ur5RSQ5@b}>*JRI9U(@?L{@E*C`I5Cme9|5? z_0`cW8HntpHJ=r{+Z2<>3`wi5g3U0w~t) zQ;$-;q8n~K@8dQWS-=O5qjOvw8@AHImRdbkF|6R@{yxEU#)lV4%g(^RExWlW;-E{p z#s0J<0r@`rZU~mQewlxvX1d4rUvDfNIMfg@?+3*@bDrN1IlL=!zNv63Blh%^C;lb#|DO)%(`MPjPdCK~ z{EL^b`b)&}yRZ0fmh2LM|Hf~rMVcXsyFbF=Lk|GDk$L#r9@>vg@(InOhmq>jQU zRY#EGiA|ou-N4|p!b0+u>)P74Vk9EFz!yOO15+vWikpX=gwaehGB@(4T`=<7-mTP8tUma zCeV4YTTrbXeyOI1%wvzH2%}zTt7qQi=9BbcY#RnW0`tKKSFl36Ff&f{U-}1Iu2R*8 zweF+D`a{@7F)zz|04YR+L-1|pUR8?v**ul^lw_iy^zV}_o3KJk851WFHt z(rRNS+6bO<9m3OLrjWs2{>^gzO%m>((lrM{7!d#i@87JDT!#cO(PpHa$)@Gs)eBYL zr{m=4g;m`OkO}yXqO*goeMCJ0?-%rlGk@n>pK%ujmMef}N*7(-=P}wu7D;HdfxD8zciCWXpizIUUu#oOSTls zZ)U=mYUjcjC>s)?WKDrWFGlY{M!e)5+`cN}KhDBI>3Izn%7QSXCyf>>awu799(0|hj>Hg!qX>}jBv z7W(tkuwVszZX}z)s*45Pu~=Ptwp*39qgI4ZbSAOE~j%hqrmn1nW#K zKjX7El3Qn9a#8~ijVrD{KYZ<7!S+OU=DQnL9$MZJej47q_WLP`f8e3xr**n_bYu1E zll|84Sc2n~i0Bx#Tex~sn5n>NX0zKAvsYvF2%l@a6i6qDyr%D^JFF$rk?nPb}pWfDL{8E3WN3X;E$wSv)E) zz)UmkC*tjg8K%JE^o(Y&0@0H7fDQ_)`O>8)J7n5O5%UFYx0y@^$t)zcW`&F~THhqG zmUQL6Ul`ECoKaAhYPor>H#Ay(kWs6b8Ae0${5^cBN~>v)Q*h)Fez0R$nZ~>9+CMt? zqfv%Au|nz=-Aa5~6IxZbLefb`jAJ}uHpv*vT1$2JR-V-*PVMCMK1$hMBQqQr)7_Tx zI%zb7mu|b&<^&JTB;Qq=WSfS!iE7spc~r`pMl!z>h2E;ebHiJU48uxrIm$EHF>D`H zBD?1Qqc3}IO5toxWvVk`QKHRJ@Z0747n!EWLmcZgRJ zPf)}$kZ#}^8?H0kG55c$bN2tw^ zkW+==AqKX+Ku5d@Z!-$CL~(=a0+WlDQVWTY5mIV#8QVZ+e^S?O%y42d25v-wuMVd{ z7pww$&iZ4zhPpwCOBGne5c77CBh?h+{xz0NKAf9KMCB0)Hp&GAU3+K|kT3)y{xpq( z0OpZAxKq196{(UDpZo>Rytg^aLk&ZkJd8iupt@wSfS(cb&)+qNCw|*&Zo7Af_@Je!GG|FyO0}EaP9GOE7$E$*@F z0wxTaPOZBiZ8__1+GppJr{40D?GzVTh#C-X#JfnQyV^5 zlDAv#<;{HL!rQWA1RELtS?abLhS_WrXF7G*xC(VEnGnjKN_c7SRDQNdxv0c37#j0Hm2=)dXWyrzlS$>(O85c@tQqisK; zZSfDg2^@L=5!LtQ7MZy`CzM2o|Abh_OJXZd+Nz(AF??-H>QQtkVTNa!`IJi;E~>GV zT`QzQ+g3uw`=BhNrwL)_Oj=;HHaZ1bvf%*6Y5Kwl8x|tvK56#CW=FV|^(cu)cnO?Gih;v;f}j+H0MHi`VlbxBuYH80g9WmhDQ-^SY{u!!-R z9a{3w9OW>y=eG@n$VvrbAEMie;HFZtBvk}^Eb%Tw83>K3Yo8r610G}oJ3G(@K%EO1 z{T%&j`OW)`tK|-&`C!?*ZCa@xope~^L=#h0C+IxhQn)9aT;gP_Um#R8?v9xzB3^13V!5qf=oG!}LK`zBXo*_LuPbEF8FOt|CSGRl? zZu^40CSDT>$?0r^%JPBfdtfA-Q)}errz+z0FwZ>FcfN%`-O5>WES~6_ z1jWHvqn1#Nn(eC92xay`Qw8jVq9j~0KEez?raRjrZ&BDVFMh(`>RZ5ik?aYb@Yhip z^1a;;RhvGul$UuEz3OLexw^95&(Y*r>2zmfL!&T*#9bg zM)FP48IjN_g7YBQ)~`_RJt?mxq)5ViI$JkK6v?S2h61e1dMPVm>}ufKW5k3;9iqi$ zhM~WyQr?Vg$pu-|pVCOq&3Z(h;G6!ajZijFFZ{yP0vVM-j$9-&-hi-TM~Xc}J~h;g zHb6Xk-o8R*XD2O`q#YNe(iS4{t@d@yUGUT-EbFHt%8?Jks#**hn^*%)V3heiXH|JLTcCG5WVgL?*wQ zikf{uT`rZ?+{oY^Ym_T5A!|11sb^)|V6b%GcbU_b7cQE700l_+g;_RujOX}{R$VQy zDg=z77-}Mn)-t+M8}jzwE&(p{74BZdBAa9&x=;-W650pNGUDj2S`wI-+zl_sEn2|u zw@89EreS^p4U7H<2J{WTF=Y?p`n)G!?NO0#JbK z1PMQ=njYLI77_~yR@f$a+?*KK>|3xlG<0&Z^`#NTBFxE%EiFR8ZZb%au&>-}Y2jX# z4sk`oX*sbEM_S8iN<~LDBO-q_I=1rjP<&}Q;(cLkxZVlAelGy`gVfQ@v(>Dca*$V< z<#$^*UH&Tn4R+#xzha&dJH=CnPJG1=U5-}^K4I|wL_in+qw|=&hl~lflk5j*hKx`P z76a{j*}Ps7iYTkBa@a9+cY=fi*_m+&u} zeRH+s%rTQ-*c{vTrLO+xj`8S<@IKCuH~MnN_D7asI-6Y^;1|sZ%38F&aW$Nwvudj@ zJxq6z9LfgXW18NvwRcSJAM42w-P%hZtokoFF?&YO`2tk3IK13=Q?KSbx`C3=C# zlZeJllDJMo&Yx;gjnnL2+EfKI(b5SRB*gpl^s*&y8_R-sS(Q2{4Z%zfovZRzpswM^#Hdy` ztc>C80XQWY4=P>sf_4l_?88-0!jh9~n+c`Hk{XTy-Yr^3<-@swB2vzhv+#5=4-ev# z;=b9=8?D9P$}54)u}ZePEMXy-+$h)`yOq}jF=mLP92Tv2f5DZ<1_{vkHo;6gF`Tzu zJ@>ZZN0SmtNT(txRt*8AR1+_H#sbG_QQfSkL0)7v9wdxO^p1@t z(^g>!$eJQS2NMa$tg-4oMgRAzm~I0*3UhI$Ca~LZWFD3EX^($H+{@ zX{eNz=QvnR?M6Ypn4g(^dr z5=q)b3eSi)A-8ZB$;vYfM%sG?n*}4S0>;$yUdm#fO4~5Xc!0Mp#sqE9U=Xt6=rwgR zqb>b-J~&Ou<)zDn~yW?jk!ehA#Z5>Vd!#?PYk$mDA7k%_ZI~tcG2B4l?3~K>O2 zO^UnK-z74iuo3QYG{2Pxn-{H+Ss`7@Y-Yusq;7=*!9K@h?==n&K62ntzlCTxXRBO* zEE+3?G%knN7IrLC$^;Y0&}ORXz%`SmLqK6NjU`M>nUpXOz7HFn5og%fgD_A-y}nX{$D@U z@AeHYYDvaQGlYv6lV^$52M+RD)Lrxv(=T`x3}D&`I;Qrh6#NVlo7>5yZTDfUAS=X< zv2D#J_@|Di7bQcIEIY&Vx|RDqc#X=dhpM zK}M`yy5q@g5rq!5cT!cFRcv(1iuB z4v5x~j>KQ27Hg3A3n}uwu@UAmX4;u70~?p==vX?XeSqq?x9nOmtWFI_M2NK?v}dlH z&Y9b`WZP!Tgt~mK_)@;3nmwfvWvsAs9Kf-JdlKj93zVX@5+{{@kk?0w<-eqIgRbI_8YWw0X?Uk3AJpzjd;sZG=W_1z2qq|nQ{bnDiR6N0McQI+D9svD`b>trSeyY#Y-S-LK` zJi6`inol=0^rpsd-+6jY=20WF`FE$j&<+1lZ*HZ#ife7gDevM+W0x8BaJv%gqVzndL$AmrSlkN@wh!`3nNCx7z17xQ;n zv);zipR6t~wthNh@XNA!f+Zne-}v?Ad-d}jk1hF@yX*J(93Qoc|Bo9(m%TYu=8owkMYz~1DB(rY5%EGq zYu%!m>4K7&_fQh@X)N`7=-VWKI80{=m8~+@99es{;jGdflp2WH094G&=9fxXc7QY= zL*t->|LnrnM3L=6cIt!6wkGXns>B$duumSAl2ZjUmfHak)(NOswf--_1qj1a!^5Yf zfh+8g`MNy&txE2h8*hSy4^$Ntjj`fhv8m*xZzp3b0o3qDt%1hW`sB64nj?<3`&7ky zu4n(T*Z$_lm%hJd*LX)1dl&t5yYK@cj?kdVgG959_NzC1y!KyW5F1}zY7^xt zc5nuP;zi2qQ)^!sOEw%ob3g1z<{iDZUzY!1^JsU@!jEX|=}JaS8W`2Nm&9nTi6_Y3TfOPl)j zzWI-LDlZ+0f`azpt(1u1?@kQYtHE&jw0lOX9%mh&8MgQ>!kr^!-o)Av723bs4pe@g zeCnMy4)4af$?AH-SpCB_I3F7lexS!j2;aU=aiK@BV@ze<9JL0j}ZSJ z;=pWL_W}hxKkTNW0^;VE+G*>1lr-BdUZV`(PZdQ`9sON|!WV;=wP}_d9txfI8yer+ z6{~IFbU7V;cbIg=*g0f?TXY*>xErDnTpVMQ4(ypmXs&=i#HlLKum0mWrdyYWZmuF< zf0IAIkNL8N_aG*NtDLHk_fcmylcEFVF@~#i1N0^1CfhtaAfh3CF4M0pP&9yT5}ROp3~Z?x(@t2WmwuHqZw`HNTA&y z24V#_#0qjGu^OpkZrm0W0p2MV&uaR5xJ$2uaMhh{9QS{C_1d-x)KdDDsv*%NZk`7r zL0jZHE}L{wp)Cys>l?_$s1VdHZ~A+ReA4FC-(m#Lo-!6j#s}Jpk0Of`_|&tV6Hc9$ z8lpzj#I?e^?kZ@9@XL&QQeKKfvEx+Iu93UL@u#LMMoThC zPCcq9%-Uq}S!gdKET;jjffVtIXpxNQh8^4jP7W;?iNtZfCd+E5P2WX+4;EQUU0@mw z+X;1OqE&Zf1cmHKh_+T6I)t>5kA{j(+AYKe?Pl3@+LGsj?Ip`Cbwh@@`3oH$uMHdJ z4!8*}?hZfoq28Ok_U@Fe4S#toe?B(|HttQ|zx{2|n%K#X()=}jmt#(6{QtDGotoMO zhA&;7-1}tV=imOZU}zfzg}n<~7k_!}q_Mbp6X((Z-zh(mTi>!?Rt{apw3w{%GpyCeT4O81Qk$?wkpOYTEo#=rL-ygt#&s|Z!^W?qfCEc1xFSb+RoA&muTX@|cU zt4c;3Du>I&w3{E@6s2NpnDU5Kri7BVAkpSIz3F!6tZrF?u`*scPh~3!DVLgE$xODL zM)u^bTGE7gTVY*3Du~%pS4%+$3bB0}spB`;3g*8$ei}R^9^F*UE%zc(9+8|eMlD(V zl$#YRH7RI7#~3>VPO%B$0E?f9PS67gWzt??=op^v8_BxeLQ@FI=pH}R$V@>- z=}`Ri{>>~PksUU~*-@VamF%W&wHQ-Ps4HXIHE`yKvevt2*l^bG2Al0+PpNKLvlO*7 zmfITa+xN67w%e+6t1bTS`R|*T{}}^tCXY3L3lM$_=l+PZ0YR{BjMW1Vv1<$&(OoF_ zw?p|jU`(s~hMw|w^eIFqu+>6csqRoYu*Nk8l-x{nt4-eolX>}*1#BL|fz`Tl#6N)$ zOz!We9b<{@G&1=nK?SB^B~sD+UZRVuNNA~IooX*Kx{ZUhtsj|^ zPj*1$EP2BADb~2Clrs|0Rp%xlMqsM-(J^}14`P5r(}&;PpAp%G^uOsf9h7z8m&8TK zO2%%_T`xvkVXYb5%qr&Jgb@LHjI;bzVvL=bM9xUdn^9#OiXU@e9R5=>K1!1dM^1uh zg*m?1JrAtG0UCByi&@BJKSY^PU`!i-=b0ILvbB>e!h)^r4G5u-OdruJ4mk~jkmqhnC-bQPO51gGO3!POIdEVJHMWSH1<9M)4X|#@Q(aaxKcB zxL94%`QBBH;`1=7J8|9XYY!hiHEds=;@-pks69!MRlL1mVvWrL&dj;hC)cx<6}$TB zR{f-#`>r5&$(zN+r<}h1=&p0;qM37RDyIA@(i0_#=eka&Rn_ikdZnM;74d;{%J)~V zzPatUzRqaTlI(`IEni)osp>BZsyvea*6-1)ntNNPgPxdyw!Em#v_aWNnAx&1iT(x~i^{@j+tvh50Vz-YWjSxtm-x)PBw*m{|-!RIjCK zkj{$3mlCVA8W|g5G{((rcQ30jE*xjxtv3k1Phm5niqWNQ5`WY*XIZS2q`N8@)i{nk z#BIbqPvAJ%$$OCh^>L5>B11~L8OPWwRx(bo0{&(TFQaq1_+XO9q-kx3ol+u@)*%sU8OT|?`%9#TBfuV2gr2hyqXu2; zdX<98s8Q4`stLX^G;-v_K{hZ;2gd(qA8)rL5oRY9mCKUFLZu_)b z5eBWRzmJj=Fj?Xy*an(7kIP>(YRwz4r{ph}FlQ9oh#Tz$1MJ^Dv(7r_2(C@0n_ewl z^}+rh2GJ8T>8VUwyh`F1EAQU#@p#VaX}N6Do@NJ1t&bcfGtrE7YFsV%KI4VIy={G} zR31_G0?m;8G^rUZM6F98J)a7=G=ih zH`*lOhqB8&`Q{!gK6!cmzCp*Kyfv>cd-Mz4&drHCH=jE)x9aZD!SJr54Gl+(@>VuX zZ4|vp{Bpz{tuw1*+HbyblkYxW+Pv!XWvS!aO)u{WJnC>I+}q*j3tt%APkT6J*~m`m zcbhZw8H_sL{YzR1A^SLWEJ%-&{mf~aZPu97Rl4M6FWw<1nveXk>g1OFBTa(cx6ynx zBhcYYLlSE+&kwv*f!)cpyZ2#<2>TPVQI&z;D$yJNGFL>JWajycX;cMb_l&>z{b?F| zzXF1!Amhe6DOj$ia+(lyy8sLkl!hf`7~D<~=F}V0 zbT^VGF4GdE;7(~O;DIeLzK=X^QzuWV{TVlLX%s+&A3L1 zl3OHa;x8!)<`|&^dqs`RJm#mS<;D&6$wwe?;L10AU2^E1#HSQ4=2VUSJNZ_|d!uYK z*rZu0g|%3o&^IG#!RTt_Cw8MjH-qOb@ti?LCh@g`7;aew8~zBgBDa`b+SrJM?|uw2 zy|yJn3#5op!&wd@7hLrr*i-&wJmA^&Cda|^yP7DmLUkTcdculh zrPn(3vnD01t^Hc>UIdzTl{Cw)UA8p4VubTv|5IXh+)c9hkZMH!K`fc`9!xDA(ax0z zWb?Nl5iu}2y?938=QYkvS@TyXv!1FvlCkI|@9>NYCRJOeM2QEhKg>PYxi4sppar_^GOHahQTt21 z+m8=3_R^!M8}^8#Fp5Z50*fK~IzO^l<21@??&KY>=FSOOTB_jxWa3E<#5dwQ@6RYA zu)epg;^d3M8WfiSGaXp@!ds{`y>f$On$bjwx}SfbLhtR29Y z1#y8anClqU$#PWE@BmsCDc(+#l(+looMC7V@;HxT70M_DQC}g#l4r*%8-$j`hFF-4mu>Kogf1Lp(0b4hCJr>BVx;{ zTArVg?_y*dm)oLYCKKx<^Ie91ADaVbY3TBhoAUPR`(|4}J~1eRD2om_#xmRRw_2Bw z3xdoh@Gatqn5S>z%e_*#qMD%REKBH6^%6(NUKQAQ)$hlIACwY1#1Hn_HVJ@(Yv4lh zYFG*bsKZrqaYSO5YD&vRx7Z=*#$Nf2bVCnT7b-P6ZA)ao{USMM<|d2tdCK++E3!Eu zQG*CLP_(GA)HdH9b|00A0_XlFU*VW=b$R^q=xfDaFVC` zJ{jLoU{!Lh$V5cN4z}=551$<@9(KDn4&l9FpIr%}HH4$Qq8e{Sf{`Iic!TF{^@={W z@|`q74K6`X`DqpPeKX@nh%jw3Jkt8*eI1;hQut*kr!aW=h)*}7?~hmwM^T@|WlF^# zij+xHl$>G67n{c`KtDHEt1`-q_(M9xK+^L%Nr${=6ezK0Z_r0x1ObmS(aSWeq~E1* zL&JH+jwtB^&itk<_mjgNyF!|cssyJS#Wx0v=bfj~K2cOE_w6sQh4!6$LnQINm)XZz zf7H^S9>c2nL?WbUtCY#Niio0F2DoM0v`e)0X09sMj0GqJR&E0SNrv}iK-Xwe50cma z5R*B0j#mU+(L`M(Mo!_t$=~Q##a4{8kfkL!i^0hUYuvW_|HF+1bQ3naJKa2n2|EVK zxP{u{eK+paV!=^Mgwd7e`F=5gz!nC?m|ePR6kII*un|dTAgPTjJfU_$mVZ^G@2`5Q zt&DtznvHs17KyER+{3KpoEAy^Rh%9wOaAHMy*a>H7x8`B`t${qhJzSD;ib;+~W|f+Klwp$ZbOjMOM!JG?sA9 z^Q}fzvl|1V#rCaxDlea8@d}oNXEx?jK~U0ej>+eJKf2O1+$LLYxJX|#ksB^Fm+l%(z9^Iv z1(@uTRNMywZjjZz(cA+_c(t)yA^Zp|`xw$DJYYjOHy;4XUraWy(=KqLhPAg>W1>!Y zie}J9{9wUYdcJXMBeFJ>Xgq>P%`dWczN*8^$bh(5Iy|cfPT1F6*Sh)n`^tbBX=6{VG5q4LIV{PSSY;r%Rm#x}t2`LTR*a2v4@hTffVX&{B zzC<}GA9*_OK)3Xwuv9Z1!8V(AVwhE|_?Z7du*Y-wP+{`aIK%#)WjC9Dj_(^S(T$zo zWn^m_9g4{(ClTJ*!TnNxUE&MM^H5u;T-IJ|XxpwYBW(zYnmY8u9W&)|chIM+)95U` z$uclm{ak2IWCFYkEVB7xp#!s-Azl$9pt2a%Jaq4r*N`iPNw6KED72bIQisXmPz^NG z7M5d~T*BY%7>2nE87~`>qNbnDE=S|TwNh(yh4&~BLLwK6NKl5T!o49O`n4KD?Y|14n@4`eX2(Bq|70E@&U9gA%Ao^a+wK!vlh#nhplw4Viu zNp4>^{}dK+uc=SkBp?C<0T&eGXaZ@@uP|1^x%nDZ-S$|TbrY-rGz3n^NhTqI(m0@M z|Eml`%LUP4p>lNZQ+qnU)358ZvtP%~y_drX^#^?4I-_ z54~w8=7)_T%sLAzUpKkTFnX#&b-jGMn(mPaqtSU-Ikn>SK1kF`_KHR`nvzE(rHqBr z{=8blu8s?XpEP2Lp?hv?4$Qk#ZX!Ytu@wKxQ4-G1KfKLB7Z{bva2Wb3b|2 zeVqm;WC~!-l@ORP3`W@z6gqQ<U9>+CAEc2ijPj-~wKAt|A9Oa5WGC~D%L5zDd{ z68(KN7X1qTCP(OE(MLtkHn+!ZAwITsnM0tbsl4pvdW{44YyYfmjO(T?Hh&b}tW)o= zLNO$xp9mb8fIIl;y~1j93ity2vEAx4WOiZFSc>QLH7M93lBVBaA4v;8LyuVxl55mR zx??NuJ_)o9TJLvz{I`6W?GZmuN$H>|V@l}iSM!El+I>Gbmc&W@7>|~ z)vLQI4^3}*fY-t&^~L^yvKO90B$V1ML>bgzd6=pw-txm5U6sw*%ba>=umDDwU8qp3 zeCIh!aiK;3j9nikEPXf%lKHr&iF~>4dk9N~sWF-dMT>c*J3}&VscePvs%$5@{@ki8 zKU?$m1yRi3|Ej5MlSB#;%QZHbMRes7(OqsaDHA*{G3+EHZ4_^s&0kSWK-dj z*^NOr$cCC=F}ai`U0UvK*j?-pN^YlYYAqtp&hzH1t5JTXpEX=LkmDEgT~q@jI!88t z$0vI4MlQMN4421W0u=}4-Q>(>!^kqrAc?7x z7_9T72SPYiJbJV$!$cvwmm%bO+Xr$)h9*ljq06I~qqtnmvz6fdgo`Cqdn4D*q+(9t zvH4@Hsb@w7`DO4?4?AJAA%aDGkRJMo;6qY5PeP z_QP#5KSU$`_pGY%X3YE7iiaB5l7NY%(Mt1jvD+pj8jqDkMUq9|Z&3<3uSYnDRP_|Q zh**#32zN)(0TZoLp10m9vI_wQBWB_mGVSaHAVFcsXgIt64ahPQ<`!iu(JR@urD(}d zLJ{v~jg*8e`bFlpsS?qk6^R)JUv$k#Hye3Q=RA@z}C{mw=z`*vSM5HenujsqcGS&3-M|og`tNl zj3rL@!Wt~&#U*jz_^WMaBw%-U++awpEq6x;C1$+;*$w9{GV26|Zg8uxaJA;f3T>vw z5*~o)x2lC7e$rhm6zQ9UreBa|7QI|qc=tt6boQq2)&G*e&Ogp*&7D8JweE|nzh{3w z_wl8V>>k!XUUT&ObBUWayR7#b;Q!C9Wai^{y@6E+-s$BgPCTixoU`Vw{~zt$Y3G;! z>~p2y{=l8hw~w3=k1o>uz4*&Vr+xQ5pPZAl;%&p2amK&o<+ev3rcSJ$$?29tMn3v4 z`QtwnWafVnu=aNsKU%V@(nP0j&$PmPm(Th=!=tHb|Kz@!6}HeJqzT>h%=0F9-wd(! zUhQ`{FfYl;6AGU&mc1gXU1U1GBI7zEHs^H`N)u-Uc>y;}ljbMXObigKwg9>a5l~kc zu#B4lEQVR>q1b$1PCi$<85P1K#g(NZPUCc477G-4w5+h0qY%YsUXe9nzczj`KAf53iZ21KFxsX?gJ9)+OReoYHvm0ij}B_Op&f$7zq7rTZqAEl9pUni0Tx2PVM_&Sd3F+{`zM`GGAZW#LQeKg_{(PB^O(^FG7b4Q#A)B^OR8;r&>B-dNbr3|xoS2Umw zB$P>O;v3hzB*u^KWmutQNVfP87Rn6_?ElU4ca+WKx8O6Hj^W+{;AI<+SZG5vS4Wb@ znB9C>BCSYSzE9Zz{o;`NJMC=|Vq&!c&RTCl*{RGV`FHWdxcc6GmnacNtE|n}i_MF4 z^9|#7VKOVy4cMrbpBR{?R9Qh?%$J8X7e%2DX`yYgxdh)Mh)oTE8@T#R(M_u+s`_|T z)W|{mL5^vu#>i}1F~?%D!k9|?C0J;yu8Hw+d0Pm9&*BlHfPI{THt*ddc*}mGcU2At zZcW*6e?apxMQvG14rOAx*{+Fa;ZRqAUf7L2mT9P|gi|-`7Gh*r9To5?h$hvkh z5`2P$U`j0`k-83yB;^y`cQ&fezC3^OU-HXux01wp&Bd#-V$Lo`IHNfB?tmiH#A*>LyX{VB0}RbiiQ&Ct9y`iGBK=L>#jNW>Khg{Ibkm=@ zVB1a$)g@AQw>o-~;p-3pBY0%Gov##!t{R;%D8hvNofv)0h35I! zJ>(nf6wkhmUdhkRNb+R9pv)7W%r3!y9d9!N4xz;Z^oqZ9tLl;ZNF9_+4$i{k(_Y1W zWTe-Y@6G8sBJ%gMrDx~dOVDHuj>+rsNp*M6((%siO}Cnif?<&EiO!m(xD}4P<2?TM zX-m`%_M*eCddZF#Z90!bX}dsg(gS!w5nq8;Y6QftGJ|0)E#gLL+oql}@x6{KWDWEX z#*FAqZmAv}g7pimjHWd6B{6gJ-bZFNW0en>HDGii0!oz|osdVkSxnrp!RuUd4gWiV z1#$+KO!^Y}Fint&AHnrj`%g1*cWbbxb%}H@_>=DbjLC`(J)C!{kGQAkSS1uZV7~F{ zBhi?o-ZQ}*Tk{&9)5AM*Ol0n^Z|R=bNTKbIAiswpdjTe^_)}%*eikW*>m`Fzm}P#= zibOWy?uzEpYgVq1?4Xv6y;EF8IHqQsWEQfv5In*-wMg?n8(f2ERh^+GzHgs2SCYgzE4% zA`C0(Wy7t3@(SD&iPpTGmbWBpUdx71qD41x#DwT#TczFnW2Ji)rPc9h{TiZ#<5)s# zWMgEG#d43yvqn_q$%@Aoi$v6xE}SrXC*%~Z+erNw8^V=Gg>r7n7&>iwt{tmqEt-4z zz-{Hvi}ZqDz2+RcpS|hj(c2CGlHu#~;=jn)XZyf^(~}h^c9^?tkDc0f-R}64^Wm>M zEeu}fjqj55O{B9CwiI3OfsgfLTn0D#9adh^W-*< z5!Bx(7yUYM+ak;4p~dAT4~TK4I$_x56)kjA#7%}8ZNHLyd_bd2td)$ec0P*)<;t&& zD+>QAiSdb%N4A$*ICoTg7kQ5*!=}Xw>*kt!tz5T1h0O0d=$YF?nS|>RpHfB69(Cnp zVy(xT+7B4ZQJX6On&vsVa$1@-BXoJD%gsU&(zzvn++ctVIWNT9cd~qh&Hu;5V!=GF z+m*^$23`WIjg|M1F2%ghYBDr#j>2xoB~#A3rWVZKqxSrZ>+YqcRmMS)uEd-5SddR< z9Wj0im$&0_GlgZzPBBAr8bQ>2v{1bT)bqHCfej1K`%Hi)0>$NMN1M&2*r^(S`6POF z7FhY~pQ0n7x6MddRS7Wf6j|6IxVA>7(^_g8N28Q&k{r@74J5Yvfa&Z*9eQDmphZMV zo#`Vdu%P`SpIAn{kay$I-WT2kv~@EPw3iX#-+BtqA=sHE89C*D_n>N)^(8#)HSui< z#%!!x>qX?*XQNiofS4S9yd(=r64o!D>S-WJ@ zhdg@#02us z5W^MO^A-SGew7(EU6?#tDcW!|hT$Sl{;)Afu)Fe=G3%lEE|yUryQi3v1WA_W__A&Q#cv{*>6w8`q7G~L0iRyG+f3Kn0CqxW;?066Q*m{Lu-O07O~QH-}2VC$8Z zH;Z!uO&x;=8FJ(~t@fgIN2DSotG&!6iN&n4fsEk8%r+G}?aDO#VeRcS{*;?k;6Pjt0eVTkh`Mym%yDlvqE!t$4bW zwy5bEC3E7+qW0#nuHDS0_t>xs{H;?<0N@D#ds`K-qu<)Lj5d3z^FE_p)p_&_;U>H*cuHGhEJ_ynW*lLoC7b>py8KS*uLfuB=V`{F8mANgH9+;Hkv?%chw z`YtP*QOtPbk-S%>Oo}o#fsL#pvzGsWe4x#>nfzn)rFbe%5vyU%YUaI*W=E(ysZ(dx zA0vrg>z(EOxb)jFy3P+>o~3IcCg8U*IX5%bsThxO6wk5JA@Bu((9@|?A5H7x)lF{Z zPs3(oa#g@RZxWuq-c7=|aRmUw4k{}kMob-wJ68t1W{j5NiVs?<>fsy9)SILY)B;|#Dn0SCbU-IM=y=2{Yg1@vtbj1~}R2nc*a z`3TV+EcpunB<+?*f&L)VFm^4472cW6&>uSdpc#1!-PJdSDVGlK_BdOPg^NQ{>gG`F zy{@&fcvu#N7Mb}g@cc_V>XLMEl*(I0Z#eM=9ouc(g(LC;2`f$&(v6ZVc1_}CVp$?} zoGbWflFsNr`D<5vg>!WKlt)!mJ;KAZL!S2MA<|W=48uE7osGnlH>$xJ1y{j+$nur^ zEUpngmuOV8#Q>RHDrwOKloN8{L2Ch zuQ?L7o@O%nNFNa(O=ud8dt-Z^UZGrg5q^x$a#^0fLj>his5N^KYsmAF_$tZK23QdZ zRHz0Kxy!JgtoTQ(X?WX*qs7XHn!|ugA*kBa-)L_44coaz1P?vdPZz0T&QKgV!merH1iazO%|QsYhYUehP4p z`F-pHo9*wRv@9Bnap9eV6|ja?EtYR64E`oMAR15?){$RiC!`J!g;FA*n0>vu_#EVU%zpDV<=otV(GM^45Y%3MVb$OL_!g*1arY^qLG`hoBy# zkYn<0SZi+U?g}Fl0dcm1fIUXSxAdAl!{stJE7nv;Ef1Y|(XeOeCdRmJqFMhNLGE6W zQ;z&v4+%r(y; z+90CH%}>O#6EM64MHY`>aUzD=f>GIwM8)R&dh}D|9Ze1c?oW5btGCW3S!gc8nR9fQ zq-p|xC`>;5)e!S$nKNP5G7>W4;NVQJLq>g7fu)Vh@fZXn#AoXc2yw3G^ZtheFhB^dQU5dnrCGo)=Oy5yfIE52}>6O>EMkHc4K4LW2a@N<0N3 zN-eU?{oo+_T-RDSP7@JmKlzAFI?()DgzBVD81ZA}FmT1I@C(8@dMf-P!V&KplOyWB za$`-J#d0lRs*h76%`ll|%N-*D8a9b!&d@4(4ya@)nrXkp&5n~UbWQX!uz;p>#^gk= z3$Jlshio$nB;|VQqyw>E+<@3Ty;YR&bAE|l#T%;^X$~$lC84yZ^Te2BHejCrk5*z8Ljci2{Id*NWR-8w=r9ODAsns0b$F#ME}QCgL5FM71^9q}YPi${ ztQY2CjYwOo9$Gv!M4g#L*s~l(-MCgUD&I-jp&+&`r5V&aT2@|9HciO;Z~=AP(o0pl z`x1xK&K2_4Tp;5E^VoPK&XGEXH*?7fl-r~OS%Eua3vR@Ws`!ThV+s)KN=_4#9#CZC z7*$X7g*iec*F?7@DW{J%&E*y1RzkT;tOmE@;mc{|G1)Dw?L&*4|mvrqCOPHgW4PD*~StAz)Q5dAIHdy}p6R?hON`%Ln`E(fn)x2aFoGWqBoLhOhXIAB+kgmA_rv**0 zs~Hq`JW}|q|6y)j&}Sy=*53NoegAyJ|@BVJ*QUhn_us^JVF95YuJ$D$SYV`j&`QA5SJp zHg3K1eu(-1HLu<|H}LD;Hs+p(Q3s8}E*P(KKIqlvwBcsXMMJ+yl~qZFu#S9xz|e>q zDy0w#$Q4ectU0hV!}pIA(1<5s$n$AuuoU-$uA+0Tw8Tf}tI(1RpH*M5sk?nS)z;)q z^a|XWs~&N+u^Gjeg`SLEwslG8Qo71CE}6`+gnXGz7)qyVJ*1w~%H*Yu0|=Qjcq-lW z+&}V)BNs;N-23SV$sY@YJssK^iM&C|B=pCQn|~Pu7e|?XZ2j@KZhz!`dtt4?vislM zjJq^H{$ZKv-Q%3DsHfp{kMX;E#mBRiXKPh|t(_};KWaGj&g0a_D;@~1jU76*|Bu?; z2exNq=O0{hc-7AX3xmV=d+t8I{ks41A)CUfh9oIT{U_p_hqm-eABG|>w3@v~KXDFdaQA$F$pxA&B3kWJUjOd>rWFUYA z=~lo{f>M+&5fCuUyLmpnUxrIZ5Ms_b_ugx*-#S`-@t;jq>lo4LrO{)XZOj9%adYk( zXKuax^z7m@o9IqwIxT=Pbb%`X)7)`u4@^3YGjq) z4;H8EQu=#)ie-%1uOkQJi!~QVzRTLA)>xOmCOqjv_0qL#sO=VI?!lSnp7AYu^%-y1 zz6+n;wA#*f^sbdn^rn|1KQq?oYnH!jr z6IB|uE6}>^!}2c2G2@ThNwJc43e~kk>)4EQlYK>`gT||`^?u`bp*eMb=Q!8sX{W{% zLE~vqZ9?90(Lf3Mmfjiw70IJWt%)7DfDP}EuL(Tki}WDHYL4%V%uqEg&ql{ZJ>5Vg z@8+ZH?tVhWlw>d+h3nB$n9$q=rQhzs6}lcp;64*_749)c)?kOE$#NsO8OIGTIw-B^ z(cVbhEGrkHU*RrS5xD;1WFo9S9Nl>e_?sjq*syTzFh@5~KZy2Gih$5t2n=MMN7>qJ zsNEcf4WTZ8+-*f>-LanoQm9Q`?7Pqab$#4Ds1x(ei>~-LS2W9=?1r9Xn--*Qe4u(9 z-3jb+!}XPC*fx!HarTasB5UAOjpTW;&4S9I7~Z6ip<+%5gHG_#g~-4}!tFwtt!q(C zRcNQ82;dVcBe%^7dpi4}z}^WmfWyQmr(Z*P)U*p&CE@lI$- zT-^xINIL_}lvro(%s^fToXuZq*yn`%gqw-hxavY6u1v-atk7m(=njvKcXfj>@|)Bg z_PWkv-|>guq*^$_B-TxH%~4@|D5cGC4Z4e!xE2%XR>`LlG``HTl3Sg}-h(B4#JdD= zb{eDQ{yX0ZCJ8R#!O-p*UTyAWu$@q6F6FNCJT@O}V(Kbg0%Z8lm)EBrm~ z8K`LsUB5qB;peH?GW&e{?-y48IQ;bGP4j{)D`uI6-);1t+7!-?{b-)MdxC28(?VsP zr{OKRdnzw3O#g?jXy?CORX_eV;F>$T&!MJKsn5HrWzWO6Ma~8Kl-$>U%iJ8_&pK`E zUUcN%p3OIB++Y2Z2%ofd{=?*vuik^+zl!Xp<7W$B-;eyJkTUW(Ed*XvhEy@<+OJ&O z|LLS{<)k-Ru{Ma!!Fn|&4I^lccSaQ(FidhuIYFbWo`Eic`=bHOS8f8Nn9$BzlE&fM zVVt(xDA*U(vAuu{f$bdhU7ukQ28bm?;Bjx%_`)~bFddCZ15c@u(GHcRYM-JJ|M z-7J>X*xygdT5$8*nL+b`8#e$lKDfRiJV@U6GcfDY1&*O9JG37vm&RA8PY(mshX#MX z!42$V2bfmo-k@bwNZ8PU656Zxg0R0+G!s~=DCiDX9fcB^QHl!8 zs-LKZ!EhlSme~6y&lC|3TridM6#EjPg++5L3HzWiN{~s^MmZD}D9i?RQFPZxJe_=M zK@E)&fQ5%w^IAQajyX5-8_3xoAc`-5v?5z0xEvsq44bTIQG4VNQQ29>1vb8B(FBX+ zxkJKqdncqC92aoOR@M3O@1bt=>w-LpV%hn}#P%|#V;m$xqBNgj{gqKRm!xPVY-PrX zTB5vOq+J)3EEd%_*HO(UQoj=VrO;DMDJms-sJ2heh|Xo8YnOxYnO}i=4ttVdh|EA$ zu;@$doH2M$qI+P4G5c%b&^G~wZ=O`F4qF+b7cjmc10+1d`I=egsnj2+K649=j&a22Fj zGuzHO8haAkU4T4f?$F#c^BIh@fdh(?sc4WFe;_{yX4HQqX*Y_o;W7ypSQ%yPsio9aKvbKeEvi(Mv}BU~9kD8WS~!e{)*SE`6vV{Bi{Lyo6Er~pT^IaC9rDnh zzN-Sx=>=5x=xE-%x)D)WMFzHux~qfwu-uPs$=eCoh-|~_ZS&l0{C}_$c*xCl)sHs@ z_C^I?SGWde?%hB-+)hd~`VT07DW2DTkjAP7J`CBt%6X{7g=2BC7BEZBIwQChygWe$ zeGR1-mz`k}IFuUr#m>cL z#N~!`f}C5U@$(UW?dhjDs4*ax$e?d!r*$N5m0|iDuI3cpc;s;x0xoB6^cOl3_aZ2e z!XF01G*8Ax+r>Vm;3WX_N*9fd?h?WC8U_U7jjXe64nlcqn8Kd*i_pz?4wu8jOH$Tl z7}c)aIrH`mQSv_{8@=28yq?TvBak#Ruk`(tX$Jy_xzmg4JwjeA>Dp>>Zozvx6&NRXDxDShCq(Xv-ZfQ_Y)gP-@TBAl{xQ6VsghLoP6@>z=E5^p42U>@ONapaup%36~AR}F?TZa^hCbnlo9 zDu|DDxel0~jeL$=A&NT!{W%8~w5&9k(-y35PAVqlU!jHrYU1XKdgX%31M~-o&F_gH zW&!fOMb{lR?aseU}ac*EYCIKSOz240lgo>FVr@ zH@+?Wx$;uv92Xn2G64Ii9|jO}GJn)ks7blvn z+9SxoJjQV5qf-32D=05c2KIU&@M zLNP~_iG{5J{_Namq%u(f=`YAk!6L1mOHdRC0VGF;z~+2e3~FAO7-8@FWz2p3z$r3< zr|FYA;;)68PlK?GEe9J^b`O)cM%8W1|Gcpv@!s*Un*LYk)Q^12tcA;M{FdG1bM5C( z{zI3qYu(#s9ck43Zq@m%P4Dl-&wQqx{_$qEb=Lgl{H*reH*Mc5-2qAK1V-~Abv~uX z&R$UYWxZ?Ir81*QOfo>@|{EDK$yhwYJ{rpEHQvWJLHJX8QP^l9T0^< zx3hNr*g}G(B$my+Ld(`L>4xAGap!fk0cl+m^E6(A*?Y}-2AhK`M#}B8 zg;g($Jh&UW*vqzApHGp5Ow7RQ)Xf7pRUFLJL0uFCfBsPyZN^R7&{&R94A;DgHOID5*y zb~=oKxA2$Wa~l9Dm7ssDRiqh{^@?pH%tQLW`9^pUKN6TukGpVfl*kY0L{Mj~VPlNB z+$(_OA3Zr)jYRE$|G>T3t78Qzk1_mHntx+v2SG^Yej>iZc8g#Ezv+Z=H`KKz*h`^j zy-M1v+(12%#GRUfX>{DWb%8QWh6@I{YM07^vaw1kf|!vemkjDK>!YW=|JncBSgB#=GbIy|HR2x8EU!DfFaQdCE~Gchny+VzAT5q zb91Ojdwa`*%oVHgV%5?kJ|Bwb?#sYNbWGjhqy-i_>N)Tii zm6s#~)KWN(R%R9ISS1MG5bHCP9ggyRqKpKcoLykoPiTje`<3^`k=|OlRnm%aZ`M** zD*!%cYd0@L{kQ~ha7@Lr0-z>a04a?p8MYgt+=&M=j<^ikLpd4%%U0xWS_R$lsEv)y z@B+G2C|?26{vN1_m{l|(v=TUk=!$%|#m?#E=n`H(##%r>UI!GYC{(CGIby+iu4OtA zMgRkp#et7#)9*3kNE_0H>2th^1pyQ`$R&x=0D=JGOhRH(sE=B}OA1F9BS4RokAk?Ng#iA8}!&F45`2oWr)6A0( zY9#_q1KF_Z!4PPmDM&zCC(N9gvFunTBsm@~J>m=L>jts|SH&b?wKbT>$T4%=LYAgFc2P0o_r3g0t%@d2(y#H#Dz*(xLFJ{HjvLovQ#Z22!SA! zKG3nbvGXeOu+mi&O@#uWgt@5mYt0XEnK3P4RE^7X2R_3=G${g_QZl#1vv_l7L$n2#i1TZjRoVn66ts32>chLM*lxPz)e{B|-swg1nx{ zvNOt{yO&4>6CYi!rZGyXyJ5}C^j2@hp0y^~NDuwy87I+&Km)|YI^?XYyej9pDl>Y7 zhYGOlVgjv4+JS2^IA@TU+{NNZ9hiIiaJgqka-CYFP^Z4&QDTG1-IuEEw(!$WLE&qr zOyXG2*M$0IjFKQi>7viDVIo{mfvp~g-hmSA8#K)mJ}pw9KFpoLopd-|z52uAY_k~* z8b}{rfrA`2iJzPx{s^KhGdN!5FgK0wC$5zvwBvw4Iu67oPbl=8gbKNZ;<8?@#SG8U zU|kn`1rNx8h)~Fclk6n6l%TjENW}5=s{5XjX0Vz3KAd(OdyP@n1bKk7Iz|#uN&-qn z6%-s$m|x1@6RjjrYflt}%k46&PR%rjb@CX2B7%I%)>LT80I#bTA4`PM9veg|F%oDc zy2hpvqmAI3chL z800jUDuJt=R_K=RBWkJS{1KU?QXY}28+G6RQX3me;|+q_Xo2p@OIk=lZE`UnhG`lv z#^|~b(}mWpHZm}{F%Y-?5xlHiSb8HJ!<&Q+DvCl0l@a}azzC$n#JCi=84=-)3r<_O z?akOHNDR(+_Mb8eo!8qD;~2!7Yhclt%aXHmRT_Q?_=MgzIpf)C z(XI)+vHvVjRBj@_yC%wwyu`0q34aZG5IiGlc|+Vkbe-pBMu>vJG&-PEAu~&YCGI3P zaL&~BnrM@2XOu;7DZ?ruuN1Mq$;;VP9cUQV7%PQq0too4HJ%}5$`}!PJ|HD+?EL^x|IA}9z{M1ujhgrb^>cFO$GPOQ zvOFtLvvq88Jv19Ns$h=_6%J+N94VrG&{`m&13qxkEpeINdbOH!S2ed6fAs=n%CkVa z$9}PZMe;6XDDYl2Bdq#MC=uxoff0_)bAcX>2N~%3%BDp~p^t1l2BlOmLY5*X zl^G~w_6&mE;+IGyjZZ4$B5eLZT&4r|(e$rk-iKNgA**d_8 zFwU7^F_fN86b0YcHZ!o23l1BMY_44y*$I&i<0AGv@W z##XePFiv6tp*OO6Ede0x%hOGv39vK94;2QdPbX!?wH@cZy4)cmQl?lcF^|*ij9YB^ z*u^m28t@!E07y{0gXR)c2z^SH}X~2-&N2D4AK`2l((A=~dmzrVn zRl!&$#zw@X8un6Gv(OF|k2gs{sToXYYVJ8>e6|+Tt(IkteOe?KPVO#Hi42yZp8mcV zf`Tgan!pWJP>mdB1%yN5At*M6dIPk`_(DO-`0=n6FY<Dci$DkJo4OQD*1AcV&Bkee>cIrOR~gEU?ncz#Kz&Nk-Za|d4~t^LPhcVbZC;|=4< zU4^2*sGF$nX1~qRf?xmsd}ZSGyAJa?Ik2bp0xtPwPt;yTdTAy>Aq{IQJ$X6= z(u_j_2mS1$l>Etyf)R%2L2Kn-P!@0F7|jq0INr|8ci`S<&&Zv57v{0O)_3o zn9siadBMXe^x?8IJ%j}5R=4YA>sGAFNAH6Nu+%qZ*8-+4{&PF&!1hc1gd}R`o;`bG zYVz;3y!f2b>$IEwhn^hl(Z%NL4NYahjvnI08E!qyqRVQy*8X8~Rab-)umx;lV z&j(gNTcdwG^5sy`?0jB@=HeT%(@Q^OH|=m8Et+j>Z4SSF>wnp5d-4YqzO0BE+M~Za zv;g+-$AGWrKm0H`gcnJnn9?|rA^8EWw z6U9Z3Wjm)V66ZGG_PTu5xBbeF#TPbuspKWR&yZeWIDMa;=ZVAJTlT-MrEmUF2LT2@;W`dk<@We3pi`L2y>(c(1&0AFV zqSawY=sMzfGW^Q-#iW-?9RvR%Qur*jyMWViZR|hv;rhziqUe7W&s@0G`5zilPAUIY zIIhTu3K{ELK^pPw)ph6r_%qBuSa{Vf#DXMpW<0+I%>soV+=JQexQRzy;3oDK#b7U0P4FAVCn zI#yMIo%D5p6C5TCot4Bx>|q;aLGFyav_ue4imt1B^A%HP?fc8ViWbUw&8q4ofK}iP zLVaNQBQAm&vVZYuzOZ!^pD8IiVVN-8v1YG^31IggcPuLZ*T?!9Qhk!GUHOp$3hVs< zb1qbikIC(E9?6|j(=LSmuNhlDE=Dv3Q*r$-$qb^LW@|nY^Ql?_u+^OKQxwTf1*cbe z?1IItG`ZW&C~Fwbi7Q*9H2$ibt9}xO5A1;a%0MsvXrz~XV+-u%;$c8>?`f_hs?~~c z^N(!D;|fLSx`7nHj0ZY}27*1Y^AEYtyai3j9xpWv{z`aq z!xYn=D=Pm%2!%ng1vX>m9R?md{)T~=jyp3~T{6$b0OFd21)7QBZm_>Aa&#iWNL<0k zWI*6S!E2E83b4e?UuD?j=!To)Q@;^lw#xN^*L2~*uaG?guUk@RCG#o*_wM4Q52`OJ+%3#Dbc1>vs znE*47w^>`l1~H4!WC~B;?qW1|z?ojLwoNY5d5Ejf9_3*XnUFp=m5?%0E+RJl9EJUs zW8^IWq@cxjPMa5M|8sWZ@eQ92rf*qc6@FTIsogaLgB*79TY%l~*dvfnc|M*_J#Yll z-s7@m-yA=kS_)4q}Q zF%{5`HkLO=4#Dj0A@}zTOHJGp4zgUb+E89OTdA`YU5Pp0MShqAhQK*cIz6BA(aQfp zgT!=V&smYXVJQk9=|to|i(i4K9yjS=ge~A63G_MnJ1(0MI6li8=?3hTNqMlTLG9Wg62a zr({Mn$allXHa+sH1W@d*~8y>bw|7jTk_fJ?$9PNd(L z_B*hpw!yj)WZJ8)ZOTtqXJ=~YB3Dquz=jC4ScqEgvocHIqJW7SV3)8oWB3U0hJLVf zH`N!?Q69(>;ZXT0akrLWbp2W0%ORc%fP!L049Iuda3Fi;@;V#?HY~0koTu&!6xM|Z zkhNs$9S4GH6n|4QDRlI4agZu|`sNc2@K3eKTPjq{4TLBY_&teF!u2Sijo=$7hsVZ< z5DO?mEB$|uX4KMdv|x~(GiJex3Hq$YQBN=EK+pojmYaZ5Ea8`09Uv>tVgcm7T0kg4 z{N2t2Qu!JQ&qh_>%K-wWM6Tbg7T?|n656OVC0D~dmJKei>EjScngoo{+6aI^nkPW= z6#x&%x*okHw#bX865EfBPmsATu$_!DU<9>u!NsSTdp3~u-AsX&iLcSIL^schc+E!EB+ z!gTE%rO#rzYj-6F7&}d}Twoo-qUZM6E-yB=FncGr#y!lf@0}mFO&4K{-jp$9?5VIM zYtg>NuQDvUK)g5bZn6?!ly71bTQ205bPqvBxlY#|i+)6wR?`vVub+-lgvwY+z$`B- z@&USW6a9k6Q-6}LJfsz_$lj6v#~#o7XOFF&Sz`Ocj_%@zXeB= zDrXm!L~^SBSv|K=vw7V821vS|pEv`{Ji4QmzQ_IZ%X(*gi)>7$^OHWUH4*3c^Vnd> zjP%r#_l}-QhmPL+xn*8wD)CfJh=;8p`Io^Qt=4A4{2b%c{LP4@kqO{Eb~6X9SsHN? zv&8mFw#qOL*XwF6n&LgFMb6?PC@%)DfsPgL-P7$nYu<3@Q^g$7NFW6Q%<8-yE%%-| zODqG=IMnY}9)PFlc`|Vu?gcZy+~2@63MfX&zn&|~Jui>T@OVVwMZjBU8a-Z8*^j2W zOTkggw)hZ5QT{Oj;#+q=K7&GrQYhG>jgn2?JXHWXP(tceV@A*frYMmcAr1g*Yzpgd zLv;9ia=%1olQK2NkV;S|-E3c!{AZj-3HY5oIR=cwBEU2=(KgDHxbc{03!gp>n#KUs zbq1=pO!qC_DeiB~d~t9S|C z{E9ib%=7C%fIX!dt{{7^@(*mA3Gg)P!CT>kSW{lK%<+w#P!t&g5^!!<#keJxXbP_& zL_AJKj1lX80(C3`m_N2G;1=2ltD>uTAQxbK9U2^5z;O-HOfYvd{B;T;b65(XDu|{x zz=vEaqz={X3J}=V4X=qRK*q&4N9~H`5FiczEe+@b@?}G#T=dM7#G-kyRqOptZUbHK zC5Yi8IrhU4{L$ks_H5@3PvDGYEp4k`;BLGnT799%2(VgvHB~Es@Y-3k| zf^Vi&03RQJ863@?VtYa?lZ)E@B09mOHYaM2t4-|bTu|?(6Z)X{H>c+Zu1}DGzDY-= za?nY40rhY)tlnMX z+7Ox1T_UmWVxdVE3h9LHODLpj!7vXVMnPvSD8dV z@`45{ebSSoRN2f|kW<+46--BS#-FIx)`KXi9ln6cSFW*rc>g`~fV9m;mBFTfk2}s| zypA+ow7uNA99M2$4WM<+6p3pWRfFfa-g)=>b0^i-8Q*66y}EE%+x9%YyMDFDqs;fp zvS{L?TXvaOw0F~%ZLSOMyJ52J#=P=HSqSmvY*=;Nqxtmjl@+PN*-a4r-W2&CYJX*9 z*7M=`=EchetqZ?0wEcW8xTSlTFH5b7ziTHAh@XQ}nB7$LsyJ$i>y-#V-V?HF$>vKL zr`_t3!h{UdT!(EA;$FfJ{H(nU;R+aP<7}`JJ!wF8;4=#?-MF;R9y$u2>KFn9`73?L zUd8L%MWO34X*t+BJaBL`NW`}yGu~zXGeo;43dP~j5~$e8K>xDBgxW1YCswQHMZ>dj zWdp=$N8vf;!NtQf9`1G#9k7v_iiSe4e+kY0Mp<1nfH<)Y^g2N+OPmBJRE4#uaBo6C zqvSd}pfXTwj{T*)GlOPfiZWuE73bbAswl;qT#?{nSz&Ep!7l}pVZaM{)q1uu8z-*M z(CJttcu%|Bf-~6po@jHPEasTFlI1@I38@f)9TY15a zV;tDyx}uYh*)4Br(|bXhbcs?jZg%t7tn)z2$|U_iezDe6TCI_=v+{`P$a6U6Q=@l; zME^wv`V!kw=?az7vEP%x28w+WM}Cwuxf8Q-GYnUW?GbHGT2_&lbaV+{w=-wD;rs5X zgxslji9~^*aS!PCYmRo8F?(V`(~vkeV*593?B>`AZ_++AsC7ZdB&Ulc=q|&YKd(0n z#0P&wtIY!N{(ILAFKiqs$xha}d9l+DnCr6OcKBun)6m_Np=qw~aD^%5+@Lf;T=o;g zLH8S@v%#d1W8gg*%_Z?1PQyg=K*w-C7w8fmf>H87d6b4i1q$dS@pPSMxvP9a@~Ety zko>(tT@1x(2f7&H;XDFGgURCP#8p0>sYB$Hk*r{x|2BnB>5{3q^xQA;8RVF&yQDnk zNuSthx#7x#xT#pMM)#`n6YNyyH$`KiRF`8_6_H+R997Qi-7S$Dth>APBG)~?@MY5u z?Ofl>^@mU0yXKk{^z1j9b-3YMquX!IH*a2_aLg)f-KB;W&OUmGy85j=WgUYFi?K~U zctbA;_{A4%H#$PdEm#85ocW35$L~E9@0IVdxAh zIlO`(o~33fSpN`pW(!k!K@L4FQoy7Hm=DW~R7lnj#5J2t$^9~@YqV2;dea(Z=OjrTbS?j6i zu;C@QdGZN^fKL&O$w3`zH3+&{SCO?S7VQD^<+}#NN+`kKxoU#cI;XK6^<%_re#KfM zUnB=EC6hwKK(TeM3WB5a-A@dt9fp{j{hkIuKy=YsYtb^Thw!W{NyImUJ!mOo26L&0 zPy>(!)5W5~vj-BvE)d#Tn2{N|XW)y>9&H*clTEWV1z=5oSu@k_{`$`GS^qg!$ z*$~$jjKB0U_zybeDX6KXGJE0;r|~C4xnv!d%Iq|r7texxw+1UC*L#`IfRyJH?Kv;f z^DIy35uxo$5FIR;u@^nQ_ti_zxEu<$w;q}}2{qyHdW7T3ZTV*2L*0CZ+`Qg0%ypuR zoL-JnM)+r|>;ts@XYBV;W(Z+mV(rDX-Fp&5I0?C)lzG;dW8z$bbnS}S$i(zkNIGX) z<;od@x7*cY??mThLXlRR%*T2ZPGHmX+yd|4RPhN9R<_Q!#PJJ$TiXQ2x6Zi;Y{%b^ zh*x9@x2ppCI7?0omjw4kX;^c?GE?Qnu?z%qHY&E4b`Wjttt=Okqc#4!%xVg01$51l z=lgC39Do#k5Hu=hekT;J_Nz4vHg#uxA|w_t3`=;fst6W0(Fu2g+7j=XW3IqWuA>^CZOi(X&(OlwN8gRvn0K5Un?g3D2B($#pSc1VT zf`t!~aYKpqF<3+-7m8*Rr7|`szL6fpH=z7dSs_7iK>&yt&4hx~8wy!p6w3rshE1;A z>`kIki#)_&eMr15$(}>gUSVXwvk{0|Bbk9D|C0+ ze9kq3_YgJ$1sF1J82Ck?ofIl~x9+GV92e#I{&jYa3s!LtpkwvoS##!qHICy$f8_MS zAK%#G#ldm!9Gb@5eWS5{a$DeZFkz>O0mTPv(8;D>F{T4^=Q*n2+OTE_zlf%0*x1&FMXke0NZxCK#Z7fba3tCbk+*N37QwKN z7)DtM*3I2Sb`}Xv(ocZ$msi6P>ZA5z1TGxd3WJ2?FpMIUz=1_hl~M!_ z2C5Oiy!k1MoIQiRo5h~LAzngzhs$K5o8A@&a^^rTn?}mGuu`?=B3*YDAWD!@6g);g z@IjN)7LNh{?Gce?Bo<93PKJSDf>^{9;rtD_R7fi;Z&K<4lVXMr>;A#SBbVs=Tjb~r zD`=9%nS%C*(79~H_MlHXQDb;g2o%G55+MQ>qWLV=-t|9pjSC)j-=+Kvmh*TFH?85{ zUi11>3~4z68T8OLwZU_p!--v{Z}AvmkROy&Y1S6AEC z2P>=uqSf+!3szQ$p@yTgGD-aq7o71WuQ(RLm50Zfe?}zsJ-IGHyohdKssv3yy)XO< z&|{y3@CvP!IqEgJy~*BGBEip#~|qJISUVO%e^(7E_0uOIG&r8-v?K&zGF<&i-U2#8>q7+jc^ z)eg$WTm4|26ZP`_tf3dYgliXjPE0~U-N^lQAInytnVsYHf;qMGl5 z1)W=Wi7eN7MC1ZwW&G)SK1rhv6n`f6a&B}sA=fh{%>cME3r21x%73m3-O`?MZNS1r zF+~IzYG|g6MVgcbrO0Fi;4B`^yR)wF$hlLFD*Ib2@Z&(X=GtgMS4grqTX`SliDPo0%9ky58jnX3L8 zz};)SW+N(Oyw>7_SRc?&)~LwfbVGL9U>_ZqMnJ0$ad$t5rJN@zK;6c0i|4jwkAK_y z`F?>P{?0awAdTX_PEsdbXuav>Pe@KnPv7k`G&sDM{d8-A+n<~NTo?U--Ni}qUe3`X zFZ=zkjlW%3^%8&X=@v{|t z-yoe9g02;M)Ifk7MorRf+2ciDs^{{x@|^nsdZYb1?z`5I(~Xi{gsu47QBJp4m2{); zo0VC{3ehjzAMWozsU7~-+j+57X!M5*-c=Wueeu$6Q+ZQ)c%=G{OYEwZ`xSq!>A!Gj zFjFz#Udxl5M>DP;)4sFWC?~~aON83%<~345M8RF=DUB^Bdhj&|eX_3l3Bu)1t6AJ% zv98kgFbx+K`-|aue5t#Q?Pc+j=);ST9JLCF@_rF=y8nz^&9cAqG>W@yqb<+7|827N z_~(}^?ShZod_1lqvR=Dc@y!G^@22e~Wi6db>+7B75#cIH`UK6z$qGMQ;#*e4EX#Ya z?8f`F?^|}R`P_O#ztt_oSoQ{YE$_6s?IrhQ=5-mdC~AWs(OEi&?Q2+xO_|yt z?p(5AIc3csjd@`tr&}KswuG3kdD%CZs_?zTSf%)x_v1fCC)T^QRIJL0zo55emHqmLV?J`PyVmQ66Pu4d z+AcG`tG=;pjabRi!!6UBD5M^rI^A;!o|OcOTEMv95U0a8PQvt%`W|f+e|KweFDbUw+5>l7f?L z{F=%vzeOJkH}_kdwduj^#U<@*|JA~M3I2sqGkzLhbZ*ksU%NQnJ?(zN==}EENAEqk zrOR-0+VE{9srqNN`G~gYu}pRS-+pQTd|__!f9AKBI%|;=yQ|G)Llvj(FSYL`9qIa1 zbM4rh4>o*1lFj(`=+@lf&!pO0+ugP0+b;df%QSzd?9?j5{dQmRt=+c!*OnxnObEQ3 z{!0IUlY4b(%L(O^PA8iFtn<`!HfrB0E^*dew%vloPrcBi>vG#m<&9ju;`{2JOR-FT zrMSo0_E6u~pP!FD_pS5tIJdZcXI02 zYrS!IR$EkfO~L+f@Z$8@ns>g=YbS%W^ej^9)nDH5SBa|NHJ^L+J;pgZ`%3tqS{5EA zl$v?%r4^5M{n&AO#fyLsiF-ibzQBAT-&hMHzi*BE@z%+`^ zK!T}ClV8Db`twxF6`zaS-0=<;R*e; z%ocKBR=1F5+p=0w5XjXoO|;C9Xfg9HMebW`q4Mb_JjRfjTQ@0Dk}i1`NURSO;b5YI zGQv6YY9)ofaC>Rl*LQT=Y=ARXMq<7EY?KvfZi)roi5Ryra9{=iJN8)1 z;&k;4Fm~JI_q^oSua>7~0XL&a00xBSb@6OBvLn9nFh1l}3w99+caUzYF)N9E1TFg^D4i;u8D~ z-5P)u0=a(w*LXex3Wj$H9niIz^}LZXSx$05skH=Dxc*P_;;{-195AnhLN3h0**bqu zjt~S_{}QsO+0t_V-(zw^LI0R2MRuRCCs2VL&>7D}gzZ))M8WG?uobymBBDiyoaIba z^i6qjdN_iBcv2*b+5}bW)1Dm7FQn04q$zM2#Mi683P3zTr}}UgsQm)x6=zsTxOOs{ zbu#XLNy3H?o{DckdxPwcCU43I@HX$%y)_bqt)WOMcmjhM!MwY}>9|_QxEAXiOTcjU zpYbV?=$BbRyjb)sKRnub+&#jj4p}h5eFHNH+qU<>g!Gn+pB$@NQ8x69=vQHrd(peh+;a$-#i^6ZVhUtSM;LjDS+6y{e?7lt z;kfk37V2?}KTp(e>~pz1cS(C?!N-g^|5-Q=KED)o*V{2Aj(TLd$(ECQeYZSbVi5DvVH%=@+pu9FC4D46#(qXZD+X|q7uspl&K-!Y za^DUy?)nTR`%r=)_WLIlPs!bZ7?!JI?6hNsajiGgY({Uj!RD=Gh|g-rGfg4ZL?ARD zWG`x!rs;def#q80#(fQ>z}PmzNO@q7^&_O+!op-Cmf4D|1b2M$uP>!^2um|V zoMktFq;3W{qORCnT(X#(dP%#pHI5t737Gp_XhHO%HEPU**d+ux?h=21?rs9yomY*; z2wLT5`cl8)v^luw&dFqGV#UE)5KjE2*xClFr4OIfmj(`3)N{0&^$Fl48`T%6elJIIpDmO$ zjg&&DjFJYmB;v|CS_Wnt%!Igzcwgs;NN!dF_<)C5+^x?bjbBurp*IH2z;+gNP(ZRt zS%-h(?=;d(l`2Nvp;WIvKp$dMV`&!99k6ekc{B^XNH+JbRiW@#FK^!m@ZZlB;2D-1 zE*pPP{$&cY~#cZg6L&`e>GkUSe zPTI-`hN+p7kVb8HL`rUzLWuRwk*pv1Rc268-)(^MYhsK$`|!4Xi{3ag%0pNUse`?P$d*knW{G`Q+`fbqpTwY6W)8_jK|KD)JeNi0e1d#SsnGAh)r z>csJD27^hu^UJ;eLyKa(Z^u)VyW*zj&yKNcI*zNst@Q1IX~z?ZDCtvaEBVz4Fo-Jo@O%}6)^~_66{#$aZm+Fp22^e=i6I+%Mc8F}b z53h6JPJ>Kxp?eJyS^5K9%({q359uJjX+YVDy;SBiE(Od;JQT-PS#e_->rUMwb!A_l zUZKugV2Gtrl%Wrcej<1QX2w@rc^E(v-chbfLeZLSdnTT12KQ-+ux1WLZY$KstXQ5R z%VULMzW!};lufQowH3?zspjBJgC1Wn7SwYL#)zMAmiZ;Nxg>*NoR#2sRaQicZrR*T z0(3=6Zdl{;hZIJj#HN|KD!tXSVKvmD?2Y6q55i%9=M{w;&a^_ns6zuBQ;$c`pcjDu zsJcl-MB_CE8@0#-;gdAk@mG9TH*g%1?D3sG~JZ zGgu%|7SkG`aW0qZW{LF^C%JO|YK;u8U%(5(oI8rJU>~?hxl;Y8y|&Ek;%JtA)@{QDZOx@jC`8$pxpJxO&jrMT$b) zY_gjQNgYR)BNnOysw>Ji(g9ek9J>S1A_+O}Krste5y<9-n~swiCU}i((W1?8+T!|tc~4P@ z^AO0`2xeiskL2t=y)}=oV%^GxIHZ$dGf7IA z7sc;zTc9}z>WDViS)64@f8pz^dihR7ieYnXWM@gDbv;gVSU=M$td3ocI5E-gb-IkfGCm7{G0kR{;vLiXdoco zKW!y{k*Ng#$u@*!H0j+h7eq{u|$id5)P%27In&&5EElbjwMSA8p|kKS+g(E@AkcZf1c}H z!gyw$&vW1J_voZ4U4F*Tb}Yiaf~VvlzER>-Kos129KFEuTzE2anYv7S-NQI$q_aiNqrJ4dx^=ujv?g)jUtdTx`u#h_23Egwq zRmwFW5Qe`JS4pp6A`86%O&@K0Cn2R&elX-cW;%)FM5Qf&HZiI!^jW4cA?XoZxWd+( zDuyQH>_y1r!GeA;MlpmPIF7_6LPJ8ab#4Gi+C}Sf+!#ZYvfG%!TxeS6} z9-t2#s@3ImQ7=IW0r$EF@|G6kj{}nK( zE&%sh&LoXx^$N5|Z;~PQp;5!Xs{^4agKUnv*j={3St%>nNU2A`Spb~2A~c<(uh0`r z=)1@qHK2lLi41aMv#znTOCUmS(M~P6qv5kg1D*4#|OTI?l2&wAm1T-LBC3 zS$y>EbImwgv6dJE81yF72|Wz-t!(Lm$cB0tv=8IQ%U?P=ALXQkoxE`3P(z+UzIsRsQmt*pN+tMP=PP78-~tmaqWa4@S3bzD@63YzL4(qo`R1)8+8|eabT1j0jE+u zeAJwaFHY_~+6kEu(>+e&@=Aw+pH#?{!fHknu#J;dDfZ_^OT%H4Zw*l=kq~nyuC$iL zL4Tbmbb}u2dKRn5|06nRG{k;6c`R!-D5zeLB>cA>dnoYd4;-P2u6lrHU*Rx7pSO15mO6R+fV2+ zMIP%r2T*ot7T*VPZm=VB4JdVS5S@hEdN73GpfbrTL%2hY%%K>HF%NqU0MatL&vxt$ ztq`Z;*ToPde&HykV;(qLcAtr#ic=gLt1%_qUyw;+ICr-=A@UEv02!;({;*(ZuH zzo|&v$P}QabrG*tv75%lJhb5y5kiIhqB3Ap_vnmwOT)DQ8?)8*GIs`U1+%9B`3Glh zI9&{aD~%~YZYogv+g-aEbjSr_oXXr;4`Bo&YN}j-EmW+9`h#(koOK-L64WXJoslv3 zX#V^~Vm%!(d9_NqdXtiLoz>2wsUvO~N7ponoD#`AR|^0XC?C#N%Q(V9xbi6z`T1Q0 z212i+4uFP&sUUg)IpQ}AF2sHj>}w&k|GE9SWP^GiJ}RvMF9W94O`{_!vFX$5Cf%u! zrcM$boMx>wvmFs(I-+F53Zc@B`)3z0uP0(!r$m4`E1(=-qpyEHCzmv@S}lfD{B!Bq7J}_ zC|vr*^ekum;mokf^${TI2EW~pPnw_sP6bwV6&J-@NENm?S(hyoWEf3WH#TsRwYFBd z=Fi0z^jHNg?c``*6_x+8-H$gm6Ly;b72e>YxZvBQ3?waNei{BG3rris@YP$PTKE@I ziV5>KDkeZc+z?h*(n!=s4~(+a+m1j(p2ZrL)2M%z?glDe$RYzaKT2j(zuZ^a6hf*`q)R7i77lVMuEcahOvFH+{ z37MqNL{s_-8zFVMELq+x4bicy8MU&_7&D8iLE#FL;UiexK<-`({?1%Xeg$mOgS?3^ z>l?(9LsT>iZC+zDQQ;D>9IhpSFQ%)lYFH#1Oip%MPqdpJLg`B4Yzd@ng^F5Xoyo#8 zWixCv%|~Gj5eWeXg`Y9&i4wN>`@cr0?c zu&D1UCgg?~L0$@-q6Q&{&5z}(h0b9c8=KsLQ6vCW=sJ;fNAn5b(tEdpf&{7P!;NpO zqo1e%9q#+a#_Znm??8cCrt@vo+EaQ$xrXC{0*IjGU>Z~rLPfajCx7a~b;)XwHwj`U zl+wNh28LhZ2itUUNK{LPd?BoH9XdtyyL{;a(Jvv)348FYo{*ncV5T8GDU&}fRuqCP zR_JndGPQR3vEin4J$$>=;VkR^d(pM>`W}nsa1}{H&h;W}yD4K#ts-X%cdA?Z50R~g z1dF9?@Q7VrV7;uPzGBljd{UDH+h)=-WsOV_E$19RCJ@3C3nbe+xjzWUVOOtEVbRX$ z3I#whM`J@Q*8(=Fw=j5A2(#Jg=GVSEECDQ8u%J#_8fTgmEpnCpdc@7^Ttk0~CGD%+ z0nya%AY>w6lh!-S3| zzx97z7kT46=;~`4C%`J##q9Z7tgyZn^gKBF{cq=O5@ow#^9Wpf$o zU0q896k)RZM*_LvGk zU+*RE#r|9kMTe>slo9rk_#D>uZ2%m!Y*eKG;?H&yb#ayq1BjP_R~(bW?J+R=9o`%vD5YAeNh0A<=6eM`{ z0an?Kt)Q<`oEAGcGhj8tBsu9uS~jWfRbG?<20J{qQUN;AOz5oq-WQ zg5Q&i5Uqj$c@ig4UJ(m1kn}2)q!+@}PKA~X)ay6YEuNZ@uZ#EOTLFdI%pS&sIV*gd z@ zxt(P1MCdC}ym?4d8UWl&TnsBD_;kZn3OsbVKz$+94?+K`P>3ZK*c1nk0smz83Wy6z z?=R8V#y^3x(LmhtKwPO)pxMkpeSsODpjcTsMt4wj7@0yxMp+r~t*P6_7X2pCTVBzB zxk3Z-`wIcPB(D#h3iE~6Eak~5)_cCo9y2Oh@Ft1}ftL3&cM4t~Mb8T799=~hU3IS; zt{ea=MRhWx=imupqVzNA4Ll{hwYo}CGkUYvHva{EJ`uk*t@YG#K>~3>i8=|mUW^up|N~2{~()1?6B|Ut{?9GO<&%h zeKDYA7ar?$i>ScP#~Hg_AwgDxRY8&-D`r z9B*trx#5y6D#?4%~|#L*Gy1uNG~~jqQvQ zo&3D@=9)ptBU$hI{yWy47h9yD`uy#U1ew#%Ulv_+SyQB}y!Sse z{Rwt;>)nT*Xy}%WWeb+*Zg=gAG>nV*bNk*$ysbC>4LaF;^OR(G)*X(Wrs|LF)a`dw zO7l}+8tbb~y%T#i_i=3EYou|R`)`!HH{z^%cFG5_ybiyLfuLQ=AC`958twgq}a~2$g^rkGt3i*Se7x?4ry19%nXOrXI|^ZT&6V-{8s-$pQBo$s3`iSCZE6`cS~XFO%E) zxh2wdtwPnUcQe-5a%AFPVnL3(+~Q@&*Ni_nFfR7box4ITsf`ltM?Q!}7bA!z1_xjF`WoML>D(44xZdB`F7>;|7l+$_Wk!Ap`Fr7y&-Iy?IL*V4 zHu+)a`a4V4WWL(mcvZ+d(yMnnUe@u+hA)jq#?LzTKKOoaLDVN%v^!{AL0N14_xFb! zsPDV#yB{3sKC0Qtb0cf@#}D^yn@z9%{*+_uJ79lKOX@-Q-2<8Kr`P872YYo4CRo9b8=-57n9xSaT{Khxz%?He=A^)lvrH@r`&T*($rTjKw5RPp}gBd3H0&E8jg z6n~=|8b_WUekm4imH8m5ph!StHe>IOG}@e1?f%qL50(33+bqYeeD@nQ-?qLL6gQpy zr?@ufvEPfgsxIgYb>F8SY{D5xdB4!gZk@qXbt>C--Y)ijDr)@dI~ zTfPuKC+aag5ndjKm$h`OgO{`O+1Qq)Tuo*2^UKF=TRvD%KKSUUqq%iIrT6FQcix`@ zKEKMJJ$~Se$i~e{JIoC%))sF#@NlLkMf8m~>y*6ga{uz->!F%w-dt5AAAPKtx=EaV z+j?_`l=YCzI=}H_KX06tbKjoXYU-x*yg&3UmbBPxb#)}(Om}+V=A!-3((YRM`~u#W zb=6{5(vI7(3cK>RZddmIBw6RG)jGE~=62=3zr^zEo(Au^A!;dKj>4$i)2E_W{- zQ+#`*^+>COM|76k)$b=NiYM~+zmLrvs@>}%rN61QNzb7>{J7fte|DT3`<$+Ql-8n= z_gX6*&TWONB^}G_J4h<6>U%Z&-rN);-8gegQ{4MRcA43pm+^iH`J2~}|B$=-6?iXF zk}q2-E4UTE3^wdK`Co09>H1jALbog{j{I=H=hoJHk4{!O%!t_4J^HXY(a&7PVz}19GT6V;%%+|goh+%A z*5b7&t{UU8^;Kz$_M@5zP<3x^`26v;UjBn?Z>8;S=&zC6y%J)X`|N4rb~mYu>xQLH zr?gXyKild=GFmmaY|SiqHz*l`Gx(%w{dHO=B2{;vBXdr`GQcF`>>itYmGM+-s%;TV z^0amD04a()6t50Dvs?_&Hi8?pc?vAXjE9g(5A6jrgVDRJc2Mk;W&ixU6^Sv5m%Qb} zH|yQyzo5uQ9a5wjRc^QR~_Bqx~8;q5~e{aQ1WNmhCy56X{7mNH(^~i zM+D+r5TnlP2DB2uB7w6{k`N1wtwrgy!0=~LbJi5rF;Wo?8NsSj+#g0MKr4nL7Swnb zzKX)eKwaDZ6wcyV$IBG0N3qQ}kOQDH;cOeMLQKtKk{bK*SLAA_o?X6rcwTWce50HA z^jgUIO%lM_q|qtU0lty&87|r!zoii49jcA;ob(dr9pwKd_YBe%iwohrD#_Dqt+}y2 zslv402A#8^SpuVvmx_d`T18Me_}M3Z@BVYKCp<+O))CsI#wC^NBy91daCK63JH*)7 z6!v6CMPphkqvo_-*~L%6?wm@pIK>bn4oiJ_<@c2-Bn>WEULvABmun6yxNYw_6B z0sG?3-g0i3^+{n4##Np?!$4+7+16!cmnn&Kf0tpTM4rRiPdW0*=|i}}v~PWjQJ1vL zkCK=jU{}nV1ldiU^oZCl)HWFz)=v7)qzK!cCcmd9%sQ8UBrQV~a>|ow>Iig!kY>&n zFTP6;P^-)InSxx?+!x7X{kh^a?1|U%PZ+#-M?%_zez61&S!`aNF5YV%-@zc12cW{S zcJehyKz=KsC=Wn~8z;MzxweWfsXcE^3305bf-y!`UQFHNmTe_}E|dWe^T1KifRRbbK0V zXtiA}{2|trYUCXwF-YEE%(T2y!Dh!M4ULu$bGF=Q8-*ET8TtBz8pckJPFK3Lr(7Z)x z746t#sp<4IaCdAN5q2_nV((~*y&=GeB>wFA)A^1IEpF>GlxL=Dtt*wzL{k$H0!qz`$vVQF}x775$VZuLGGVh`o zgsb_XbL0FC{g1f(u1mbg#M8=`R_L4SOMOFgLvpetb9kgVZw%WRmnpnaio91;56RdN8${bc6olAuLEAc2=*M-fCTJk0$}w)GGh2 zmC0@9HEjAwFv6lDK9i#_@h`%berc>*8sK+c-~brw20Nv3TQy93{5wf!xs`q&Rn6%g zFjM8D^`tf4Y{gYI28?!TN?NQl&308ON~=~NIze~4zPGG~oC()Q1Rfqz1K*{fwVYmt zwt4V4^RO-&1#@FvwUo^z5=cDA+_Pk;T1krw11t)REv0o} zbM}J!Z7_NW*!2Eb$0Ekz(FT2C&c#|oD`j4pxS(C%D}njJv&<5%N>iID4=`;G6sHVb zgIzg_T$_^RWTpsVa&jtyrRv9LXr718AW^Pa9XYoJvOFeRVc80GFaz%n2`tD6<~U>K zjv5@S=lFX%29K7z+fWdSPaoGsuW^HuR!VXP%d5sSf_7(HIGEko@;bkp3eF71hAZ&iQmm~KKoN1R@Rv%YkaK6kJnCv7sBHxit zA>Q~D61kU#cmW`bZK9&5@#^6nWfM7U$uQtbFS_*;io!m_KlLKn1$>v|le=q4$t&j0 zFZh9+ZX2BJc(Y&^Kd@pUXH5cZn2cBU;A&|?;`9Y*c!Q_Dnb;I;?$apt;4P`xy_J5pZXc>wqq zI4ZO}={(nX!94oXlY7HCnM*oGWuLNLriY-fPS6yPhRK&o zWaapCahK<0h}ldN|M9tq$MD^4cf)B ztF{LY>qIsr<8vb2ia`zPeFbKyZuvMnN{aeenW@bt8_Uq~Q`~a|rH4Y}WfC!Bmio6O z@#*uddJo!QAta1|XY!O-1Y0SWwM=pwL!kEyd5EdS2KOLWc4>|Vc#T4)T)nRz#%oFt zC|hRFc5!Tqt%2Z#g2d{K%ssd36MSI5NxLm8NIkQ(Y!1^m&r?!Dn^lVT*@dc%zS4a- zksN0-uM=liVw;dR`k#~Bvcu^5BL|)i>2=UrdUTe1tIY(ptiSL3EXSym59QC7A6Svy z#998fyl&oRE_Cpb*7wu*vQuPpl5`)LeDad>n_EdbK=$)+6LCwXFJ?w~LIHV>;Fmp#4HhNbR^C1Wj_fG>fC?9?(y$)DHQ3>Q zv06APSFn4^02#NMJ|5xh}6WO=vz;iCIlgX1MAq)c%j_TAa1VSlmJY>)g{mZ zYY%$LD+F8Z8FQvUJ1xYV#&kGE4=#i~uMi9vk&w6}?1~_m*-82+3I)Kj1Ujw(;Rqop z1Yt8yL@32B;5<6jarFU8drZ=@33WdifNC(gDF~~un0yb|#js$75@h9&3mgVkK{Ii< zk7)EOT$s)2N(gp@3E7`#kj=fj56Jhp^RTNb%RBdW05uT z#6xw3d#>zW-jxb0A>AK)X2g8r+1v+jPn@)DBYaHC&v_9Gz@*Mf$$K^o_c5zc4tnMX zyM*PNG3X8Lh)lizckI5|cTD}DsY3+td><;Muh7+Zr@+UN6Tyf^0EkiquSAmgjs*7r z04xLk7}UMXc}!c*%^2AXsIW%#YPE0_>$0P`>e~Lye=_{KgJyB{-U;I1wp8qD7Vc;u zoA6j4lFzu#uyB4}52gPI!TDAWf0M9#m#EJ|v29SD0)HN1D9J)%2la{ai-bbHczc{34V_&;AmjC#%NVQW0!(_`7aywPli=@8cOZu3!~ z8`?k2S;@`$^==~WcyM#+dy^*1u-wX7CDs2|mp^cW$e~{IF*0L;`3-#9r+rfOx$-`h z^EJx4rNJs2-XA_G30>*k4RRuL;d(1!Sq|^CljKBEe^`Q&Nw2X@JF?eGz<-uH#Lcmh z0*YCtgkcY<0zX)5cg}TGQ=22Rbu!AQ)Lo;{M|!8gVkPS`pgXXBtD_2hPm%u8&~V4C3{QkvXTz}A_ExeEAd$bE9nsdnS4N<+_w|BeMk5)mEePSjh#mD zHN_hDb>+vWpaI)W2!Eno%N23;n+Vb&3``;b1~6frknJBBiG%FN(@Ff-XkE;B&Wg;| z@wB%RSMPMC9;%1{IzGcLda}%4}HwaIiA`ju|+r}W;Vd&D=EpuRV2?Pg>^scH!e!}l|Hw{9M z<;L)5f6X$9cVQ3Qf2ordqJn4(9)y8*^8IF{@iexZ9?CG%uR(<$relyG2q~C4W{Kw1 zjsW?bRpwQ{?`idu;Zr@u>-<^uP%Nbp@JatWkEK&H%RRa3>WOmyLdFd^36xN-v|_Vr zfaFX>)Gs#D87DwzWUNFk0s@Z`R3$4@HY96?;PM}5ss?JufS|zOjk!~f2)rNqh4sl< zV(MB&a3Ht{Mkl^4fcFxlbK!Fo`p|4^1${Yqdr6=kwJfD@W(J3T6-G zy-OD9M3cN25dqXE_kO}Dr`U!-)|!Z*i4u5Y@ug+CE;Kt7)lI`h96kk@B)jwx*Z9OaR%Z0w&}U|>3ua~<>~%ye zy%Cu+)wvc^wSPuMi$DGf&+EGtt$rzXTt4Y=z1Z!A9Av2OD3<-1y4y(E;6dZ*cfUHK zd2UCTZniy=8o*Klxl>Ud2s)bQ-X3XV2#2J1%w8^g`%9 z9I_r4H!;REv!e+hg)}zE0N|?f7zAS;Ec~c~6-TBc9?N+UJB0fS6nQz)TC^wUxM8$C zy3*=uDTqMZ6Xe|^wn8&;c@8a15y6-=ssXD&XoYRcLWdgLBD9xg0ps4$7yTKfsf6=j zx$DJiP`WGPR>IGBKU4>lmqpyHR|%2}<>sp&Hd(67SY)xFLiiusVt9@V-;gl9s%POv z;+zw#yIu|vf$lX}02R=#())?BO&hRMqYBzCDc285v#VGjsssd0%iV2qGeVZkKTyVF zOww}j-XAp_)V<4r(exV?$b%rTeugQcKZPmL?BKj37l5D&Io>Hl-i~+;$hIqZl@I2! ziV8CDJ4N=?_rxl!SAtnb6()$HH-RIu9*!9rVs{rXxPLK^d)ecLBWdEGpuSg%yF5;` z3l4wc5ci22m`yyOKiUpw`4q_)`165SZ`2$B*6`;u{F>KC*G=F?$~{26^zXT=%2ePj z(eb{t)Zm|A$m#P@msy^RHD{|=GjoDnVAM#OaH?i)uNmd8Eps49&sZiXUJ!_M$`$Dk zX(0^6P=eXmV676Bj)UYHLYKcHZAbITc48L!824nm3H>5Or@Zl=_F&X-g52O|a+?Hl zBpN*s+H#No+C@Tk)$Ve+ECF((=Ee&VfOzA`HY0o!#3U3M8>v2}wdD7}2H0a5(Hmou z9NrOdLK!zr@F3J`5`PdH)=~nwyOipb6aOPx z*TjiA6|>>+7N*V*LDG8x5VG+FyMwt%n3yH*NFz3RAh_D-1luW$7huK~hO5=lTY%hF zi8O%p2MUhY%hZd+TJh#IWi}Jx1g=Os@%SRC;lC;=(pw-GP|qDKAUjv7^afV=i1d-b z);mDHPd$|zoP)V5*#P(-#5O4+#4NF7=8+LNr0QZ8D}3V>n^1-!^mj^US?$CQa6x6` z_nBY(0#04pru63ES?0sF^0TbB@Hs;4D6Pd3Zn3~pFpGP?#61GZwAV~g30YDC1viRN zFn32y+=Piet8l3o;pDU@HUoCUQ6KJ0eXgSU=C*@ayfOa%D4|2T(EFxvReXwwac>iQ zQ;MUi24q7P%sq$=WP@<-LvedgK~j2cHOaXx?`oO_>r*5R5Wo_Cy8Q=<7e$P# zD$RxwK-C9*o*%sH`LYpcEyXw-qALYk+~Eg?95xLAX>}963smwDX0^yvw{Io?nRwia z{qz~dFruRv>pbQ1P(dXMieL;gyAb*>cv{Ve<9Dq@i!li9V}hKJ+_rr#=_ z&OmLz&MWF9ghMPKSPw^y4*X1ldm9Ecp6(|r0Ul!vwQoPYc_!+o!GDz;fm@d zYyg$!L^SHfi4tuL7THpWu-{Rftr4F9@IuTp>Huz(ID^ZD&nd-b%oS+-_yGY#1YCSb zTR1|OaPajY5LSB&ruV4bwUS~Lj4og61NoPs(%}go#jFv4w&(_F_vfONh1F;(E}{hak=!fPax`LicXdW0jSJO?WIhlV{v|RRT3UVqVS=wRV*xEdS6%P z0p&Dlxy&YOykry-wNcd)2f*m^bKi~zQ1{X)!OUa1a6_FZ$R0F_d^glC0;bab$kkJ` z>{dbf{R&*#O^`?c0b!iC_R6CIae;W9&*TIM0rmP*Ke`LChRZ$76BQ^SG+aGHV!Lr# zg;l9Pu5O$v%tuD{GAX*-xG*mc8e8Y*(v1`3b28Wet_SXP3Wakzrndy z9L(uLXSLhIuLiRm&tr1qH>g|AC5Cq#Y=cCE{dY*Ut!B0J_Mq?zoH7p5D4??*U{WCU zEo({-p2gkCwS<6vRjy)dvIp&oXXSH8L@}@7t5!jTH@`e@&AiYe#VOG_ZQMSi2^(#8Oh12T@(5gWZ-T;#AQCA-qfj^~n z*CG?uMDbXVSX!;9nA(8yoRng)!amy-paWyBC^#vRpZr+;Z4nUtS7O3r`M+iejo|NMM9UE zaKyAmkeqm9A9b;ZBjnPDQJ8Q~^ad??KP0PSxfh9t{}<>G$}_)M?$vy@lwtNzGPp?O zHm#qtE*LBgP40>eX=Kc|1mG8DiOEI8=zxT%o&2XkIK(;bB4v1cGth!3LaH1T%)}=c zV1o=Z0|Xgw+!RI$cTFsvBUJhEG1nhVJL4Y6NpuQmm#09IMtVO5N`C1}IjH>51nxI# zN)!j2mM?A@Dq@_3Mb>VA2x&PNQfbH#%<;@Y&N{Es1Qfu$W8!f7>uKU@o<16jBBBV?i3J#e=%pr;2cOk%kM4T^yh7cor%Sx1Vc!b^h3GJ z8x-{$be=1v(Iwywm&!-ISDG1<-2x`Iki$V9J^h#wJU~m#(1f~57Xf?_2ZIZq#H6LKI4@mE3^*iwWXuoM#aEyz)z5S_garinZaR$#+o- zLGHRcI4HOnE0}2sY?etPU{jRFAv9<+2ym;3C@#U0p*|T6vliC^dBb-p*EJJt>fe?b znO835EYjjdwE;Ny*wiNfqarYN`^qR(5ej6m&8Xq#VoTqAaaC;%()znU1N{Pp7p5E9xSj$ z1L)|;(so`=;^H^5kA*i?j?)1)kq4*d^_k{{+FimfiG?UeGd3Xl^k23H6vG_ z`?tr+J0r_obdYO@ziRVSMZL5C#2*&(3I-o> z30wVdq`hc7LW!G?s!A|;czU&0E|8T$QMr^DXE7RA|Mm|x7xnMAVs-V?`4_A=@+6zI z#_m3x6+9t#ar4FgG_N1mv5~kT_$mO=+3eftGW4eU)sCd#ewlB<2Rgr}s%^?1a$elE zB!7O(4TW_aC-t3)StGkP1d9CaxZ(D}cJs)O{hCfSo0D>Ml;5c->=?QF*;ZH}-P_<2 zRulI;Qkm0Swl%&>{>R6cAFPx9v(G{cu%Hqr-$c*<8R*|@_m2NYUG%i@b$iBe9rS5=XtnqPiL-w7#X?YRF+i# znekqC+kTa&d-7aK**vMh$V(+2yz3HU+x|8`ckNBP&*OR^4}aaDle-jq}3;q_jv z(z)>-{Ws`$i(6{@-D$5X$85J=4{O00uCw2Jep*?m;o*_iEs7rll>6!|MeRx3hovNU zcY775mBH&ecjzer&fw{->fL&izc8MAXO0D;579`zgxtvK0XYqN#cR zrJW|{ANvH%AKtsU@W8M0`6vD=`}aEe18$vZ(Zl{(qwTi8=GjGkwk-hzD zgEw;i`{P*k&#ke$h1=5L0r1(~1O1JArHp)ARFXrLdqqNT$`_^{>PuGs<4lGs<=I{b z$}~6dj&^v16RkPu?^D_Cv)Pe4i{m66+S6^qH9{w!hVSm-nOSfXL` z?7hrUzuF!li>>7!cRC&l-=?zT5b4X{vz_|uV(yt`|Fq{$ICwpQ!uHFJH9w2fMK>g; znONK%a6UM}_`H^_xvS?I(?7w5bx*wCg~q^dP+rmTxWunz`My=R^ye*Niq#Nlr zU46;OD3hXaChNxIhWdZB?~7E^@{TC(Z@Tnz@vV_5Ud;cGy}yVndfuFGGW|Ip`F~B{ zYJFRJ^>*%}NyHhIzl8b+zGNyHK2`r?`f_W{owS5St5=cd8epj}x1%vyoKX)4gNK*z z#wBVm`gvTb&la|=xC6zYBhkICS-(0=pROCeesy!8vrf3-TjtP`Yk|A3{hfVBk1ZJ7 zD>k+>1jpGD-{nDXOM+f&r3A~h{!WE(66G7Yd5f0H`&M`N{KMbm&dN8|uea9^{gCrI zLcH&MpzPp&vj8D+nLl^#QPoaQYC8G(aZ;Ja{Kiwm*Mh#0G8cFIv##%jYTMiGI??G^ zO3IO{ODc??Zr8GvJqeWCkq6wPj~tfWdc!RVu=(;j`%=$ZpZQ7J>UQepuhEL3AF9E^ zMR&sn0}2I6?~;!F96GAB-axWZ$LGh6M~)ZWJtKcolum!jn7sMuL-;S2p0!%}ovKGe z!`7{%@_X0(^;y@pZ+}p<+LyC-1AkYW$PWEi82{*|?JkucK7&R@7rNbc2b)-4P|Vx+ ze&_sM-^_OUynW+8j9*5HrNN$OR`#g$9PfETUW9gCqP<5{tZiKLCZ_8OnWlXcG*t@C}YhpM*gUHRU*HeqLEUE}_) zuQ%QQS;Kv|neAR_dSUxj5BYx*{q^cpG;I3_GITE&_Pz-B9xmn6A6;ugS*Kbz=I3SI zEvS?bYZ;Wf(Gc@QM*4=-2K`i{E0^6K22uXxKZ(-X@F;PQdy=km%U*@_;_$>r{Oh5W z>-Sd=6;;OSkCZkTgzbG0e9F8iSRSTI!hXq*6uJd9oe{RdvHr^v%J?w z-|K%rc_pK2X#U9a%v^=RJqP)^uTwW5O5-PYKVUK5e1c;Y&}qEaJnP?{_NE)Z(Xk8i zM$?D1<<;({JC~2`!Z%S0wjZ3U)*6r7PM0`*{O4k7`!C#BmG(0KoF+KJ-lJQbh*1yx zHT?x#+9iE2{Jl9=ie6&dDV*10Ww9$qZcDFUGZx$&BfY>{rp`Jypv_TjHAYZh*8)x7 zCGa$^mMGvcmhTMyU|1-kSMYHERM1N+89!B(plvV`Eg?dB6---HE)Y4-Tl>yk(R~Ul z6c5(@LNsZ{C+n`7SHl8yw!2D%{>>()>LcO@G3L{#Hm6lNGk|pwXu{_(J;)JHRRcX_ zJFPWAtQ-~)nr^Va;fkfxq?vz@3lD35xE4Xb@=DNqnc-o&iB`_#mSx z_ACs5l`@3uQ!>i^)rJigqs_ehDG&Ue=F&5`k%!_<|kgRgWx{@ULI(2lRdh@ z^_Ecpi!GtWLcqUi2boXuK*imlr0l2;l`d2YwWOVHAwN;tv(nG9*j431w0oK`)hNa< zZ6;x^B_I&xG{-j2U{RgpVBzXmyW5+ZEA4MB*@Z5YrDaNN23w{VDmv=xrlcEgqkO43 zI&obwOu@!(xYkkhBCgDLx{or~6U3VmWjk9Um3>`j@Nq+{Ox+;uj`tFnMTf64X?&S( zu>^D%Y;-Cl$h<|$s@rpgjRp3EHlNWks;CNftD~^eG(-Hm(E)uQu+*07FwKm^Y}BPZ zya1;*Qq0R)tf+qF?CZB!VU@tUkP*WF&Qr*n^1xV@+M~Z_BVyl0{fw(G^dKtQV_G#) zZ5}bW%v1qQw>qrouqS^!^T3Lln(zDYD?3{1MO}Wq&CjwFZSxwCdh9EEciQ)r(Bov1 zZ_bp&Gdu5(#_@Ybi31`2i)X{WJ{mD@n>Wi|IsVyt$g{#_**v2o)T1SYF!YUuT86-`*0&D`exK`^iR%`nP2GjmCWC$u6#jf z<+0d1c{icUm0Nb$urdnyKl)>PZ8|puE?d8-54CD3vPN`tICT{%6Xab^mxeNRbu)~SnBE)EjE|u6 zk_FQdHXls1?2kL>SdBPsUidaJe!wK845$+*)h)oxVW%6cj*P=;j=?wEiE`B79KiWW z4|J0}d0*uY2rJ}bsYTWpDRu#Bt}nfdHzmBLdGwLMf4WR-Obb4}g|6WW?qNe0s7K5r zS=?a*Y$|H91ZrTi0!P`pS=1JmPoApF;^$3 z)^-)_z}&*LX&JVKqav|O8MQ*=J(99m6g&{YDDYzWIj(A|u{nJ;3P3Y-A%7O9`jp}5 z>Zf30R|9x}u3+znitjBz+R=4W(8e%zd=@9RbQ&E9VZcL7&1gD<(UY$$;F!$|OF^VT z00cPuQqgKF#ba`mXx;O9Rf}vC{`6~^1Ta^0Q^J~3wj|ZQI|uWrs&YtSn1fm`3*;@D zqMqqC*!~b6txsGZx6+LB;E0ue6T(mJPU5Rhqcwu{tPyZ{0IYa-owQ@4xVcdi6YC9Sf<>gXtGZcO+|3Pjgc7W5F3FAPC}-;mx#B>s7f zR@ej6%50H-_`E;=*Z5)+w!IY(S(@z@Hw=bglxI=3 zFdITk?J{e)c|0W>v++e_V`tR@D`z#zSY#OO#9oovcS$`4>P`+`SDK}zFUk%VvDSQ0 z0!n*qTc@~wmtPnApzu}K!yo#H@bo3*AriIYXmFT=O8<_Z0~(l~!^8>`*5-78-163X zLcDXl>qiVu`dz(*b;*m2&^9Wmbi0bIx{ec0D)c?91k0!%4>fI8U$6z2wRix}Y<`A2 z(;TtjMai$JJuSptgRnf>wGePwWn*Pa;$ys-k+S9S^yjGGS7)Nuh-#?c~J*UpgskT?eM zqNlNQRVilA#lqQpD8}sdi`g+0gdYOHH(pijq9XL7KJrb%A6`P%6N<2h{FqbmTrJke{sQ`ynEf!1mh>_yg!Wp6Nci(Kba09M$8$42M~tpe~|FLTp{nSVG$x$xm?M$Zfph&_A^(w4j|YY zTV{iOXDYHWQrS3FzVKau%QIxT#1vYzxL&S)ys-^u1!9yFDk9G8@5IBp!G&Bx)Y}65 zYB^HE@LC7Xvsg|y(`ArQph*}Y7OeAnw#{<=X34m$uuE2o?3 zf<*)mEnIncjbHm<_ln%0e=Ll0yAMI z{IPMy9+SIYfzFH#hW)CR(>XOk=L+|>JM4Z>_B8rd6kspvU*)dtU#Z(J3u%xxR{phM z?ti5NFNGew%)(gRKONr>{czk4r0$mOXj^g3rldo^l_%RAIwjZ$5qxLdgF zYFEhz&p1+%)gQewA3|er=T_cSSWWf34A8MtEi|GDKk=NK5_Z;h8Nw=7l;McG3s|5AUcf1;+%=4bkzaGbn@-?#+p)3!oGNsos@$6&j58OZn*a))JI1n^~O4i z)r-a!xhx}{nQ^!W2I9E6Kwq_Z7zNtxG%!(n64ty6;qP&>z@4G$jvwLm=neZBXxvX0Q~krl~0aG zGGF5fonbFQlgvTE#zEnKy>%~e5=tcSUPC`GzimkWs@&I(gSzF*dSvJvOt|s4`Np1N zkl_$N9Y7uBwE}oo*FyOUzj6nAT|FlO;Sr`IYattOA=#1dCGm6b^?Q7b!%lOFfhFIQYJ3LfveyraEeMGF^|D$N>7!yj2V*L6`M#1F{I5kaB1%$xfIs}Y8FNcu0 zzXwD>@G~^Bfe6uvIT)->oQdct8S=te1a_^m>2io27}gQ8!Z4vTMu|T#i>(L!x=+zl z-TLFW{c76nDPr&)GF;yzLR){wT%g6%D?{%X3NLPUV&U<(j9EV2GIelO0NbP(rGSf# zybxoMD6LZ-fGnfkZLhzd_v{4Zn(x#N1m?&qT-$#WEgm@Z1RDmjmTZv9y&@XBDG`!& zt3g!QJfo-?XJlj)$kk3c`lC}s(c#<*UvGUoQ8!D@yH)5>EbX*}WId^J*5$iEO6~wM zJI2Eud(UT-EUo0e;A9}Jtb6GW1X>y6!lFLw?`{g|4*G*)d5-kgw6_%!I-Zj^)r&L}|nY)(X zqJ3tgwrEY+hf87fs_JE&hR(iHoRxm53-~|pD7M~CRZ=*#-1u=hf~>GYK9hI(n1dxH z|NA>=%V?TXKKzPrFK=mG`S|AFA5E@~)i>@vOOY#j@vnWW>v5gwWdEx3&%;Ldt+cZb zgoFu>M*~?UWzp6CVII(v=|mDUM!7u@J0GoUs~JdGze@MF!Aa_vFpDz_m2I$%SVqm5 z6Qnjw9>EFP;9P9WB2Ad3HyZz4crYx*@K7Uo4`nNB#>b>}EKKP2X}+*E?ZPLuBlZpF zH1iAALq3qn&qyJUO)=LT0f3c=8^eL3-A$Nmj!kw(IkS-?{k39=EJs%;>G&q`Vd8-E zpahq)jt-KryKkp(m;aBWGmnRI?f>{Sn;A1Pqii*np-tJJIwn~fV`(pyO4)`sbr@4* z$u?uJRO%E?RH)>%AUOz)u_T3PMPnIdjX@@RI=`>q`RjST&Ur91_kGWGUEj~={a*6y zI%aqr*R$yU7sRmUKRgo2a54UZ)&_bY%xvX{f-$VsX);;7g${8yl9)y zHTMx8C4<+sMEfY2vxtIU1Tibr#zUfuB!%0K7%9dR`X2ftI1b&Cf4B;91PY zcjhxihmf;y=wA9}DKtAM;RlyIQq2OgUWhPkVk0Y1jcX5!4o^oN%$tlBsA ze_Zqu-G{f@m3r)8CnZ%`kRQ5Jh@Jy#rZ~D6T(gVSx@cB=2o2hR?*wS!Ogo8s4@hBl z;32^ifxm|-8g-^~y8xMlM^-5v!Gww5e0Sc%uR1C0|0jU{T=e#;b&jA=kD5Us)R9BN zJz2i9BFCr^XyizII^`N$1ga`7tO=Hyq0rHCY)R(r?jw-fwBt_4RhUztw3$h-y z=zBsp$v&#y62F}NXRt5Iyr{-0VK(adWgoF!dqRzfKVya~I39*q`FH=goE6pr@0TgD z4^rz-k~254=y29)Zl`I@E7~cKJCUy6!ZYM|T#yrm!pc%H)m5(Xt2_k+NthwxPd=$_ zc|Pe})VH1lJy*vShC&X*EyZn!%vTx*BndN#d=J(3Kr810)94h!u;>KY=# zkQ|JyJu*OMFwffj85yyj%g9&;me@c7LaI^e7@SqqMPHr++mo)|Asq&^EBPWv7fh5K zK6(%~L!m6RFs+A8*`x<=gIloPXgeG}L|^%i_Z8bnXGQRoVRiRn5kZaT-h7Q)Zg8~T zFlu-NRlOi%Q4j>LX@LwS!r7jPL>5N$S6^JjbNYF9`K}e1k<`Zv>#I~J*mv}h1iO! z64h`_7JEjhQK@!e6z=@Sm;5DL^g8y>VFcQi%oH4 zmdi;a%4Ujif)pM9o#4c5Mazw)7(vk9!(HxHVqR;Q1-fKszwL5Jfs46rF7$ zx}QIP5c6FQJxSY(w_7KCc`X%N>*6sd$2aB`B_Q6RZJjE zc&KRBCX#2B;u|-HWLRRsSVZIolvyfqB*U?-6bmm%6w)1;PVyr*c_Z5v+Uf2NIOF=F zf)H#$f#@rO|KJP+Nc+fwaMm`q=WG?2EFkJ0OrxF8IMWJ#sZ`o5{t{?9Z!&;MX}?&R z=}x^RIVXt5Kt|CjWn?iH2P~JhS{WGIkHpU)7K)hWCk%xvI0pj`Qlfrd zf|3jXIy1nn0W+$J+@3w2{D?k8=&=oMG!W^ z%<{nq!w143cx7|cAr}PykZ^p2gHu4kI3k4{p*mWnkHUp0%y+5<{)-Xl(W$qZ<>AX5 z0>~TsfWsWdhsC@r7;Oq97!jnVC=mF}^WG3*nSnf**EN_@1lc0^saP!z=#putg%X`$ zNTh*Q3%J5E)&hmcNWTTjngtYM3+T@4P& zqJD`ELA-N$ISJ6Kd0;^i=w>)~l_(oMf>Sdm<6g~5lhQjgP;YowvNW=vqfzNwf^r+D zHhb?h52_BfDh8r^Z$8o)>cfO(WL6ByK?8;lFrT=g@(ch$Ma3uoFy8BJT}MB;aBtB{*5EUp>=1wH;Ms?JPcrwUFY`=RYP~<@zJ8C+ zMTM+o-Z7&bz|HT(vd2oue{S8#-tkHI?_Dn{2X>_R;UE8d^4Lvo-MurfQiFV_s<1_e zTL;Z_E`8xY+mW=-=ScaA!#eEww5XY=Y&tg%*sI}VG{Q1zQY%Pol85f9*D@h4BqB7B zZKP#>5Q7RgMM~QNC3nn#o%tQ>ZCIv5k`mu2p%=IKnPj|QZ=8q+JK!K({55G7vT|%+1Xd}9=KoL{zbNXB^XQf9`o1FDFxLDLvn?EK z?8{CS%1nqI>fSk4zI407(~4t~4CnnM!kM;StmGb8k`TtOjEP$X>>eb_|7(T4=jk{5 zY~ROz)As&pbxgW#o67JL;fkGmRPB;>^j=Axb~Q^v>oyG6o!%XAx_FuPzeW4?hi_#c zT5;;3LVLe~l}n)9G8awep*p3liI>u)iPRn50#a~wBYkupS8U__fp_3(`qL{qSuZP; z_n8d;S-I*(Vt4kSm-Mes>Wu**%&lK}!Zn5Gohp734}7>^Qg|uxR{Fa?rCyKf3SS2+ zZK!^G*fa8>9A6r*OI~wP^|jaLVmq^WT{ib*oHMI}W$F6I!|Iu5_KW-)&;QwaWlh8E z`a#?6f3aT_o1MRR<63RZj*jb2)=T|_*B)r(&weY#<(KFSoY8GziK0C z)&DpTva@_U!o?9+Gh=P`l(TmRyU}`jzkWP(_@eoar)8?%DtP*}DCPXpfitZd7izPI zYIqrMijO{jeZ}TTNBJu9viYYZBGvhcQH=Pz-mBQLRuw0sI8j?r^pfovPmfzJa;{q0 z`oF;X&5O5t)#^PzzE__zc*rt4_IL2PxNLsGb@%`AKB-)H`gy{l*`*1)#_Z|Hhqa2! z9v-6)#~2$n&wl%^x$f9OnZ|=Hr*6M>(YNxZW&iSZtF6y7;Ku&YJcLu)Ys0QmTYI>> zPx;k_-GwfuG2+Xc>khp40TCl)rd^CXRSNxYVTJrq8-$#J@2P@})~aCt`0ZGb@v2ul=DroD`$D&(_DRiY^#1`?SU+S^xN|cUR(${t#WB{_N}{ z$fN(e_>FgUu*`VdYr@?WGrviND@Eq<*n{a@>~owZsZvz0&&6k;UXEuJO0uww|y4qK1vV{&X*sMI8P6 z&9R}4VFkX+bPwO)WoGQXrWIVXN8I{OM{luw`kQ^YeT5-$?^^#pkiNd!WS=7GfA&i% z?f**LmU%tK6Fe^QNz81cw8_IeUiLhEqg(#f>xjMHMj@W9@h~O`R4}+VpZER9^mTiF zxRLEsu9@S#M$YknM=wj$mMcWJihc%~xqndUaX)c$UMKcTp!4>1<5rj~L(A6zDn8kh z+~${6FQuvXV|I<2u zbML?FZtV}j4u3o7`s0_^&13PobB*6)zX_c^Du)bCT~#T3_V0eHvGdpdBy(l^K?;+z z%UEHcof({ZX-=Wr+AQ$;;>jebU$^@4j(zu!89Yyp2~;^5_0sV7IST3b(}vqWpM7vo zO1v9lqxz>4SFqA&aJ`Q9cAw4p!+G`!OAqZ+aXR{s@XYSyv+B1uWvfL9KHk3;w>Wt) ztI9nJzj_fl9dIw0gM-w~lG=O|!->eA%Gpg9Yl1Fb*`5WVvBrP;5(A{C+HTeKt@~D# zy>^*m`#-xH%N~`O>kS;bN8fxr(@H;%;Jdiy)lT~+mF=W6rK6+T4$=!(55KkA=`8wj z;kdy*15aW1=FGE;L%s62-dzb^8rjD3nFZaO2ZcJG?YehIR-V(2^Z)0~-l^Ls-!WOC z%=JlyH+QYxZoTnkxm4_szCmUXB%O`T{kzcWXrZm)HM4^8I+M>&CvNCwCZ5gOvC;3* z>pjIGo438+o-#|Zaj`k^LHAknJj;WH7Cu5*N6AtxXE~U zYMD}iJvlx2$j4EwE16GAgv+l~y{x(MvgqNR=$Z;>sW?T=Rw62Q0JbteN|tgvF90(59*^Z-m>eSjCV zZZQZ*tAgS>wAS2}_!x?CX}KU5m+-|<7I?u4hxHFRECt)$Mv9h!x{_~ToW%$kA=WsW z%{;_@Ud_>V-t&UxGhQRFRD7$_{Ue9?fo29~h$6Q-{p99b8Iz+}gH4XRnl_k3gl8Bi z*N$+WOF;nLNi?EizyJ@pbnwH-6K^6o1$L;1dKCXjG>kwZSx~=%jd+K8^uwGEo)K(f zZ;M6F5&7=E86t5%#xo>0!MY9(d(c0#rZPr@`;7Dr8MHR>nxWgJB-S_m1iVsMc_Q}ovQtzYIr^y_BV89jeY^a+)vNB zNYf&arPfC24JLg57G}SlWa{PIL9){hq{Uz_9hj@y-p@zhB0jtd-s%tR2cz|=?_!v? zZ!tkq;eai)q5a2UZMIAfh6~(MYhS+VH`P_=j|Al)ot~H=eDd74up@n~s(Y)sbCteX z%vuX1AFphb;AAYM=RtdXO(uO(;IvcSVOokcJRdh*Wm%OYrmmEH-Qst78tAjRm+SaN z%Kxinx*hyZJgC=E{1X?i!Q9_~9cetvINW;E!sK!tM%&4Ve5w6gfh6^exFWDwwOafv za?WPovb$mC1m!YMZ9QF&upm$}GGB$ii>GZkk!Vy>(W$a{Kl!d^dbwop;TJ{`o~n8_ zQ=)u1m)y9o?W!)t5aX8mC+HbF(8=evF9DWMZ@Z)785FGmj?omT7!-Ci-R` znLb~n)UUd_V))AP_wJ;*-H-o6yMls?hb><;>yGxG_38!#j#@>N2JQ;?zhv_T%o4Y@}%lGf97$jg{f$id%_nv2e z1=fYD@qO|W{lNJ2JdK>Q%rqtl3l?YClmyjE`FC$J9T@nTyvt+epl~$z3|7Ksg}B2f zTfR261JVt99mX&r7a#ytqPafhnCMJ9(&E6W|29*c=aI7#{7e?XGL!b?e(bv#)|#UI zg(xX(ilu4N5v);!$f?-=vz4w3OM1k28ZR-v)e;S3JOTEk44Z8!QM|O{NSAUB;!HcTRC0xVHl@+(DHK73j6iLAgoa*oa2KG7n{wD5;y2`hbqV6 z{-^tuD5OWd2!cK&sG~)SVU@CSecw3_USaYg*=9CFrSN4tCQO3=&{Ixz_HRO92a$mY z1y%+D)i)&geN+S1nj<@3^4(Vc6ofoPV3}#*S$}SJ0gUHu8s70?NGIm6admkLSilq^ zA!dhJHsT1CVz*#ArGN?X2Q(-XV7>b(RYmkLvP$a%j*X=R3y2+|q%;JxJDG7frniFz zorQ3uXP74N?V?p|AYjH3T&50Okk6b5UCU%826J8ZCCie$;El5usUADR8Cam>x z%XB$a!P%47rH(RJlm%cu^t>UMG}1Uu#*fu*4-l4RNeM4Yk?UGB-vs4X#;I#>rP=I% zcGL^#)MgGSf4%wS#55cJi@Z9B^^pxPPC=#iuHa{u5TSw+#qaLIxe^4mK zWncQysq8Y?fz~c>gb<%NL#?=hR2-s{Pf2)i><3@{tiyoF_}G-K3G6wQbyK@|8`(vE ziOBdGRA`k!pi3Y50>6L*Q3l{hc&Y6$YFE6KR?N>N7z3tvhVV{tY$L}zp}?D);E(&L zF;PorwbgB*XIqN0n4M}(el(*X2gx$|yT@C(gdL}Z0|XeR?J&Y*+~JV}N627GzA=Yt zTW^NgLGPP93%~BUFUCjXxi6t;D3^a|`;ukSG|Y$OA%17vJu{z_X<6l2N-H~R zOld3B2`-&h;v}UAm$ic8$mRYTur zU{4eqUZ58?ne%xnu2@w3v6v8)B>*h#^HW z@n7S<)bwR3aS9{fz2ZnBqkeebxo@%kb>aJ0CRgqz(>K35cVz4|wIlM~qq#j(;fKCk zG17kNr>g%LI(uW2bJOj4u;JYMUu4`m>vv~wtYMbx5#RAVq}{`t^r574a?o;rUrkho z0qF{B=3VKLonw##>J9T!QJBjN7qRE^Vh9)H$7`p3iC@6t*8QD;W6yn45aFS#=%5D9 zpQxf1Dnk!wICK09OR&ChxOLV#!t=C@rM$gB>52&`XRJl$wezAmi-pQ$I*eB}=UC(f zxr*a;Zt6Z*y_xZZN@9CSMriFt?oDmX@=B6+#J)o-YA7BGAPSP&@1cVDMEqUXa% z`yr5OScGb1J`SiK%)Xuk1FFI96rwFX1;#U?1ETg|fbIkg*Cd(JMH+4f!*ObbCu| zI1P8BCF*PJ6y}`G8R(*=5d4K>w+i|9mM%nwTW~T51_UuxhjJ59TZ9P702$>f62HX& zT)7{qcCrR1uwRJHNcoc{AJfEvUpmVNi~&Ue=JI}kzMt$=-aFjJGfZ)#SAHsxtWaJ+ z)pSx*jaWPRom<%Gv~7Ya1R?loUV*A;;XVzQK=g`L;$kcpI#PY?(p&4fCj&@u0^Y07@SRnH zZkjW`Z>45Dy!xM)!|~B zSHTMG%R{5F61I%ZoWa)jCh7z$H8$AaT%nsVEH2mnppXglUH-Vc>N2Ipua1VLMP==r zTZfCAjut;_D&M-@D>z8)XRIv~MvA1-(oqvvrUyw{;#kUtJS4<)GXMlluPPc%JQA$E zBO=2{h29;8nF)*`j9gto&E6-!^M9p5+}O=n2fN1(|Dmi%m3i6bX2omv z{~^VXZR3vf_8ReVYBOFNr?!0i#Qi8+Ns5TN>~Qqk?)O$r?ElbHfTOJZo%0`ReEOmy zKQ&!>7k+D@inYziK-i`HuikD2N_gM4yP6q3S!#BqE+=FDHN#kZ_gP2&T64BZyBfV{ zbCTXN`f{ks;A||`mMX=G%sNWoYq~_Ctjw_;FE5LcmKb{$*Qi;H%b<7n<508IA4vj6?9x4RbeE9!r%%r+!xR}E%te5B5P~EfGeWEgyYXAs|&^1D( zjy{!*a)UYge%G}v@~~iVLAo=)GA`_1odi4pFmPiC#>tZ7<@(=YpGA=G1!0X4ywUEE z{opGVK%vpvg)Q(0v?1k|#HS)@)4?R_dhQpbRT2d>8Lg%b^iyAu#t5vitcr(A6kT+Y zA%Bv)V4Z}cS93S&U2l!til6Yb)wv1Juy7H!oA8|sQj7^K!0>?J_A~ZOr(D-+2F91r zphpfIMXJqaehC{rBY$&FqkO*9LyJ?1fQL3Sav2gIi?G)DMKSTYAR83N{qh_O%wIw+Qw=E7pKLtXIp8}Rp#YSUw2V5Wt09`doQ03fYw)4X@G(gMhhm7486)20*FzE75nj@sw#$wtXkY6BoH=s z8^Ull0cVZn`*2hb#@@*6qjv~H@!`dv_{pMZnXimo0OkxOobOx)IlaYh>6Fis%w-qb zcC}Xfr7NA333fn!*>}!-ly(ZT*PD~9;O_uMWuQbER6=}$Nmr`&9n)AJ;@bh}NzfE} zOSInd=5;u*d{DbBg}H(ne{c1zZq9yFg9X)TF3b`kZ5*SNb6XP{3fO;SFhy?1Ir3&O zvWnxaK%EL1!P!{DKPgsLhQo4AgO@kW zyLtZ5{!W#j?VsH=)((dR{%y0nwxyk2_aA!kWX|i-|2|Ni-<{m_JALPNtzDnzGw-ZE z`cC_x2w1f7Ps6EAR_nAO`*|d?U9?!kY)tU!#3gnFV1weM0t?{ZC@gul7HkxJaSx$z zEB1LOrGRn^SQ@m~HXq0*;Wls^!am8^kJ(#wavYrP8D>GOwuolb8xC1fF}4WPl-!Ix zbtyE9lESF4w9F7D2$r3nVCw)`ht>zP@kj>BF;VvEqMfxZ(}dY&IG|UYY9;0#6M|<~ zS#3QDOT2YwKz);!V3-1~k)T>7Y>|F}VvgI{{}6OGM$4%g6z7263Gk}@=4Y7u&Jwma z-z*xDuc?Qt`4epLr7_l-M=ZPs$8CS&yQ9UC40HFj-in-muKe{A_b6ow3tx^EkKr@a zDyy88;OFq;Z6qmJW!hDWej7?A`(p5pPuGu+V|xSGGhMxWqk|##+vR)nweQraGzCuM z+TK7mc}+1(ktJ~zGYF;+yfLQZP!_q}%F=55L3oymj+G8Xwe`e_N|wAO6J-4SMCTAM zvYJPDrK^PzpC;?X)<|)F*ELN+)cWfxCWmLdNl$ka(%3VdE|a)R9|7)kj|%?F0yHy> zR;8CAao~KV>!e6koQQ9Bj$k<&T9lXB3RaIN(g#^=a zJM((r0!Ygbyv|(jAnkVXYlnKxcX5FdP3~@Wz>#td3a}apK4qK@=VDqj0az$2)7x|p zM3a{!dRzUg<}#MhXR3e3Rt@n@J$X^=S;mrT1-|5P5RBkkJTMzomK4n8wW~NZITM6) zBV@U4Hquh*9e`Q6K`5cVg|;Ekc9dlN_r*0KYz?;g*U?s$Iw~{CCgWyU1_U8~0$iXo zb1%EMi1B~9o0y}5-}gkW%}S?B5U^Y47iJ;M>>h;y7$gT$DtyR0559t0MOhR`gOZ4@^H5$ zU}W^=lgF2U)MBzLz)RVsT#WwJv7BV-CxhFSuTdmWj*-f6a>Qmr)I=4U97Wm;Z1^5x zak>p3ZGH!tlz9xRu?!epkO7uOPq-7{@kX3ufe6L~L4c&>Vu_-%V{QZ$11-7 zk65rfooa%7yMU&ZXdVsO=vA$(!OPPjfzgPN@7vV_vakhck2Zs`$yuWS;v5-3=kg#4 z`ar*YuDk4~ARiD4QeaUAql$8Py&b{Uk&jUl3`99_;7EO}D$ctC?1FtX4_S$R3(4nl zV@6R|U^50cA+Y0?GC@~?Am=S7em)E|ovwRYod**eZCm9;t|d0}SOvrQXK&?1E!{y{YF9_6rC{#CDyZVM0^-xbFY3tXtF8*^A6?YYlaegO3!v!{WZsq#N zBqUV5fLE?Io4@1i-x!A4CK8^x=Gg00bu`ed*-!pbmr+1`b6b+fOj0Q3sxaZXW$v!h z+UTdoX~U1|;~BoITHnXv&j5N5oCwmf_e zBkc%YU^N2XVv||(v959r%QO~P;cTiT=4X)5`$F3(xCDs5o2@hPF~}+dku;2u0w4Ye zghw0rNKXKRR);i;7isW2?lx4IO7iGQUI{ zyQiI?R-$#lJvFc6IPog@nG@Sn2F_`~Q#OG@Nv!B~zv`YQLnIEAim>;n>lyeUcYF|N z<=9e*KSWG&`jE0wS+Jg}mLsns9mUN*XI)UF3;8;cDezkMSGqvlDEd}&$?6;3E+F$5 zGxLZ{LQXTr1S)fg+{>d?Tt|2>DVEtKq_clb#k{I7q&S-+e2_rf`GQfJBE52RpeQ1k zrJeS6t*c@ASIqXJQN088MKc)NK}5O+Tqxy{-;(9CS!A`Y1{7AzB6aPYVv$tUd`pwo zi0hC}xR|3zs0Vo8scAv}({^Nia0bP;bdkVt$OA7DcVUInNd&$h;5M)T8?lW)YJ(K% z{2of`#w@g-S5E$wBp(YPiUM7|G*6M(uk1519Xp%ZPyAkDPw~n;D;D*a0g+ZJa+oVl z_yf=MAp&%uTVRsawayumDmGzpaxb@P1e zloTu1mapl;g|!po=JE~t{Ix|sabs{ckhFnYzH@26XUj7%_5}?Q09pG@D0#E)X`LTI z+tp?qYn_u=&qsUUzH?!H6HfD8@&G@)G`AvYi6>C{3g-D=$<|zs!N!o7c^Ay9H+ajI z|BqEFTI9vR8#4|hrZ&XTO;!WH@G)ZFEFXGvJT;rD(N$x68Z|}TWl2io4jM%m&R2*n zp*>+K(2#P+`?Ck&dIVlpd^0g!IV^*P%%a7B0P=v(^EFyvCBiczj|qegaGc!PLhE=2 z`))+iZpMRl2_(@r)jV3)PY8P8;v`w4<*M~lP_Wbx0ijrwphmP1;QF8k1>zY1ed2Hs zlqn$^@-eV+eA^5<6mopCA_MRx?RXmz4b=xFks^bgFb=<2m?3PEW9f*eV@Dx!>?nZw zyhqs^i2Q!Wb9*&K*tVVtpod$BVwSu{m~jZAG&m)Rdf{|yhO~l?!NtP^YvFhR5GxEk zOKuTK0Qk{gpkb2u>LDL^28N6h>j7DWVZ#z1d%nnzpfJaxwBp0wCFq5qD`|BILUd$$ zE*4Z`(9a6MEG+H4R4l){;q+FS4BT#7?b5*x^D;VV5Bzl1Lqm0YDffPNp8Db7bBAcyOG%%@V;7JLeyc2+d@W9ycK46^emKgWD-qWgre?UAH0on6^pGn;L7WA<;X zZwgBFm#*B_xbH;GifvwYK94`N?zq?ZG10RyEv)-|!4YcU`Jc7YZ&Z`(h89I6i^D3b zIxWmb=t5hq_YrNM?(e^_db&oZP?&LX{i#b^xA!U1o`WW__L`uOA`g~r6$<3Gr3stv z2BUw7{k;m38MxdLP;7K=&Q(dA!+}CHB|@pHYM6onSnJJ=;#x{bnWn-=&;5yuhs&;` z2PYnDm`7aQ+fDx&eR&%8scc4fUso{NTu(dQ8xUBdCH@w0s_j_=!L&=WIRTwX^t;>| z%O1)r^MRDhA}0LI(a%U3zSZH*ElYJGAjo@fz{Wvy5e7cNn4|MNIrlv=N5WW!oqtA^ zKP?LyR5rAcL0X2RQ+8b9{^aYu3s)X_8{bnXmQoB``0&^Q3sy6+w_Q=21$RXrk;<@2 z;WPdvQrFu^OHf!WODA{_7w`5?hT|`eJ|D)n6FPD*oT9FL5V+Tl=`?Yi%tP#1yt1EI z=1t4WltJPS^C|{z)%0k&b~+di*=o_TpFHNjQsnl|R9ztEXc(!ipvgpQwY;%%1n@WI zlNAZ`Y`#etU;Gn?{isaoC(?hl5THTnSn)>p_5Tixykxh$PCmZBL2&7G0(UTD-K$1tX{fK~A(vHq*50o=m%dzCGsW{gGZ|Jao$K}d)#L`q#a{3?93l^PzQJ!DY9PPRfQoYZiI4 z2W*pn4E6afNiW>`Vdb_TrAb2a-DP>RajU*~Yc-rSO5L^CJVl4A`}(%YdduH7wT7QB zKWW;0y!r1#E}Z=NM5dg zG9c~9CTFPE~sJ;n}urD^+7-@*gU{GcsQsv+K`EHxhRq zo3-^_(6%q!wC9Dp-$(69y}fqn$Cul71_X8mDeDy1S&YrAXN@M-?74EaZ~J?z?DSRi zzho9#*CR>zxV`(u&VPG-VCKhcJ9uR)zBwlJrLj^4OBVI{?$(YK{iFi_bs-zp?rW31eF@!3pC+Nh`*?4WVdUir;e zL$>YfNX0u3uB=E*-KL?cnNETW@1EJcsjYjf^@885Y}(u7bY$`Gr|*hFL^)lomO|IB zLODN$@xL}J{rka9@5@q)n$))1#`KyOdvAW!u?u?|Z+a>J^S*nFp1f@ATb#V}`rc

|~tbTxM1e`z1|8??MO_~@s+O7B1YSpfN%p`~T zW;hOrvC6ag_SM>gO7$*#U;ekus-OV@RlePT6X*UnZ zf6=*IB7pYr(sJ0^sqXC+>R8TT9M1ue*^Lw}?nv0QUI(e_-bxeomnamEB4Mx{@__Fr z*F11jJ{)?8wXt7?O?9RESqOZLyknEV;&-;vB}9-f&O%#rg_2_x;mza;Xex}ve!S2M zEiTmmh1|VM;=*lL#om2QJN8w`m~?e!GoJfWzz0w;TQxI`^V=XO7|Nqz0Az@QG9ghr zEawZQ?s5m{yL_b<%Ke$Uo`vV?XQ>rE`bP6$5#|`K#v7~~TVN|xhZ0sRjD0OJGWS$> z7=i+M7yTDMoQ3^ks+!x1X%l#&5N=F}Ka`gf!!q#F(%;R7W!%!S9^-6gHTNy+VeDK{ zErw&iYCVPaB&AA879HCwR31jf%b0G@QV*?<{^OH_34aIRC*oQ~Ks01lA7$UYNsHGD zVhISPY4s$S7JO24!91wcW)5OC{<-p-v#m$9VM`V53wcGXNhuvGnj=xEUq$bJ1eRW2OEra z1`-6i(TlNv%q=G!kCUA2*x&8i9R!Ew6vu|`OI|gRh)>?=ug;`+ZHvrU6Z9}C)UR`e zc)8t|WktvKTId)a9?ka~)!Kb8Olk7Yp5M3sLxJ;&<9@97|DmbY)^D2&&PIMx4^7!A z&5BFPzFw7XPYo%5niIS)oae<`oAYyeanvB;mc^?c<{RsmBM0@rT9;j&4x8|ey7WAg zQkHS|Y;z)bAvigHT{lg!g!A8oge%|G){T?lfIkHLAU#Y__t%ZFFBIQ*vF|9#%ek!~ z0=qKfw(!d19i_~e;Vw#E!u2}R#}8pPKI3*qsU87-sHOAIZj`_LSR1Rqz=V>e#ziSz zVO$D!=Xc<>b|XD800lnn3T@4>pt$bdP>+~ z+(wH1u)`=pEB|TE1uqcE3qvJD!~DftIsrN{PFyoy1C-e{fo`PZ^22UCf9^C8BV6@P z+Bz*rX4`ms3Py;#+_L(-LSS@usskN|UE)Ha!gHS@=S&+32Y07cv+C+w&EsZX8F4B8e{+KO+d&VS(HLyP?P({-zhV zc}~?0K+XXA3Rxz27GS)v|J7yzBQ^UEU!?XB0X7y$`V1t@aG~^277iuF7m#7vS4{ak z@)tLeZwF0T?WPi6tAwy`YcZ}-NQ38tDPeaqniS-dmJE?)otW|zT-#f7dmnk@_r%-N zgzHy3!Z51yb664lYD#0iK6koiDNq+mr}5J9XcR294ZENtb5`1{un3(=(C7u|Zt zE3PbA7ftx-9Wc>#RqaVKA4;~ISe>Q+hj|96)0wT~6*UY$m*6`t*bx?GFK^ffVDu&H zxv`a1DSixxHRlyRwqs+U{ehAF*Txi+99VafAs|>d+aIOJ63dToUo5Pa)q%b8(Reh*21ztU$Wr@+)C@*k?!>t z4|Qn8569{Ru+tJL$1Jw#?Ue5}{87>(fD$|8H!1X7zH(o80!-K8k|Gp*ZCBa3vWz1) z-hq@=5Brq`E5E8!*|jrCz!&cnBgfk=M#Q(%?x6Ur#kf9KU*vDPiA5C74HDag^P=x< zg>onIo!GzCVEI9CNaa*jkL^%LGf1hDK+iH1i3nz zG#X`{jK8i`|L_VUk|nnb7)&hH`DXrs&OK0-DwdM7Ei%t%zTL`CmdpNiyW(}pUk8*Ae!F?NJfFQgIrzo`1L1G{z@wGtpS`&BV@w3V7% zAN5i`E5}3qy2>98QbEJUBXug~eu+9e*flXXb`~!~WfmE7Z-TQhLA+kvo%OMM-C9_y z5?g!}fsS2DM-X1ya_EEYiB*jt7qOg-l?iE`a-EJCwpV&kmGuk$n{9WC%-Is>k(eWA z#h87ROX{27uHC6nsW&Pk*lfHT>}FaW6X+2TB3NvDjLDrqnY0yt?U=0 zr9@`Pl%OcpgXBiK(3;`XQ6Py@{lllkd~xlxgGnn!zCXb^lP1jglS`!Mm76`i%Znl% zwp*dp{3-wZ-4{_$=i)Tf#ynk9wiW$+74|f;l|OouRX$5ET2U7E+@sY*awnRwadtoB z&yr&oUyZQB{IVm7wE0)_OC?vzzBf4zDy>`G)|l~U-e;#otNn`x-Vd&Tv_@e~aoAHh z0zDD`fu}9y%_sbN^kIH<>$gp_sjX|DyQ(bqEvNobT|U!o^5`g+Zy+|aGa`rsmhTj^ z4Ch8w3-q>fv1-ybl+_z2E)q};#X1;OJv;Mr0*9}YLAD%MkQ|231!C+VN7T{3z@qc5H!XgqxYbIO>L{ly&TOu3FXlJK;V3EX*qxB66TU8zBsz$*qi%9iUmPvx&@7T6N&_)n+vJ#W zI=YqOO66Dscm~l-EZ@O-1CqaogsdW0kUU7Smk&l8d3(@SMfEQfM~KB?s0SM}40;p0 zN+$;(WDH|ieWd&GsoEBNS;rO{HA5{|@}yYG*YXxo9B-A0+Iq+n!0aMZlBY34CEBVT zaQ;d{nU zBE6c}DR&Ubl`BN`pB;lrzf8_0uLq_W9f+~qtqz;2@9Q!ZRoz%(pVWNwNMN04=`&l- zru7WMp3-UC;6pZ=X_L_p(*4L2w!s?3c216esev^`45E!%+Ly&X&25@h4UVprXZkeO z9N{U8np+u;w^BOt6;h(_Lhri(1{;olEmIpN>|j@vQ%5lDll1}U0h}ji_?Hmm&7|p- z|Dj+y5+7(bP%|;_AVB~Gos$soKG{Rv`HF8P73+;#iB|b~YDLR^r)*QL-7~_baIz{I z#>akrwYM@{%Fno6CEA;uDPC(X%?VPP6rNrZecdt>*iO1G6dyAI&OXSi5!ivmQF%U z?fe`|d=?Ig0nxEJPMXHbPlDrIU^kND-~e`x9ag>SR}t?qc=@ZgG2VP?-0 z?cTu(;}zS5@7dae7nO!W2=2;{+Y=&zHs-n3c$fJ}pmh%29{qWrKMmqKVsyvcx`|Cc zH-DY`4@Gxb>0Y!KTIz(qgEe29MqzC>?$J*mZ9cgAJ6k*F?zKlX{~wQ7aK}JAV*j9z zpSR5_RQ3&JO7H0Es=0w+T&|y%<0c&F#D}}!1uIJ-gew}a(h$WbkD0--(LXZQ(u>6t z(c-hs;KM8(8tKt(T~Z)zZUw*D6d|M>WRpb}FW+3+*B{p$P?eM$8iF$$0vyjfB@XxY zo&>A(H<<0o(*WBGZy9Z0C34xSAo1z#`J$Lu>;d6~GQW?iXm9UN0Q{5t1H6{()^lIO z(ef2o7*%-hHz^%yVp!O4=tlD5@VTJaeLMVc1*-OhXOIW%qh4SRx66I-p$`6!P3oQFvDQDop3%onfx+M?2U`>vW zQw}w<*R*{nJ`46R?6y$&Nw~1EDcl*s$qlNaVH4a6or;cQVMWtZ^ z$Rq9&1ynaseJv*ih6(_<(I~?8pM8h>w=4 z`+0s$zU@mnat|-#!;3Ow>Bp)0;%?U$iO?NO4kgLGY8dw{AKh{FEKxi-?+Jxbs3RB9 zuzG%j3t^93m#ihvz&>Ebhly4vRWawBAXzHfa+_1Mj2W9e52_=%FU4H69HM!PgsfZ_ zQCnaW1Ez1H$r&roujT~0F!MC_>b}U&DsP7>rDcOk$8vVP zmzD*NS&G9dLBrGy74PDN751iOJ{+Qc?gZ{`y%r~=q6A&*2+GkmEH;_eO6rV{UQ*h{pFa3`~w#~ zeWzJ>eWyk`*NSfa4V|{nDh2RXtqnQjJr6V21y#Ih8_5T?d;khKcA{o&Dx`!-R7H(%X-Uepb9aBnVqOB%{nV;k zDZaCU@m9x&M*^pZAwN2Kp?UFcla1fb&Y4ALF{8na759Tslh!yZ5?2h7`%5$}m<#Su zQ9THF1{34}TZ#73M`ZxDjLMm3?CZsPZ{_x%wK)cHX+m+G%7OaaPJHZ6m&(A9XmKAd z_=lAD0^Wyw<(@tV?0=&g2fu-Ob()Z0~nO zK|%JYDm)*~ZY~9lPg;^_{Uhd69P~Bg3iO zK?qL8{}p^w`~Bznr*{m0s(oC4bN_P-f3vc*e=B@WP|m)bpgxvFe({`BYyLI$;m%Ap zbH2fGC!IaR-*{z_gLumJJ9OhS!9LN%dwQ7O7FZW$*wXRrJLSP^nhOOL=yB6qY~K)# zKWmt8b8C;H1Z}!!^!mP6;0(sM7riK!#(HeA656Qhv9tgdz>AvbD&LA^?v&L17G`k7 z19L6k7Km$mDLxhn6Gj)Vq!U2*>{Qv+I0icqDb9QU(qe%_bHT?dxSXaOFaZwIvDr${ zjHuencZ=cc%Y(Pc#3}{ymyES=;YH-H5oF<;pJaq{zRT=Xn;8FO=)EDDgw4PZG&4f9 z)bX|!PZs^)ExjKeiU*aATUR{EbgEII8JPPL3#5?RSZy@mQQUxSeo+ioP|-szp2fQo z@)>DD)ByM`H*L_!#Wf)V?VHvt7cTrC=E^1iwDB@I)2z0j_kcMK34z-S&WmAgH_V6G zpFgQBXbAd`A1K9w9Y&obgv|^DxPhK367cbqo)~ogNCOSw8hiOm%kyCh4Pht2k+&!_ z*b#{qqy?H)>!GX51$3M;GmgIjU;7^d#0|Zkw}D)2|2c!NgfM$0#C&RwVo(>t_~VkS zT>!?l!zR{;0AW!KO&4kJKs|u65oteW5g)I*b1+rEiG;l}w3xLZt6QNJ%x3tO&fP87 zGzBEcxR{1ZAN@j1RVd^4^D;lN`sCgej}pEEY0-b4qi5s}4SOJYfr?V(WYjc-OM@-a97?4eD6i1~2F0=sP>WNk`<)*h@8_#zn#S!cNO zB6wzJklIIrbp{8s#yMbEtd40qCgNi;^CEwtmLq0H^sh-sckcp&0t7`?oRA_vL_Nqb z(gOa32uj}QW*{z$@tYs;Q70w|ynKKWta2+Cef^`;hEUxD*OlPF!r?&;Sxih}27g=G(#saK9J9+7aVKV2yRZVeEm&1lF#MK@)V7asniuj^SnHeBVc5C`rf%^NAeghR8{|2HyN>zK64i&VfUCKNF3p zq7bHF2e+&Ixbv<~cgMU8s+vL)Uqi^pvU=2Zo47<|U@-OGR@s*&Yh<7`5DC%(-=4-L z!&_abw#oURE`RUL5gO`+v>0o6mj6?b^18R3@C@%VSn-B(L(GgFuQ-v$(VYoI`9<&l z%us0)_W;SQInR~#?|BGEDfGr*WTmF_=we9sX$~P;)=qp#17#*|7Gl8%Q|gFT?{I?) z<2PxAHyy%_Rb3Wy>oOlvvC_2Z-CUgaWwu(L3F89T+#6Inq4Q40-k#Fu(`-yow`dE!& z9kgY7#PSpki z##yil5c456K8c$xMwG??)`Sd%LM$l6gQqE;@dU=pxsWFy_QlxDvogQa+8D$_Wux(E zvZ?~#2UshF?S!Avd=mug(N?_C0zU(=8Mp}q`Ry}UdSwmV_JSj4r!Yf&y%1xhvCwqK zG7uh`Tr{G>971b}@a=Zotl81PMy7nv#c|T3kmLpm(+wV{S#k4U@8?)+ibCK7*^juJ zvBEe*Ih33z$25MXJZy^KJUx!$~`DU=@UdVW-(v5J(B|;a3_jBIye=MDOJk*IF z|39D4%$PCb7==+I1|`W=E3}Trk!&ZWXkDXH+8mSQDD)Y3hf>?dSJ$YvbTOr!!OSv_ zN(h~fF^qDRGl~%Vd-wbO`fJxC!hGg)yx*_a^SOy$Fq6FZgcX`|>N{FDd-Dk;kC`8* z7VHn|ud@^$UdZ2&HKthl z1BvP*AP}nKoY=?m=RTPHBRGBHJ@JI6J+ni~%_(cgto>X4}Qd9<|E}au4j!+ooik^+Z zW?ui+%3L2;hn5mUPeWhee|VBrnq}OKkk3YkZ_L5a( zd)4;ZgSv)yGfo4>erYYoL@B(49EzE0y17CaiQ9G6DLhM_-X24rzbFnhzqXY#9Yi;X z%_a$Uz%M(bU5zn;G4hxkto1lNG3h3VQlY3%hSorL4maVK<{+B7krE2DL^^>C0XuqWx-TsK2>|G! zO${j#*@SoSRF`oD;JSc~aGoGR-k=W#uVi&ch06>`nSdcNNx(ws9cqjYDkD%unV*Od zW}t0EOsmzkb7q_BZ39mV+!LY=YCaUc8pnMs@#>=v@*9Z<(eW^$rB?rPsNNwdrsn~7 zvmW$`8eKN##4*%d_!-gbOsE8^#)%Hvrw#+2{~Y^f((F`9+S9HEcsX8aZy^=eQJK66 z@N7NJRG|>gJph^!(p#$@AdMo6a_<^|C~gKGu;Or}z(J{w8AEVz(ELQ+ zdV&dS^`(J8^}oho2|djdH4tq_i2*X44AHC!xGs9asz-m;`A7+c(1SSn@z}Z!&4dGX z2+>la8;ip8LM_5%4L8cza(hPl*5fn>lUz|@`>MQDmcj`6DB673>!OK*gl zHZ{YV>|FRnSCxsEcy`6@sw>K{Vow8P1I&%6>JRCiQ2KZki*%yF*)_4bPtAel+EnX} zF#?LSHOgl3Z@f7v$$fSbPBJFPs`4)}(0%H+5y`A`)qn6ReCUOfM<>yifKUWGs1-Bl z;kjT^*q{R#56QaC4lRkn zLF}8&zFeR$@!ZEAin@wF)9VS5pQt2NDchT@ZW1WXCAq%fB5eJYl^bBObaqf$>J|2T zUhsikD}t*`t@lstzQlRvWMSmLkJVjva&imW^uTnUcC~!-k8_*R&jk{n_{FkFAgk?u zzIDt0c4()wznv_puF#qn8hh#NR~~m-UaM<)dsVqTVljAg3H~x^{0weXW|bNY=SG)# zPxwW?gz?zIAe|9>^+>t>2u4bmK8qLdgrP6i~!39 z>4B6(c4yAXe*FtEoig}_B zyLFO>ox13n&9bAmt=-7zYa{+cn*G9at`pEk6dVcP9tu!?+)t9%X^s&E={ZMR&iNJAdlst)3&Hw^!sXJxh9FkYE(^=5m5lW)_#bDlWs< ztJuNc-$~E*w5cQI@=otHHLNDTCB|*$OyO$bg}C>DaS;)F10VhCmj3EPTh4Dwe);t8 z`epB30^^UEex!UidsK7V-eUDDSeX0n-kNOF`M!w!{#jD$?Um2|IkKp3>UsT=mN}zW z2}*j5S;>0+W%un`7M(s-lv*A6av;m*!mo*Y9x7?8ZPD6G*ipEy?B<3T@9z0mXR^O0 zzHajPRJG&uAJe)-dFYXs<^U8 zHw#3GnPw8F{EcpDSO%4rZJNr^#Wk!~mLCzT1;UDH2#dTjy}1dx_-a&fK}$%&Jg?Z^Slu!*PU z^EeW0(ah8P5awEfGC)hc_aK@nvT}t90B>H#pFLmD+QP$#>Dt2>Gp&^l=wt0>-eU>=kEcaiD8; zzvK!aFswpyNG``wW`lYIZGik#`2C_gU+<6t?vLfO==CP#ElCt3jh^A{V3ralD2U95 z6M0s@_^>H zq@AKLmza1oS8P**Bwpi`u#{w@614=JoTo_Q9N)H}i-L+y4WQOqYb~g~35d|spes?>8LX<=!Uv|?G3ev5I6C3%z@6P9VWz}R?5G>!0V^AtC_8m(H1&HnK*VX4TfgPxDhz@lc^ zs$kkjp~BPJQXF|jd7-);giXUBW9jl;L`81aYQ_@IDmr3m7oO@in*~SPcAA;DQ390x z7P?r~q?Y>4OAAk)^3~R`R@I4|SuZbMdSZc4@`V?1=AX!Kd!Kzhm+tgtaNV1Vk)TJ{ zYzJ&^ZF>E=+Pz@$w{uBNrp9_--yGbS$lAP@u>F>%&G?hSDhamBzMmx z9enEG$ZCkNslL+j@A)3fAMNWVlZNJ)Z(wfVCb?Cf2|@VfYk>Dq;=qq!esFqbub=MN zdS#v6uNc0-+hhz9-51~JY)HUL@MB0q0fH1&>4k~Ehn-S{KTk2lfkxxXS^ z*TCMQ9E^Bn8l=WS1>m_6i@gC5sHu-;Pdpoo#slB(AvRwX$zf^XPA9i_(QUdss0;hc zkR6TRQ`*WkNSk4qflv*4$y=<-Ap(&7v-0Ief?@z#m+Mb9e?;15QlkvF@n~_PLg$H8 z|BqSxArOe4f%#zcj0=<>002+y)u={J{05-ifz*jII*tH-A8QSm+OC#6D}9;RBBx_9 zkxBtm9V8`d^v#0NOjXxa!DXwkYhO7kIWY1Ks|foAS-3d@zJbka7o#CCE~mU`q$5j9 zkv54Xz_zSc;~E0+rIg1>m#`+7`&fwiUlF+Bbk*CXu>kcMvP$UmX$>6>ES*F}Hq7UTS8!Eh=|?G(g(X7}n)9=RMmmrc;N??yh~w%jKm z1}$Y7zbJH3?E#IuJR18Uoum+wxY6F>*|fD$Lz$M2Ubm17e@aMeA7>niN>y2yEAc_C zjhfUTgYhhTq|*o8Z2OF5azN#2JNbcQ@n2HSD@8bU(VgsFbrw`vIqL12P1VT2h9ygL zM$fqB`h#y`%kpwtB)@on8-4d(wH%vS-q1aTR)hOXMLFK5AGc%?J8$tC`w^wBgaAsK zj^NG#R&*aM>#g@Lo)dKHnoo^bG~Y8i!BXx`-GiluSu~maHhOPNVizFhE-GQCKhYTM zAsrT{nmmO8X*-NX4j7NJCj&K_-s|2{{U?gHW})!@J*2c05)0_oL)|EpUs%8RbM6`X z2I=WwAF`hIEwyIY-)zvU8ioq)r8z~xxZIOIxp1>>73!x-8zDUrv?^6q&GGmC@0-fA zaWt?#AEr^|thof~nWlm)Q2 z*ngw|%d|A5bqBJr_;f_GRW}H3|6uZl%L_K7BG+OAHT_1)zYkHT_|yXQ4_d?k`lK1l zoaRk;BZkT5kchF7d;a=!C{26tG_AQrxfurT?-zb09kY#u(A8a(A8>jyd0ER)iJor4 zd89Nrnu_u2a#KFEC9vCeHTQao_XT^iJuh^X4}=j9WvS+SKO26e6y6e$>;3t@#@70e zI=sC5Bk9t}^hjZ_1t1 zV2TyojPS$HWI{vLTjlTcK@mZb*4L-CRsPC~;o-b#aj_=mA0Q~vGnVH-enAucW55=U zxH)_hI3fFIp@_iM%70+A1CBKJdlBXa(Y>uCEjP2G{mH9-3A(tnhS#0o@(Et*2p6+| z4K#O_!IW|!<6wP*Ueg1!5DnU_XAdzpBJEXLCAS}1%+NWdY)A->J8hiaxH&sDeu#{1 zsE0^W)~sz9rYjNPzWLTeCFN{rzXTE7?6y}847bwi%M_2G^c*fL=6e5z^?t}|fl=ay zkRQB@mw`|FFg0}tR%KNYZAlE6{V1;0<;A-uwm=Q8BlS<0n4vR97d0&JeSb#EC`yu+ zL8R4XB#`TSoR(lDAR#>y(ha_w9Xp*hf?bwo?ozzkv0l58RJXl;XR2e|eqH8R;J3sT zi#sD${Ly=^FjH+RQWXnLZm<4F@h;+9cP@8bWy`V-gIU>G-)(Fb% zZBlym%{x6YR$#(BUv;M~09~QJr`y~{XZ`luW7~N_uC}cU?B;aSo~BDL$jg_dHOo{b z(!7PV5&056G_G963v>QroIzV0GoBUP;d4a)9pKBU~ zRFdihdGiW*@H*~A>MLiNSjK6$7g2B9j*^5|n=yXxX0{AO@Q_m!cEwRCGTv~B7BdoP zBuP@u<>6D<{RYP7O})hJRaf~Yn(kwMu{E%78&;mEArTIO=02u11vWiB3v&5FZ3eFm zY66Zf9@Jc(pt)5GPJD;MQ(0K*L_5iTZ5m7zG&mcq927ss$b&R2J`&5FMsu2wq)^Zj z4OfJr!(H^m`y*sGIK%obY;U7`PvE|$2{|O5-EnlsV?{BeiGKBl2SxSvS!r~QxT+MP zwQymRL52I1gi_RKf2Zd0qE@x+>vmdN)tBJM5fJ2cEN<0z6uHL|rWl8x&s@Sc%eIMU zw}u@ zC_C*Lv@L902Qj@(V71aWKM%_*+0B^ml*caVvqH!Mb*b`>JK*_=ud-%EBs{!4Hxfj} zFPQ)^5q3pKR=n4uHZ^fCxVg_lTFBd_yE=9XOZyM;xq>7l8$CsCj3ry@DuqRxEmf}h z6GB;G1~(isZVtZt^slLP@bf?ZL%y7Hj5oS9u{fq{0rQ)>LFlOEmQM~At$sd~6L;|M zquahGcDV-qC)ng$`H;!I%mO7!h3->BPJ_|zaYF$bK4w`9B-+>>1j@fFsQ zR)8ZlQZwbn*++td2ML*Cx7|WFTMx~la*YnSV;LnhYOiKVT8MoW+<>(rsg}J{_TvvR zZ=x-bmVl$L)S}v!RIc;&&DR`iC#|CP!YOiy7P8uanUIZTb}&RQeo~h9A_7H0By|6w zJpKiShhG-#Svku)Je-QO!H$Imbb8@_LQuH_FFv2^C`v@i&pPMZRNcAaJb_)kR)V_4 zr>BMP>I~e1hsk3tP4p*_wGo=X0@~#mKy~%HOms&fkwxk!H0h)eKBMg0R|PZd_Rui+ zf3&R}G1286DbY8_V`8GTAF+FA+3WaJA?XzA{6@4!#=f09K2tf}jZG&%_4Ix=2-OeJ z6ZVl0CB(p-RNEu41c5b66$0Katd?KeLA@#l3ee9jLF!)%HzVyToqoJ%2F8KmLC!0vrd57pgGr3tsl*l<8fzzqMwc1@v6Qp5eZ(A6s z#>fTK;Ks3Xj?kaje7!)uK;ND>)Jasf)VQg~sqck6hZB1XN%TU!!01|QQueIv07}ONEV0mh%z@GJ^89~-|^-=ER2C>#ctPsfS=ruu%-C8_uG zMssf#bj|FdK~SipgcS3 zGAF(JEu}g${rvH4d;cmJuJ=(buXw+KP#frD>S%IO@e2uJlgI|j{p<~;&IH`kiJugX zOJzqpy`0%?aZdUcilCu(#?xV_*Eai0+iLagC()*TFpo?`K4r-)XtLf+rbV0jYhrVt zI5{boG(5o*iRr5}M4y%Xq_PGR8VhV~Pj~0XhR}$82fOr4bmGqCe=+z`6lT!fcuX`? ze2%+&M^4qU)J_Wd@fawUi0zFid@+jL68ixhG^4HzB_T1gC(Z$@jz?uZcohM&~>*lIHWzAOZ z&^Pg6?UjtV*Ov{Tjbo~P01~zO6-I(%~;80^09oS@*T)SZ< z-pBBE;;+CT=Hy#f@dFD;U@jnN>`9H9VbkvHZ}zjGX=+A|gKcvvK$XAYXg5sw?*=O^ zbq?=gs4Y2977kav$ZkHhhok|HB=ZhD;~Lyy9?aAn>Ou-4<$!1J(Kgw_+OD-k8b#AI z&Wk6x3FJsfmpG0-{!?gkQ8U(G4VgZ5!I+WEiYGb%1YE&M>UYL*1;{ycCAJSbf#|`eO z?)ndTO>*LXTU(y(Zv|w2wxwEYvO#d{J!IBjl-wJ=g6?nrPk0~PK7~_zkB*T6sey)< ze}5ilI4b7sg8VaeYi)agm>FJY`8?29d&&Pf)@xMf{Gy4? zRCu5c>&tB;2`}d=kN;6-8v)OxGi;K8y0_ex6gCHQ1rExZV}By-hlB_UUfQAxu8)1y z!IP(BUh>hcGCtW6l&3$NJ`>3DP|atMJnHT)In>EmG;&iDV99bZIk>mwX^3ukTs zqeW36H>Ks8uolm^2ZH@^Cmc*^Kp;5i!L)2^VAy{kKhUcmDIu{!W^Sk-pj)oHs4a!z zYSMRJ&e3K92l3!UwJJfmdcvQ`0(l}14%?v$C=1JC>hXyHiJlx{I5AyxWkPX->J^1n z-A8}grKb7J+Gb|b&*AGz-n0VQV4h7D0xOBygLvq(tsFTR5D|Xe3!DxdP)35aAP!;K zOq3u9C{q3v4b3=Tnw{Lh)f{eDztl=y0&A2wizZfK><&1J3{T~yHN`PwJ5*#-h~Ez} zP6BaNFS%NrtNBjILLbjc_@6TV(BElRQWSvcdoVqi@BA|C(c?wG>cNSwS36 zl^@>4)$c%%?J7D520{!3(Xn7l5eAD3=}VLa-;ouLXkggiDQTT-qdxflkaNwHpMOo? z7jYRwYY;SEn(@Gt0b1npY{=zm0)Rq58O7cj65G{Ca9X1-#A+yv@NPD8i!w^ap2yjR zoNWff+tiuUC;LC+^loTXz*xhe1n~!za3Y=j)1bkXmmt?2Utvt4R5zlZZUgB6c^`Sn zlt0xT+Vz1T?7%0XR55j;fjx1e0U@g~C*gE*=dIfH>2Xxw+L4VGUtBk?+^+ta@Sap) z2NRbraOUvlSSIGUlt@f=@&v(1+J-u!Mfn)ER~#6de{O42aE!7g<0#@s*u%Jv+Yu-O!*UlOp<;>y)}oG{oSpxWGVY@95agqaE{t zwJ?$;)vEcV?a2AYW2X8p1b>i3@v(&NtA2HAl-w@Sbl|(sJ_VdwMTst4cUT0lH*NWn z>FE_0LD=XDFdI96T2mwOmv}5+97<*Pg7P?=gjLt6o!30w0iH7Cv+Rj631S!v>on79 zN#pJs7%SXjuv~CFQjQw$s=x&u%b%o(mwsVZnCD))CXuy;>&Qh327yW0M6i3?8PsQ)EHt3Z0uy&V>=(l9_& zbS25)j9&{}fhr&tCijYRSEr=Shx4)CLBLJ1h^yiCMUW~duu47kd;>Ba^ki0i2_M-HN9kEgXn zk?Ir$0ni}l(o1wB;KF_bHmW%6)Jfq#-#de{ zAfkaG@*qNyC$=P?9p-ZEIIMDp!19QZRrGj{M z9sR)@>L6dCj17t7kobHc$9U)pllTU`<*eOG6mgO4iJD(9QpoY}b5O7a6+e@--E;%+ zZ%p4H+5)W*3O=&QfG6wm?n?|8xKuc1c8t#Nh!+6?|ya#i89;aJKuAw5nyH~qjd)3s%+MOVeWk~;d9%<10 zXM@A^oli2cQ`vH7kN5clhRe<#2{d->cR5m9{L7tz#=xgL^%^|-7u9Up{97!gJy-Hf z-8IVgalOgK{a&l|%ojIq9q7s%Zr0fnd-g8@5FTeIJJW;^`muFk<@aaI2m5=K)7ufcJRug{6s3x z%P5Y##QK;hL*a{ANDBf4;INiWr^o;yED9x+fvW)Fme1a#0JJ1QL~7C^&JZ|1FDc7 znm||ii7_M1*;gCVQ{9^cCZ#tYqa^EXWvJ)Hm7v?V#`drJ8<~yPVX!{IkqP> zAgR02`mfif(on&9vk##@k#)xsbgS%62lc0anBy+YSoERZLf0>(uRFbX&u`26LLXi_ z+k2_qcYo1B^Pa|?n^bBhs_YdG&vG_CFVlE(sO{wA{%afC?mKIluUe~|G%Wu3^^E+{ zr-Qe)tSGU*T~&L|WY1oA;#&i)juonH=Tw_zJ!w?|X#@5L!=oPM`F$#jsulmcgP-=< z?#$lKGf~xF&qe7vSaIeK7cCPz-2JdkFX;QGz~jad;TyW?k6*0W{F=FXo^vZ$


q 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 z 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®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%0Ax}(?+yuPI!?Q@ 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

PgE}0a~pi^!L)#HA`ixQ)n>w=DjP`(ij3)?HO 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

p3}1yoKE`MA;;YiAfVUmU1n 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�DWF(x6=sV=wFTn{DgTfs|@tOB-g;9imSn25( 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 z zLPspT$IC_?Q7CYSJ{3_7l9Ld{iA1J7e`b=6QOw`S3Su3$!tjG4%bk|6e90r0ptfn_ zVxtci!X1^OU*|?AKUYRyXinx%NiBH{&%Q9lDVkYTM8ew9J30InYZ`UNRE15)qGE^= zGHa|BmN_?DP9kDel_8$9nn)JSQF@|!VOOu+lI52CpU9rP#XCQ1B-6ChK}l5EDwa&d z`(*;oB;G|mnb}vXnL9Z=Yn4hoQT|N+>4iM863nb)i4&^HF_$c z88diRR!p>;0fSSn^hBXYwhxI`5;>yY%QXS~6SU@}-v_3| z_L?Xwaq4p9pFy(u^8wimEYf1w{{R_e=?_N)MDT$KY7LKHcMN1m^TJY?^*7-0P}FHK zuMoZTjBgXlU&s&#_Z?GD4jEef@Kd4Ul^sBER-5q0FS_O3&FA}Gu`Ev&;t28p0LqW+u;SOT! z8M`9INk`3_C{10c6h<*fj{Lzya79a$RJiUXCA^``NU0jQd%`{^C>AvYmCRIyAPE~w zu%H&=!s9{#lBh~e3Ze@Xn1qGm^kk$xg~bYiZQ+a}NNH^hTWb|)x|1Xp>aUDplorzPhH9kO zMg|J572OCxMHjJstKeWWQ@S+2prQU?rb zp}GYY36ApL_kiOsF&neK01--|Od}CSi)JNlzU$%;ZP$kL*R~*tey?b$Ww`0?xTTCB z3(|~f4Af(vX@O!G#xzZJB50c**T7*nN;{ zt<}{L9Oo@pngA^59TgQbeKNdOF)3)5D^Yvd$~wPu*~}5x*>FBB;tqnUX-=$CA2D&u`=jZM!PyHcaFL-=4#?&I07P-~HgQ67^Axf9 zQhwGu5&)WW_fo>^xz$k^Qd;>%_ZNfw*he(;}U<7%O*+&XZ)DCEY{OnBE6x8ImFVn=ym4yfgXAQenbYNM2N zoFGpo$iN{>s@)K>W{vfNIiOAEfrU(jCwVyqacu{(i|PbgF4|#mEVm|1+(EpwmO%NOD6vWy^mc>UR>;ITi4^w60kd9m z-cpOwGO&zj7}Y``9NeKCfi*!mZv$bf?Nk|2T)}v<-vWa*HC-42t7R8NBW3kQ{{ToS z49s0HrszN!sjjGmW!(sZHxApwDkn1*Qb5tGU_7SFeIXurLXcec!U8gpm?9MEY=~Vk zs_4c5CQR2xFa=d4Ezk_3FscktWvY-$D;w^*048qqX%Ur{%({Y@Z-wC1zjQ7NGO#hW zaD-R3>%%J)V{U*t;dREmET&5n4nK4}WC?j-SQuClHgLeP2SiJVWZ^~OGgq!)GT#_GeKYUL*}N3 z5HfA%C0x0T=;O!1@ksifGO7nrYKK;9xPz%9oYxdQ)deuJluRpSdnJJGiRWe5gqvDQ zBqrO+A1h-gyf{P*VSK|V)~Z@|Tqa7}6B{vM!V!decw#0>$Yj>qSo^>aDrr35;r!Fl zP;>c_^K9)7lcl02o|0#TPV79UFWD&O^8$6~-*ETg_-Mn1-3Eb*Pbq}5C|+VIJ0d|# zR^pA)H;gmsBDwP9ZU`z=S;Gk>~M!*$?oWVBF~Rl*`^H4$+1b!*!$Y$Q+x} z9f?uErDgUJN@E2VC{Jsca*Vu&=^V}2lNZVeEWUfG2TzjWB?fqe8KOB!aI>d2%Y--F zJ3w?jU(k-@Xjt)q;&10iHG4FadAFr1AN}<<$1G_wEhzs0GLZD2LIR`smwIi#<2NPy zgdTJ0IAbN!me@iOiHobWqx{lChChmX*x&5pWM$3DNbeRHMlrVBBR0vt5HOWrlzL~& z*fnC+!w}(7Cw3tCV^kv&g3NOoFt`W?uL7H4L)c}y=#&v|JW69m0QT3m@Glu<*mR9b zK&&Eei~u2wnN1TIIBV;=Foy`G8+L;@bilApFcoY{Z-il3aZBr_H_#4<7@2s4Wg*JS z)f?rwu?Cwgl*Hm~5$=IOXun{!BDTmRK!t@dj6#Zp39yEUe8r6b&R7sl7R<&9jBdQf z`{6pdO|2ylWPJnfil!ye0Y>=QqNGFkv8MQNfMp?ZV@ySI7wwqQr6f)nRETfESgO?( z)cZndQ!0vI2*9Dj5)}}FxeG)=z`8JPmD^Ln9%JNB8ZA;Qp-8)q8bGxO8_<}m{9*3}Thc06C8YaOV)|1he~fez zGcDJ~HC`4*#Uw5~H;p?SK8H81WB#KCMRcsl_oJl?Lr13lU*i+dwK`rvmlsO2Gk;i2 zL9En>ZJR^Im!-ZXfR9(he2cC-8FMnk(pH?~lKRmzklnG(i^4`;6R!)>4lBK>JNbU; zypX;&R>^Gq!oTl<7x08>g&5Zx5oM3*;j8}mVa+Q}o1qx(?FeUJVjB*#VZd{GyuVk_ z^nG$ap?v=Ulhs`mI$>H(I%yrvnVs2&QiH*f-IZo*8?#Axeeuvkv1?f1fa@?`2S9 zB;wL$(Ufr_=SLz>@R?0+F0rDc(;no<{{WCCrT9x*l)Zk7Ue)NoC;Or2d1Df)-)wUW zL}evX7nqRC=#H4+d6;_2{U@TEeiDlySYEb|Z3+hb)(ORj{{U3SMP==ukwjyU$Ic};-(W{|7lr^uM`xDR_ipC3({Cz>dlE^Y0PeopF>M&~fNvDULk)9Xr~ z!Kt;Mc``9fQx;aTCsK~ljYqORPAj8{Ikz?`e$el~gQh}^r=&}w6CwnXxHsNRO2d>c z(Qe-h5v7Lp^Izop8KmhIl$|(F;UfuT*|~gLa|YyCr8mAZrqND}Cg>$ykFw8_Cjn0_ zMw0&kqa0`OolBFL=+e)t6%2{IEK=m{mV=L;GTj@ra@31KcSQCMIn-q&nny&jAq!J< zeP(shw?&I)j*V=qlApTKB7VsQLHZ_WfW^ipkL9SJx|-^cqviMF)hc?agv}Fr3Jb>4 z>r#dt7V^^~RQM@+reD4;u<;hi&(<&=j(;Y78(X37hg=k=J&R30>fSF;?Fu#e4`_i! z>ot%%b$rX^%3s=ldhwivADH4lI$bk-bS%cVDfPQoZ~fdMQyu;hxYptK^Y$!}gONLrY0IYGguT z=}yonPtGr2?HE}lr*4o;3`{K{tgrQqkU#DWyEoDNjpK_S{l)(P>3;{Jp8gEo87ISP zEm}qN@Qwcff*~*XF|1BgwYGMP57KNye&FH7=`qqZDvDckU;hAd+W!E$3rnSUNY+Kq zYMDCzzFgn<1yp>QqsDDgk~<5}!Is7H1|w}FOp!#K1amB}{{Rp*DEt|dDH4ZWrMlNo z`PL>!_slW!UYYuNc(ZoT8Ch~u{VCHWGyRnZUrS6qBwZxg%q6x3L{#CaHy^rToT8Sm zLh*8v%C$X3W2P=_osMTCSh~)p+^88+n}{g$We!Tpl|}Z4n$4z8ki_wpM!~3F@=7dU z{6Nq0gwrZjW9Z&McV z{{a5w8lU>RN{8?WFS=S=NkdM%LJE-lCNU@I{{XuY96T-CC9Wf(=uJ&C6RKiT_k=$I zx305G6Z->&wdt2UDg@VbH#{f()#56LkJD9wKQ7Tdxkvhz#87G2!R*ZM8Gci@9!|+l z8A>$@!&ylp%9&NLm#koLW@AJ#K* z{^VG-=`*1h{5IZFiHqN?pR_>iW7My2E{2I|C6+@KblRqRc!!ZXOS?&T>FNlW?91FJ z^_qHe(H;?0Z=?$>db=vj5=_BJ=@&#(Qjq7hmN`XxC-94Mm?MP_q)QVMq2fMi&6dSN zVJvv3c#6~#z>JL{jX3U$G?HfLF_1vV`N~39bzTv z2=zQprM+q$PY=%eH%wKSCPtV{ku6x5gdL-xJgdM`J8LX~;f_b;InPh#zu_IaX(%(6 z-FXPAhT%OTuSC`rD-STVj}S3Goz9u?$X^#pOgeZx8NyD{&&2T&oK{kEFN|A0yeb^lvaZPlahphyLsT01&QLS)|mBvE-?Lc)_No(qb5w z%4Ci`r$_z~$1WcVT+Y8(mqPs;CqH6ZQ?zaUqcZ;hh!VDP*BXpFLn`-~n7_U#)SBrd zjuJ^h3Ejpxu6aAsJB0eHCezw0p+2dD)TgY^p=mI(Hue6nl2gkzT7Rw1IQ^>ViEV8f z#&TKRpT$#(qbgcQM)+H9 zh2e9S?#SYkg-ni-Y^^)-KOslh5vQItJA|26F5Rz{Kd5wNaM>`xf$|WPz;j&^)T!t2gmRJT%Si8sf=3+x01+EgTQ?G`P*zGM z1rv%j8_YEAEsU+iE`yZFc*li93_YuCgG)?{)2Re+LW67>Dc!oWQsWfQR7i#_a+2*wg^&H6O`mW&pGwUa z7B?w8Q6qOw(O=*Z+0UU55*<#Wb_pMQWNMG13&9QW>eW$G+#Hf~(r-tHCG2O%QvU$^ zGQYqxpUM`_nl%!7s1@Qx9yWT zFqDIxo?*MS-5@2?Mku$I%;LHGScp-05=iBiB6}XllO$$t z$fQhTZ1Rm4fSJwKQNpB+MlCTFtXup=1uo+#)H1lJT>-}_YIP!{_AXn=D1BlwmL^%v z68&RSx5)t7gpZN}ndE6kQ{X(OlXDl|4XI#dif)Rf{?KX+m?~k<^@e#2rbPA?kqy<*rSRcqe0j82b&5o=I8jBI<`$B(- zR9I%bcE`eE&vUJ#IV03tDp(k)odTGqEJQMB!ct{vQZZ1Fhm&yEOKDQh$&U`xByRg4 z^4>h2(nqY}9)~Tp8X_xJ_^cNxX*F<8;m+-LkKH8Uwz$3;M^3DR(X*lz!xak{Z-&jI zJn5u9i-+-b2BOO+(tJtE@I zO3#;2MyLkRv(oFS)RC$lh|@bU%6WPIhu&fQQg?_?OoFi5C!H3mW(oVF*S-Oll)sTA zBO1%fj;XO3Cr_d$v|}mb*Lpdgw@+b=r?4{CipNdKCv==;&$AbZnTNbnluKC?sA7>q zo|PRX9O5#3=fWpmb>HB7O#oN$WuW7X{>afPu{&xN`ZoTlL48)Bi9ONv|m$8HRJ$jW{ebxk*_WOQ$7lr7(pC-N!A{e-#MG4fID{V1(>ap-S4^?<5i*reygeKb!e>4qz)?xO#S~2v!4iuW(wT7@(3<5% zL5!B#BudFDQi=TmqG>o{vC35tF-$QcCGsgdX-Xt<6_OK**)8UTYY@w65jsRFZK9AK z7OQFR6f0zgNhF)2C__e|@~WKYx+WD(rUWHMJUYV%k1-`R7}<(6p<~Jr<=t>zuBA7a zqA{lJh)SUVOHR#&NlOtqMV2khQxx$mDh;PfDi~IHVNz05NmzBn-9%F?Oq4??vcW5g zYK;)1C{k^@BDB*(oxUkjH6;zFI!WqOLNuI4Qf#tac)KD+fgn(tN`@um&M7sMm2HQJ zvwrP70v@cwa*<<+l~e73ASCs4Ty*I$sXWOf6S|=JAC+CTKr)uhiHbL=GbmGK5zOKg z(-;ERpp#R?(F`|oi=tBqhEbUl(j+jA7{o$F0&&DkT|zc!YoaTVm=cSN0Ln8Wd0m{x zy6}V#Qs%s&ykc(+74b@;qfliTku>e=J@_P zDH5W>0R=J4ohBp#PWBj=nh^t8BAW{sh^AjM93xm8G-Cjxn8qzMh@~_!Hl89;t1)hX znqtu$>X}ks7z5QRMyg;ILPDFa2SMq$v57@N6$)#-=$9yE;S!@Na1u3mH7TNFKr~}T zWU@j60hzaMqJ@r|CTN?iK=h5*Lc@Rewn*U!NAibX>rOCQK~g4=zbVTcjLxQEz35tK zo1;vSgg44M&HbszMh3)7nbNFDVt)t_yn4yL$nh^o(?j`1TL>3}9U_0DOnY*{o)t__ z4m^5(=WJjF8&o;(n9i43Dp(KXCm+HEACyrV;Zqfm2K6V(3zq+UY}??cBCUef6rm}EAo{;fg2 z5~pNJS4NvkNW~jflMmotxN0D=IXr}(jl{n&yJWMGb|ZXmabO*q7HDX)wdAkQ_;ZI*;1 zn*_rj(jKpbmPpXeOLYowwl&CQx5}8X>h*Dz=?KauwAOUcH9bkqPrf*~&jLDdH!<>C z)5MCIsvO&;n(+KxG$MVciT?2DQp)$5J>ku|RHq-sJ}-6RU%WWDAIE`yIzRYn9$>OW z!!pwQ&>uaT8mJ-E8Vlm1>5X6j4Na$V+gx1Uz%4!(}7A+zq5zpF5 zTumi~b3sw8`N}Bg$w7*yP6y04Q(GRZd2tg-(dbN-s($e2_K8T9WQtU&Y97KaD>rAc7(Z$ z=@M>Er%~;2jMT{)T6<;h3x!B)!0RwznVTzGYL_-~6T#>x?lbdvmFk}y%RZ#r=zX5ave86z0ytNaK#NhAiBjBRLW-#mvf%(F?{ORm`OmEOVy^ZcV~rN}|u3AV@&4!tDlVT4G`y zLPaD>C_!q*UW!vJXHKAkq%Cv`=BgFi?i4Hxb9ags=Jg)pp%^N9X~HlDWqpx6ilVA%l}7X`UK$Dj zj#8IWUbw*27{wh6@Nbf)dPzTPTSN8^Im)t?kj0>;!!<@7C-8GE7VLDEg+J0z&F&m} zzK`Bs4KbA(@_;vyfU;1U$$Y{$Nm|~=>Gu3XDe$kI{jH!qOR~aRW&sSb&%niYsUzqQe;ow zD33I9>S&gFKFImw>50ZPt+cT8tpg|#EPm5^y`e_dTO3}oD419*gH%(dCn**VK%Vbc zdXb`4AVQSG(ftc^=yqdyzw1{N{ellIm2|awA(+F{{Ryx9OuH;g8cQ{Em)#)l;CyWJ zc;5j&&=kpOje!ku@favyzBuNT={2dECwI-1c1uJ50IxQ1gd>t%f7%>xN%wpun;J0f z6n$hrW90ERXS5~6qRYw2SBqqi>;`<|OG}Gpq_81>p(FbOIk@u-B6P5}Rk&G6e=H`^ zThDm1lYUxVg0tC{hUoBpvS_=FBHCj#LM#6OJ32S|QCT!HiV&oKD_IrDCh1L8{{R?M z^^q}>{&aF$Q~t12y`0P%wJt19q15?KA@cZ(yw9kIg$}V>s>Eq1T}-@25atu9!@{PD ztqxQR*q}?4Te*#C^>>ot8Ra!3*+QhG&gbSi8>UR6Gr0n8 zW+zrJO@ed%kzHr!M{lhvMp1O9d%7)k$F53vMI=%eB)YS*No0~PidCTDM+Ny#$fJrV+p4<4)0G^i8kbca1K(f_D5znfgBhf zHfA*iNfH?~BS3`tMC&m)1mnF^HY!HL4V@;=NmNM^n0d(RBPOZ^Ef6FPP!1WH$`?@s zQXE+{P-$^)F~jINH-nU*rZCY^D;Q$YvJn>U2(wg))>12)yVOxU3`&k*r58;~R8;X2 zO%dOo3K+1iCli_?RM;$}V*wwlBG;6#H=+#XF$r;Q&BOwL*9k-wfukHi%0^K&bH*Xe zIHF{u1tU>|Zj*`DEoX^N1%fe(fpbCv&RE=zR;u9*+@(s>x;#Q=8Ix#Ol+>y~1i9gn zQ3TOBs4)druMK38ss{8!4je(kgvE#@N{QE`hZUi5F5V>GtW%h!B7K0u$~KrLWe9SY z^J2BZQ6kBtc*OMutb=x{UYtUOqRLKHN}9>Uxw|0}_U@k|>D*&NE%=0~JEb*(CZS+c zQY0dB>aUv+`Bygxu|l~sJ1H~3#z{`lc6hO!H%T~~4vr9(iZ0EOP*OEgA5nxIv0Y^< zJ=`Dzc!}AOqqtOa_JeQEn(C0q_P`>lIF_b?4I0WNNhB)F6g5;5kR^<&fiQ^-Ius~z zCd8W|Nll1oc0*lp7g(y6sxpTpt>T-j$r=Ew8Z$KRGDxR~Nx(%YBI{%`3wG@gnN3zs zDnSr(`AkuCWY**Cm=Oe->7>Tp01~4XV6wFwM^;6N=j%{ zHZ0m32hJZzS+}#urvt5A2}x=YoSnMxyv8Xg5ggA<=+q|OB_sqxAXi%oNR-h4Xe{-f zZ!}c+YM0uiHu;0OL*gQ1#YW~ZM5h@7>iCpZ+6Y*uZ1SbmI`?;g5m%SM?#x8Yp3K=r z)U~n9Yt&LD5#_2P@yQ69DV0GvCQ)+fM$Qva14Ici+HN8xv8EvmQz-=tO+L`~C5Ery zEt9?<^;>`SW5Sw#lP4~h%Ocd+XDYQQJwR@h7BawCTP#m4+-|b_>UvsAOas)fXrtu&rY;b)Gk7>8al9hpzqUOyYkFpB0&s=W3ntFWvZwO5 zCo`45bfd~G=ChaYoUXFbaOuM5Sw*O)F|!Nf+m@v;5;QuQuFP2N5zf@*HN}KOTJ+zA zNXKVrC&E(-cO*E@v3jbP?TkXo&Np4RXlKIDPEClRRC}THUA{3qQFei>Vx%;7N^bH6 zB`=O8Rm2Bw)=CtZklGO1Zeqsl2paKgE0DQp&L%y@kLed}SR9DlXv1%uP%)c1A+IFA z5}|gC-e{s-T&6!*!fd*M)H){A-%V54CR0+Jh{u6$-`1u*PT9+s?B2xfVoDM<+jox> zXfoE@8BUR(y0W%)DZJ7$^CG)-&*GA-nTK+iX`4)P_DV%v9=3L98$PO2W&6e**iNF4 zKOJU~(QG8iS#FKk9YhYI#fhsaOIK`TdS5*x!$dMQX~A?^flmUO9)X2jmDARe<+5xv zv|4pqaybqE00_i%j?%5HwRUn&OF?3fXP6PuR3h5NRjJ+KFJx4XrRVtjtZLt5+6wRFGkc#O$FIwlZ5RIeg2V$k7pM0$vllWe+}M?T+3ZESO>xU#af zAXt~HDSqhSdPC_iqv`8x7V`%NR{j&VF=`vDJJLHwZ6vK5sXQuJN$2Vm+4o1QnPohj zk~+n){{Ypcs)?f=lGXWsY{TW;qdGfdxcdjtYemvGMzd=LKW5I-ChcboRY zysWMb?m_?1;}ErLs$*U#zH{GR7ZJcUn@b?tqox zXGJ~cA-Yvll_p-5!uV37^jUl#vzASVBh`1ZmPOurh}IAcSG(aN@_L4o6T0? ze9;nwx*nbAC{r6ka}^;N7Wu08`TDfSP}1cqSU2S|l#uGTN4sET{{ZZy z?=SYJ9>knV-?@J-D|aw#M9)%`mNBTK$UQkqRCLQNCH;4UQ@{M_f^Li9D{UMe3FO=X z3*>+WPBd&ZL$rAZ8P*~NjaiHc-b=&VH<|!KlWzbw62!0oyZHyqUnF1wQib~<0BdQX zvJlu3Vn*w(-X=v7^NlwGF(G!yfHXZHzx<$VNn;($IQWn?bI?kJuc?vqP_c-x69J+5lN^KIjD$*>AWuOq&CRBoD9vs$o{p4R@9x z%YP_?tCi3I0veijL@uu&Zmw{MI(gmzS#IALg_OQngcCOKqTX%r04kW5bOXrU+JIoI zK)c`^D&#jH1fnSo+XAt9+#~Ha!jwLfMb$0$L{iWk+M#yF0E$R=goI^ksj@K^e+OcU zRopYoT*+F4l=AD%l%1jLodVwDL3Vbde@DnXjcrLE1gc0}QS0plkjUsF%^65T@-py_ zj3?b@6FN1$X9qeinj)lXsjgw>88wxbwrWEap=%zcwyBr#Wig6(=5LsJxu4|3sw0z& zogExD%zU_M0XrNuNdCf*l)vCG7M8#Tl67-(PmLf{aYcKso0Tv7AKrXNj;PnwekKxO#I%l7^GJ zH)oTWrd3(Rx_HPM5Tx*lKiWG29t5&%%9OR6Nn>)u#kEMOmLE{B7jAkHhdi-7YbVh@ zm#sRG)U2X%M(5n(Y~ZQ=*k*v=NID+c7wO{K+i3=oj`p&IqGH3}H}H|9h)s4Xa>dTsnV~duw8kA zrKHYXEfo%EeH$P((`#oXlBQ_5dd;j$za3JN_zn)L7XEsU9MaSwCLzsLERceR`%w{C z=%US)%oUp`yzSYIQI~e4cE|NVUKmq)Y+)(J?#x>5> zo@u=9;TW-(rqH+K#x-~SU-^t?lcrEs(zus3Axkf2Y7io1geiy6GR@?3N#nMySYAa| zJq0qi&{+KgSA@}JBwbE4g+G}X&{5%2NZpi4O~WqX^h*OM<>~zRibg-Ib|yU-T&!5a zZ)y*T4e2sUjh@s-wppO74J=HBT3H#3g2QT#*E#n7p=E|!wSqj#igB7%7ERo~J@C5) zIGXXdv$hI!l*y`3St&17!EzB>p?n9XrA(!EWdfwiUfDE?SW;3F5V&M5tlZ9Re7+}v zYNIJGfYT)uc$RbB6Ih5bx2|!`wiv%eAxP`1%Mc>Qxi}i=?DGsggL1FqA!hNr4MY|< z(+WoYbHJy%JK_l#O^qU)5R736Z4bq0hBn{4E;p3B18L3huIF&(t!XPeLXnAmO38wj@xod)*yOs`N7*`1TW!nvdKPZ$nRZ$EPTwRi#MKsYtXri{`kasU&1rZ-SZ z%}$F8>QSl552Pb2l?ZNeu86jZ&Pp_fWNnKE@8qtK)l*f{B|0qCH95^!BU4E1T1)6= zgG)fQw9!Q37JguJnkgc+vbw5U3#)Zc z?+({w?JTa`+4j?!La|kX+y^mk+&O)#mspON)-~hlEOjeQDUEHOs)=!l=%3IReHZPk zD@mijfhsUgRcb7`Oq;gIl9b#QuNq%Jcx5K4`J7V1Z&YvImK1Cl8J(dml(bljr4!4h z2rR+Q8DSGbx^TYu-nhRW=>V+BZV~5>mqs;mfhKydM zVx2Q2OO9UjILDVdR~kQzX4jV~rKsQbj6EA5DOt|va#BJxqM;row{aEh{h{YBmbiwu zt+44aip?5}=+t4}({WUDU{`M2``qJt9K4pEeIDrwnAS~84S87hPaUH%p&~_FQ9gt- z0NFq$zf_HJ^ISDEE3wo!l;X#*UTBn`&eL;7JChp)i=1S%PjM!5Lif|yHO@R~ujK&@ zf;@KtDmERfv&V<|dOt>TfgQnetBYu)@umm4+E;zDjByNs% z9;LPBqQ}m>%@qBS<^F?Qc9;63zj%EY1Nc+-e&sPdQ9VL?>J8Hn^0(9*HTMqq>|*y2 z5@6&v1Q=ML+)P{ehHFW)V##bI?bTcj4^Oomzq~9a7F`L6jA%G=-0|FGRHos`^z$gR zQkx3l6HFlbRAp1dH8(5c2~V2g*?|bl5o&Sq7?Xw+o>Qafu2BgdkL2xQoD(ry5b@b| z(?b6M?;3F2xiX_Amz0r>*ae5x0OU80c}qN;jpDM!FCbE2Hs8EC^nwsr!P@N(NG&Pg z>AGskriC>{doMN_ukywlqxuCAB>G0NnHaofYM7UCUfz=MhnhR1^~80Mi225g5v?Ak za)M_hKAIGjMlhdQS+uc4_87?$3a1~Z{{W&kwrbhQZChe1E|{XJ&Aket1q&Y}OT1~K znG`Haa+Ji5^4$pDF*ch+R$|aA7f2#`JjxM?it1iyrE$EsZja~}&lk#!yE(3R@-<=7 z6A*J$tR9giO2@&r!Mn8K3y4{ZXq)T1f7TMLt4qn6H%)Bezpz#U=_kz*ZEqGp(`4z= z_Eu=olQkVC-05p{#_TviWR`mR{YwNe87NTD4S{#S8AP=p5c?!tH|6*;BeH z6yn}xSFz}XiL+>MEQN*@aJa;d<8KToQ&LYnZoFl7XycT003qfI5oCo( zA4o7hffigKHU&}uivnl^3^)K=0$@l1OakBpO92)JzyJYY005w8w1aFK*b5&ro;uA2 z$=*cogex?5UAN8@+erIh8za-RmAE(lg1=ON}HTrJ9o< zl&V=9^`#@4C5&O3G4&K#*sTy-4w1|ho?1&pc9MlxsW!xkkFpWn0`S9RZXU3)_AXCg z$|gpuuezefAKoNGv=mhe+Avt>feJ`pA5ew8lJ+^K zft9D_wRN@ZzOdoY4V#zR*;2CkiV#qSgmBf|bWO;`k1fAgvSpDd#ENmc zAu+gM<+i2ei<>vI)|!o2(4mypsz{_cK-b3TNB(?+eGScgs=nqelHEW%+8u_>c@ z74t+vZ=`PlmI&I`hm$!hE`s#NDJypP!Z5#R-a%?(3UAvFAQK65IqbD|Z`-E2Dwdq& zfv)qz$S&u~MKU+xWLCbA)#Vz;W9zHg}?JAuVPm?*9Oo-CU~$ z3~Px@c0v$`D8e_wK6nn!N>qdnNWz0c_<7(DLL&1C2LLGwfkt*-fdHTY5=a7|5)}Xe z#0cHUCEH(ehny_DL7 zZH%3~;ksu{7X~zGH)c2OE&T4>C&en0F;55>v4!4Rq3Rs|NVzm^Y1NUvS}Dk8s^Uw| zW5Nlbq+^*l_iv10`aI)2y4kvuqk5kpuy|1Xxhm$1`YOE{4=U3D9#i+3kUHIK3dh4;o6 zMi7r7(ePnE^)@owSIZ7$H)!a_7Vsn(Hh1+i9j3F3`rG>;pGJ2z-#&|Mm z?eX^=V@mxapXotzSq&aHaN-V)Lx(g*2UM}T6cQWYUAtou*0eFv<-L(jyw=iTO{bJX zk{qxyO`+s0H%2~xFrU%qM%G5lS(41G+vfA94-}ZifsZ+4IAHly$nx~1&R62pcUfLgA*kWek7lFbfprX2@aohHd0F7+bIr!CWpjppdal~Rm0 z-5A4pckGYQJmt{0T0OtCO}skkbGC#d1dMo@HH%bX6Gk`h*$=FHLSrdHeJpgr*=uaN zMomIr7*z~uPBHUGZT>;sgC#sUVcw@a z;^QSGv^|S%>@=51ax=?k4AXF&VHyukbd4U-W5{tW6;0gen$)eMdq{H?7_M{69w`fm zu?@7agku}F`8>D4dL^mK@w#iL!g9dF2d6C?C!`w^=*Xl}&e)PGuy$RFCUWhj5%L=A zzNqpX*fXZ^=drBt)9<57V$&OejzysjFdEYo)>hFGMmDL8B1opZDaR~1!u{s+Lwq*C zb@*SpBWWiWOy;EZL6_DK=>upRMr4AJL3G3opaM4G<_?;&+g$d~N@fh@q;Y2@O5?dz z6GY0C=8Pc&MjhBg_3a*@4L_B(pGuxf9wbHEIY`MUnvlGvDWP;>7=0sr994rgHf4>4 z+QGu;pwUIMXKw5anr6*dEL9LGRP!DX%@3?sNDr4 zN-IFbfr%Zr-Fzc=t^?VW=e$#h!tAG}&s256+*eUC6js*2Nc58`B(i+Y4_OgND+G*a z!!#inU$QXe82w{IL;@q0I|dPxi@5Gfijt`-N0i^$t3%NG)f#UsGP7M8yTKrQrI1gSGU?w34Yticcwb61bbcaGY5;*@+00(20)^G$9zn&v>WNU6Qq?v$AF~ z>ppfZ%2FA`%3}H^EMXGDF{Ll3$UN@nq_iB{^V^x*6TX?Iwi_mEVVM*Wzq1(g+a0$L zpgJ|Sq|yzClFy3P4K>E(JW}#T?W1g0JPaioy~u_d#>AAbr|xi_Kj;e9zD?B9%sj_# z;RwcV#a9uAIbn2T1fdvQTj2=v*g0oMOH7LTUzFMO7N$haXAaP8s&Imdn8_5h#MkY* zF^AMW?+ftv51;yI=#Qi|w4E@T+4t<0aWGj|s3d~sK~%{DLhJWJ8{rL+4ign|3RrlO zOU$l50^y%)hMV#|UvKTpiFp*1NLZe4XjDp~H$>hfvD|aVmnhsN=-$Of$k~SN%$ar7 zZ&l&=u@*MdMlt8g9--xajn=YzpzSD4Wx7;d?4a`q6v?jWraB56by$(#4?Hg(v$dL4 zkw~oJCQTfrHCe^lqc(@FMa>(ox&^-IZHCd$j|t&E$~vy4uw=2L+D}Hg7Iv1=ORSuY z#MW%!tl2h%B6UrE$i_E95QHIoV;IL|2R5<#b(Y(!WLZS9i_;?n%^12=uqk3~ot?3| z?g$D1mkrXv#jRl*?(S%Bw4ZNmS9jl?sZ}$y!*3ejs2~pL1ES4%*(T16c zTzt?ecE{=%tg-H;Z^+jy=ib?Qnge8o*X{jcg4tWyMS_;W+|AiYbqxX{+?!QY-a^Cs z;yInB=`AcH$T704T}|FA7!-~Uj7X79A4V{$KUKp=Vsu`L3qsS|CnTEAPYV7tONiPL z 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�W7B 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∓W1*gxj;6MU!FKUhlI>*lBMOwj(};7O|o66w=~S0)+YdSXJ~vf=0{ zCxc2?Lk9b2ajOi*h1mwnLY4uwzqfMsQxu?f$6GOKrmhi3FSE|yH^f00Do%Sw$3$+` zv)0;Qi4!4mn||o?B{vsH^=BJCm{|J{BCs-|OQbTk(#FMx+yY%+wan2M&^MGplD_bi znTxBuas*S?c#$3B2PZAgY95C0VId1)61 zmbguLe3|xazi{-{f&LWfVwpm=fmX~>OomAkrF{jBBh8AjDb=iz;y(`ihq?L`vx93s z@&#)Ou*rLyx8)qT^(PZq_*vX+rGb`MrkG6%b)1?VW0m7lhZj)1fyG?)^o8Uw)+qCv zu*j@#+8izB4Ztb}@(5_K`AZ9d!t3r0LlDr|0SgjF^F&nCa|Ju^j06{i#8&I_hn_gY zM8+&dQV$eYY2YlQn9azuLgGM3DfWueEgQt-H*FCpmW#4f00J9;6g3$*ZX!%e0NKg} zA+qiV0@WR%L{1^d5CafYLy#;1fCNxr0ssXBV!+V4Fb(R7awqAG1E2*HL{}}GV4f{k zp=d)cEGjSiMRdKa`s?05Xj5Op-MnM_!t4PwO3;jE%bpuuoTl^$SPI#NnKZ=LsW+J= z{X)=B_eIzMt!&A%xvia+w1H@5k&h3RRu!H;_VHs4z^esNIXAfigAN^)0$+A+Me>4l z=&jTAqrzV(hLIyyD)H+h`UDhgeJkq4SBg8l!AdK(@XCwr+9Mst(8_0H=3W=<35(jJ znj4@XsG+aeDW{Va*)dT>Q;LSTUW!STHlIaya(Je+nrktA7}W5u$Wv&INCDWo?&^u`ohc zKBhGlW+Xdx;5pM>G+QkaOmOB>M~-EN+?%*ZXZMdyxp!$NYFyau zr$ubgnRrTO{YmS>=7HV95FtIy!?HNB%imT#<|0?puFEXcu$eHJ%8dfm6B)EjNZsQ^Anba?FkshvwyI8eM=)TEw+|g8$%~< zW)X3jx~M~GVj?iYo~=-MpM>Z(lcY7Jw@^{Nh_lNbh1(s>GA1yI=u$KF&os7A)R@0g zJ|z=jq@VYXMLv3hl4MTIkfJ2nmKz2RYUIa_(emvVjyl6xV5qi6_c_177j{JxDQC*b z!*b@;ogoOC9?AEPO{a@cY3o@cOR&@)G{?m)*H=~_@Q+0q$05P`OsxZw&)>^fzh?gc z6f{zDro&WlwynL(?=l!7D3(d=t%8)Xt~r=Tv@ zuUg{b71k9x*{yl9i*-msnyB!Ucf|7L;yLr>Jo@4l!u?6L<|3A(&K6N@Q(5&J_*B zG_yis*{oP_(mAIbr*;&x7*m@#3MLdnSHIc`IkN2>$6(6nrC(i30Txxtqj_$KF?S?VoVUP4BEdD2hrq-;Yx6eQEs2#yXIqYOhW81PO@&wl$*3P zpNdOchF3TZYCp&w#&IzX5!#m%j|N4vGE6C}4Mpgyv?nBgNe>$Vf9faiG9_^9vZ#H% zpqaHjFkB*d(Mef6YGcyPWaiBOUS%bKC4mAA%B zqPf#w5KOfVT%oB`OoL>OSGiK@3UYA_iQ0T`(;XIK(>k5eiF}r<@~+K75mp?r6^?V9 z{gHBJhrzCzL`F#;Sg$Pt{a&@Hy&-a@M$9%;(-n=Ei--$qiiJk1X2S0qnnO&_iD+R;=`#nLoR2t=EyS#pZTSVl3GqtP7; zW173crrLrXG>uWXLOS*Yg5^%Nt$$s##q%*ULe}83{@(mNN?7Z z>KlkNPIG!dGtnT9X(d!~3hPx-Y()7(e~_qOdVxJ+VkRTn#IbB7?3@&|I)(cq9A64L zaCeum@uFeFQ||RgfbT(l9za09J54<^H5-#^JNI*1a$=2f*VXEzZ-kMX8TCBsn7o5f|4B0Ko} zof`9~pAo~1idnUneu2DuYEEBdMvyuDp^Dxx#iXH9rv{cy@bb~(lqkaQbGfG*OLeL# zjYg<)82wsh8>=wnsdRr)I!tUyna%8sC80~fa|eVk0qUe}tg3jL2wM#OZ-lsg8bn~P z?xp0;>|Ho)>t`tb_Gej>4Gzs?GR(Cse`skC$eByo^oDINsnXr*hpC9PL||_+nD* zlA3BAu{>$+JdGvFCXYPq-c&gmIxZ6 z(N1EAam;*1s&<4_)})mbJh|}6j9xKwlC`2c9;&kN6NEh2=4#~SH;YrU5WaLZg62PH z9MqLEBE&cRA`5Q)q%$Yrd5$?qe&@Ir`E6NaktI5lBT+pQ2c~Dlmo;46UE+YDlYcM7 zDka57D6f&SdpGQ4Y4S&A;hfC9ej){_Uq~IUK{ryleC@SFRH|VrVB$&Z@|P0aV^&VJ zFJv8%SxKWelB`TzxPRHyoP_A!atp9n0nPiQW@*w|`Q+#R1l50qO*#46Nv zODLHK53>sqyv@rMOVlrtlXr(@=>Cb?**ViwQc|S!0Bq&S0iy&*@Yv zb%NFC(g`OfNaZbJtrk)=7{*H}L#J|?3sJbmRyh>;OyN}-QHw^mptC7i>Z>SAO3hJ& zE7Vd`n4sF_F>v@nq7&4;SHzbuWH-iA)5GZmolJzQgcEvPCMb<;Lc9s~f(mL)NkO^n zhU(2vXjqFLFL#72y;%c!so^L=kM98johjWgQ)Nw0q#0X+vu5suqPA`zBbg|s{{ZPh zRo(j_^LIcZhxAMafGO)ayP(WkiBWqXj8ht#K@`U(E@FWI#xcXKonZSyH62zhS&9^w zTzbG33w8a_l+eNqD10J?q_tndC`Mv-DoPx+af5ieBoOg?;yd*#DZgk+MXaVVj%SBC zctf~~AeDHAFQNk^Y3n${j>}mFh|Ii`Jx#$d&R}^GTPUZN7mkeCL+r?GQ9hGER@^*@cPB2xNQQYyDEebc5|2Y70zx5fNQB>h5x+AhVW!*7E3b9iu1Y#WN@bGtm zpq&q-bL({0C%ao$sJUtt>=mtZ2aH~{`STP-615~Ib2%?)13_kws(X6?RBrWQ&UGu8?LS6-%>FuBfzS zdNPc%;v^YeiA$HfVP>aRiG^9zHXy4_nyOk3B`H9>S%Ul=O1K2cYfN&O)o1jC_Xr(2 zctv$K%8C@F$#-!*p({~rWNA8OF@xM@H5pC{nkqGAI9nM}6s#K)Ay7;*X=8f)K?K^n zp(+@pRK4J~DF{wfMGfNV6ALFQWXdHp;uDL)CfP=jN`o^IOvMv$%j}2MCQj&vTI!?& z3F|`P@l{b$l9*dd4~T|*rWNma>ZD3!d=V>RjFW_8 zpDBY{l9llb6i=3*Scc&iFy>b(&ku;z`ypk^L3jh}DMD3Kn4yENRfE>2eo9e4Ui2{GJKk50ZeTfx&|q80yECM zrY{J0R&P#X6s8So>8NlcQesM=w+$jYoHEm!IBcy-P7n;xmDNZSsDilbxP!@`6F81$ zY1dhJg0U0g;q*mK38@fX7T5z(Gj5+ ztI)opqhtuhqqHb>Cm4nJ$%+rb>mTKeFQFFt7H3%9p2%9N6(Sc8Fs>s*kvc2w16`wn zg#_7Xfr~|T32C^&A@gN1MI%P1NggVT+7fEx^oj|0i{EhaZN1N=3Aw*GF_UuCHP*|l z(gfPCoy;-ws*1OwKC&JI=P<2bL;{)dn7}Ss{ zj(UtFhv8=1L~0ejmLv{)Br?^1nlRTDuNq%1@3p?G$rO*51>r4Q$@aNBe#G z9c!bkm%$dk+B8K>r8zKa?q(gCbo1?|p~kv2PDwm)`F9yzkrc?KBeA}r2MSeHUeNRL zd`Hr7m)X4AfwI_nVnF6LAgnRTm#hb@m%cKye4b^IGVcn-;kcr_&Pty3N)xUoa(KZR zhEFo#H#}DqEY1ol5OLl$LF{s$fK}>Vk}Wa(fxT}nB^Bgcsqq{gRq%@uW2Z5c;xIlP z!Yy8qeJ-%V=6Q)IDq@>xJYRS-tJlJClN$)zGYBAgM_H+ecNe-KYnZf@y`U>G512zi zKO)x-qHP6E5Kgm(LX;s_=BAj8%h3H~F+_8(kXP#m%mR3Z;s8lSb5)c~$39ZTSCtbG zr$)ghn%Ha6hA}laqq3JY4eNd@J^23A$j416xM)(vsbD31j0+cj~%Zhj&B4bk! zrK<25nH#Jjc0@;X;y70x@oMzRU|$G|h{T+Bvt7U(GuRK(D#^M{Ll z+=9xSZrlUC)JhAeNSKgOT0%(ee5J%%pKM5OoGYp&4IKm4W5O9lDHC!oTAb-4d<<`R zJK;5O&O+2d4Y8tRE{)-5OJ&6hMCM}CnJS5|iOpEIZvG}EaWpF#6){NS_}(X^w0GSS zhEy{%L*WCSqU8G_8M5vbiLXhoz5;SU&I5 z{t(K#F|h0L*$GFu(1jPFScT*iGZ{s+DWk>nd>C$;pPR}dxX?X;am6DkOXwWgM(H)E z5f^{gjOepT@-QoOez16bTLqH-+~SeWfNY&v2>036OggnCTC0o*lGA3WMucTu4mh_* z>oG>p38(D2Fljvi$&t>C%5sPP^gB+dVs4}nku5ZU?({hi;w>smgKVuEU+P>KEc!6D zE&8UKRJ3W3zxI_sh;;pAspXAaKqiS-F{#Qc-|AZ|KS|8VVf2=nDr2RqM4`K@I9K+o z5nZpPhI59D7Sg=gH!cfOb*QKD4$9dQqv$&(rh9gnuV05%*t3;dT1(8 zeLFNJA#}2_y%pP5CMh=Q2AXvfN~oXOWI?xCDplbPtHZFOa;}EG-lj#Jr0En@2x4gp zR;hpO4Zq+PN!vb=&CgUVWt(_Un=@bd1=Dvqi~*i!*cn$sx_z>b@uSi`q3A!smA%l{ z6IvTQ2#hZ9H0vZ}fr+ znsm}3a1eK)yDsIr=Ag~WfhilsOl&_GYDHp>3{&{if{J{DZFBqh6ot|yqHk4QA1vvA zHj$7Zg6Bwdr&I2Z^5XvhQ8FTbvQf9!3}pWR;tC>))3H%GeEy|A`F{sCPf9XVQ;ncA z5T*IKq5lAcS$;DtVTfAvKRHOn>?1fie|T({Q2bFiV5s6|h`lbqQkj0~83wvrvFY&W z#@pf-w1nAH{{Z3%3u((n%?@+AvX=H-x%iH&g$@4zh&2Z4cta{3MFN*mm+p*vUXc1J zml;3$e1#^ex{3Tkae7N=vD&}%%G=7z#ht20{gRknH%$G7aKr9VQ21wyjNXvbEP52D z*X907ujLJ*;}Z@VQnV=dR90R8001;}{i9m?oiRU1=K1MHU)U3iE=alJgHu)cp%KlP zmLLAFX`7F$C{%vvWtU&SiDbu3wl#AUh0}X=joC8NfpPfHvx-uG$83pW_Z%=M`@w@& zz*$$GHq1*6>1xFkuJlV`jOS&SVfF(oe(0X}-JOxGzLTs&owkY72G zOy_zlwQVLgy3Nfc`ihlmN6wMH*!lA>B`rujEpGH5VOrUj@8z;b3>>yZ>Jtshh9~V0 zHn#D9bar6uc|2lDsFm3UP%6q4LFz>D*y%FWaCDw7m~1#m!U1CR3Ca9wT#H0nMz+NThsXX96sc%(!mdO4T(@ zl_9ApN;OO*Dm39)hXH#*r}dGeN2zfjp=vOky2;C}BPq5XB)#{IC}=JH`F|)|x5qbv zttweuv>`~jy^&;XPF*}!R=M?Q1*bz5i?e1a75@O~g=DP~%k4Y)1JB52i62%|vtM9F zDo2~x_3Yb>lS@9~MVQm~$}yU)5#5KCc((if#_dN}BT=KmU{56mq~4J#9-`?9q?sh! zp!Ag(JECa$yEMp`Xy+vupS(P^XjU`1BMIab#xma*c~^LDbc1Xslb(z6W{OByl2Y8- zu_h__$|}e?XANxhxNJtJ0~0SAJ^VkzkGS%G z_2=zmgpb2`HO=UPL&XyQAhkF)j-x%KMNcZ}TrXs#uGC104%5WT_k{{Sl$4@ww019= zIxom8Smwt3Hfpq-S?qq8x;#oppd+|N`BgJ#E&8)|vkwhPeV*%3>nnR187^uPo5(rXj*Fc{%wM5eCq9pmg!Hg{#HjX=sG=kCB4NSsQ*{>y3 z6je)-Z!EQn%GHcjky=DchNo(-$VzKGQc|OHNBRE9Imbms37J;a{^;PGPfilexqRK$ zvV%9QkXmqqzNvO7kjgIIa{g>B$)2ILX>7^A^{q@%v*_;NlASloCeqgGD5ZJ|PTo$n75qEsDgqIZ?zM$!KOq5lAgdCv~n?5s*u zQ`-roTS(T9A&Zo7DWv)dlWC(+^iut%)W$I#DE$$wp(9dul1jIuLchWxpQ5$CA+Jg7 zsb5ISn0lS0I-XZ!i_pNDWNJ1XAkU3f!;Qk77c`bb^=isofA0n;il;`6D<)i$b`Jjl zsd%677&}OHDcIulF}m@-bSbl}bt!?W8a28;>17@{0yTWvZxT1}2W7e((qc!g?TdJs zd&%Lc`@xqx(fU$}w6toCeR97`V$RgS%wPjf{`$3duFLASN4i!N{Y4alS zx*s183gD)zDQX__=#X<4qjil!DiuPJ zr9bHoI@~G;5}R{roSIhPz7m>oC7eOB9#9C0VpxEYba*^)Pvae;JCI$!Y9p2Mf;<|dV7EV1}1e5 zW0hAaQ~q>=-FDT^6@!^Be#;Xcq0S5sK!eAgB`8mP1GroDQ*OA)F1@vCa7}>t~{;{RUUB(ugX}35Iamww9yErJAkjs z6I?k&Sg8(pXd@+fc*4AcfU2w%#WYJsVcIl>FpFC(v>_U6H6w{)aTt2MH-z!Hx8BNa z^bom8rAFqe6%m@p{gKe8g;8BC%AiQZ+3OtdqjF?%Z>CF{^BFcLqwbD}FmyucR#If) z4%I`Ki1D2~C*hjO>XFx#EJZzeZWa^8YJ91MRatMia-E{9fI-X%H&BEGn*Kn-Y7N#d zg$glY;?zIX+)0Y{!8VUsNnEC9rZlr4ji+d9yjI5c23`V}wuEbP&Qd|`${ z-Xc}!Coyg*2D3qn#l(_sgbfa;p2R7R$RM&T>6S$3{3~!^#kAyrH9eAdGlV z5!F!KgGxG$7eF*;5jM-fuu~O}s;f+UBFCT_u~VbA5lz80cl#oRW#V0xKwbV1($&%a z{{a5UJE(NSW^zx&k1*+g{{Z@Qw&pJng%uDBn74=YzN8PQD{m5CM}*Z7&{i0C4^}=D zcrx)ZS!%i^4<~g&qK8Om8)RTCLD95pVBF87t4z~W$Q0{j8Yj9soTuAGZ(}IuIyKY$ zn!!sQ%BF=;Vy3Q22Cw;H*>s3#r6zj6*&aSF9Ndq82Nnwr8U(EEt3xU=%k2vW{{Rb` zDpIJ}s-@l-lXTOvv{eZ-#HRL09xqKRAhI-PdYI( z(jB1+@xf^~uu-<@3UVu2cSOF>;Z~!hJ)g8%NU^iBF>^0vCUSMuu9GOORQG+6q|ygU zOBJLn$7Jyo%aHkV4v1mRayfBl30|kWS~4jt)S8&()RCv`hVadrm=8Cj_(F7c(oV^u za+$-22_#gqBuam1H~#?D39%-uido6QJ;eV2h;%~^Rk6=3XhqeYk|AOyGH!FLmIKWV zx_;>Vm}N#!H*i%uSR}|Lw)`L#6UMD3nk15E&4xtGVP}Odg;qWvHfH*4tY$h>l9K54 ztSkQjN@2!QUZjQQne^Ev)7FqzoXVO!YSvuAJzS3oNtVuPjxua!EsR1y=ge-%m4lWl zj9x9x>!EgAuy%~rkdcaZc{`&HF>h$!Mnf&u(j;6Lx-b*HA|q(zr9{o5l|8Yx4|YZz zPkId$R#8k%WWwH_Vur@61rk;e;xNDS547RrrG}b57mACHD@;H_fxy~>q~{`(-x|6D zq3Bs0Z70de9@Z!94tU=)tH#R0&f8gQX(XIGRtYp{;-$Tj!Nn&o8fhK;G?X};DNAcd zvdxs&05GZP`$ukE)N5BSNQ!n2V^#Yi-7PCvmp_x*d0GDe_o5HXoFtyd>s_QD<}~yi z7T-9gExxlR{{ZWXQSQ7TmfqD!op`C!1wDnzBP6;Lo*$^3DQ%Ts2c4Q1aEqO7k<-K@ z*2gEJpn+*nBe?^zKR|ohOOfrZMv~*_51NxJLm)c8E61(o~Na z_eU0;9IoH2r(&VkgWj``h>-!HK%_hv&4oPZ9HeP zN=F;fJh>;jRkCf14kxvn-7Q1VQny4tk!>pQq=jwO6EC7L$KNTw2Zu2de7O~SNn@2f zqN<>$Dn#q3Z%8wmt>d35(P5tNIAu$NhA?F2fRYCCfs_C}Lf{}^fq)|}SeGsRkyp?t z#Y)s^jR@a}S*Z>FxLPTBmbwwnD>@099}V=$b=4kXpZ+k`9L{WQ;$nJCl%?q%Xl{ga zwrl>VgASTyCfkPJq_cGk(i(iM3T!=HzHawcQHd$wZc!eJ*&a{kW0aeU=zvuYU8Rg_ z1Vv-Gg#g7l_rO@N{voN`7>MUm3T(P2FnuPcK0=ZJmTMF?8W13izGK`mnvD09Mo~B$ zcMy9B_2!Hz2*NLJHG3hK%%;5yE{jJh8hW(3V0+}%RsEu3*G);7){1cgMvP-tQwrXS z*k;p>qg;^0!IV=$y|l%qnr>2KFjnZ6qyF&I55zH}{j=Os;zb)XB_;d}5&eMIV`z3- zYOLg%G3_x#-*7f;(e;ifouX;wHgHz$Aq+?jC7`ox{{R@)q5Q?!a8EOGV;A2I&oqGzK&>PV%E2P>D^6n$ zRTlO-9F$d>ChjD9HezGCaEtlLi{i=H7)kB4m|7?L!j2pv=n+E{Q6_{{IgYGiq0N}a zIGco8Zn$zh@qXeWatz)>(C5==y#|h@>A&7x9K5>9fNkguQ6RV(M-QQ4|~@vzHR0bxN4& z!?0nwv39K+ZzP#YmqsTuT*;JV@R7W6o6yky4WmT54x5ti7dmnNsWG9oOF>J2K2WgS z=u&#bdlF43V1r%S@-7tmq9A@MA?%}8H?o09I#fQQ)(13WL8P^IAeoZhLX`FQaZl= zGLCs@+BaIFlWyQt!tm!ifr^$JGG)9Z#D&4i0Ohy<&K}=bEu}W?!Se6i2}`fsC6LUX zkw3*~8t%~M<}tZPaOyfiZc|8#Xhd@Ir}_u4f%s>K#Q4s`pamoF64yAZJRKyT`Z2A_ z;DtYwWja0>jyv3eKd+MjtIu%;>UI$Ermpdoa@#crd2wqAX`dhP_xnI0M?hYcgE3%$9|h_tg!(FR;o^m()=NU==1^8WQH zlzJaVx1PjGONA0pjU^ltq4T1DCrQ(iMxw>zl2h)E{i8y_nmmw{%4aG$zVPgyg!AFD zFO9gvnDmU6o^7HtAkfA;$V?mICEhUV3T`;d+X_Ao6+;pjv2sMpZ=3XoHYUer7l`Fr zGSTG1!buyMt42?)8m2b4Gd@(3Ptg|(Sr!eR9rWgMdF!P(8*nC>gqeimE+K%9R0-Pe zhy^#0ayMsaOQwSRl7UMB9L&?d#g}N8M$oECG6hMcEXrz#)heUt2*(!LZWc}KQmm64EGFJ%G_b$v%*8uuWYu+E=oXoh9K!j|m>h}yjdA59t z${6rdDU>kPyE9{G*;F?w`QN&5MzZKCOW^(S3{!mhg}y2j+*Q*x{*W@5iWZnGm)jYT z_9|15Az8>r?n-!ejH!ci_Ub;0sGeZrvgNE_9aP9m;BpE{QJ|{oMmOd#9XL_ZjuOi( zbuKjJ(ROeETP~puaVDy47Re_AM&!@;!@8_b3(ZMx^u+Ty+T5k^6OxkXPM0m)>4=ol zLP{%A&`ipBc9T$96`?mpME3eZLTwwTl;%V23dpiXtE1hVdur{3@Qv+c$m70{EFwIoE z?1@2`Ycrx5(o$)9sp$@8nkzOT@+MPLlwh>gqq)?h!LW00rVo^Gp|F=-KNex$?30rG z6q3RuDQ;$#UnWt@dQZL8TUkV-2pr0}GLSEjYGusxPLM48##FSSB`p%KmEt+hp5qM~ zEUh|;T?<0o#DREDmf=sN@N&FVq4)BR6K=za^*#J$??NRf39t%Or7&c|W#FESgTNNzpW8x8unvh&9r!B3kz7 zph)PlVqzvwl75zNv?b|i+KVGSJ@g_{niLz-9U?(6Q&eiE%3_gjDYIRaY-dR3I!3n^ zh1QF0N>dvS_D@qk7-vbYSQp(MU1vWlbP<7=sB*?0GLi1hFDs3ri%@SP1q?hpD^e;j zA)&(<>;ed{res*Rk+GAfy#bd&Vk>BGG$FPgLA`%Qqj{kX!vw_eR%U3FkTuZ~O_!$C zi3{+tF7pO)P^$Q~Pu?h+WQlz+Awg>C6NtO~<4p>oqx1a$qvOo^fW{$`@hzD&kDp;yKjUqCOEc!aKS*J(|QtF)F zk-0gl_eZC?L6pvPS7;*)olReOd51%dr*rKtN#*Qbr!TCF;yW=aptxhYX|6?WnCR+f z8IQ>ggV%6lWzyxNp2?Iv}%M*M!y~B1BAyDjn9;XoAn_4s)$dlQV@dX(oCp z%slDQSK&Lf+^c65Y@QNbVlN3%P76(}t%A1YH0G0~rRUU2rUbFdh@@U2Os3eK=^aD) zG1!!?N^;YrvD=w5A2ZVngY-hM=QT(+XGh-9_@_)MzlcGhPDQQk+GN-(CKj9v5 zMU}W{dW)nRLPYzfbfNzMd`vs7C2mJZ^L#%@!$hQVH)nTq(DG8DDm3-seUJW>S1ZuA zP-5k@uhOfxNaN@}(o1a7(hS1COr$WHOJ${GOV!)ck07Jbr>4gNTji*A6 z(Tgre_(asYjK`t0FQL=uUc^pVx|lbZoa$nn?W+CZW1s?J=$2fi{7xKE>|&T z(P=kFmYLS8hTFP&eU#>khWjFB-h%lO7w{uGYB0=P-ksrHqzOF>oHbUk90E8I`;0?MeX$_he z#aVKhzD(y6iP6JIs%)90Lw(b{_kc=`)eosAS2U6hd2ELnl|^+Fr3rqNx%=GT_+HxIqYNVOX(B%gf{vv z(mgn;SZTpi{-An&uS^C?szNDZCt3TrKg2AT=|wC+wfqO17Owsm@e1abLfKC#A4k^d zzIAMD;Hmm7&McYPt5BX(Sqb<5004378#&T$$y&$DFmo@M$qbn)GR}}KA9Pl$(z3!y zlc6Ha-IwPPmzYCs?n+d7`0@)zk!n4envlQuV~Xj#iqW0DY1z4{i~j(2F!ZPL!qL$w zC36xR(wCS`OQrUXNNnyMrf>e&Df|N>_Rk#_Njps4ZJ(Q${{VD2XI7af$0wMR+H7I$ z^*UW>#Qy;GvZX(C(&c}EJeNvs8oDkir`Ud$qPP38KH?7(VLnU7%bug{pbU-@L#$A$ z7uqQHx}7JqQB6x)bnE{BxUK%|J^Z0GK}uUD?!|$y?$$M-Hy>N2#pdl&m$aKB&ss%Ues@pmogMZl^D!Sb*b8S~bU~ z!t&K>?cp2v2QzeUmGV5|m9Syq0-qFvWAMF-gz>|vt!?yD-!UCXP1^jNpTZ29MbUEJ zIsKm}pmhix*%g#!9!DlhYLla6Qm=GaCc(tR#1%z7f{vix-)ON4aHrN`BYfVtkkB^L zCXO&lR#UkXf6i;kQej-BEa0$@@4+W=k|ib9#obygH!0zJ$dlr$t<=Btt5>? z_I^5$jOp!%pQnW8XCz;{@wA2V49CywWivrkO5HVzRm<5P{?T%}{)z14giTRS%`Cp? zrgNe_6wD2*Ei00!x6f+?Fxt!I(#E!MjGDMalH?0XFprjjx>^-37Hq=ONi_$hBFOfV zs8mk$Jz}k93X^LwEt#DHQ8$k}(stjiGIkz5B6(dC>iI=adcPeIAE2_lEh z(ZfZ?F{!aqu!g-Gv|i4vI~>4;_lzW`qqZHDToc)HU`pui6B8=#4gI-<-54GQ`&YNw2P@gsh1$;1~rI6)$QUi;d|IJbAH zS}W~Eos}BIDQ5LzmR6NGWiMut&$M98yBVD8RxTQ3O*F_l6RQ%sXqh5RT+*k1FsrjR z2|FsZz~@;<3p%2zhOu;rXvw)P4i&5C2Sm{C{T+Y*0C_*`lyj+qm}{<6c2yk{LjM5t za$sK0uy5HYyu2hE1BSf8>N6TK2&R#VU=xb*aQ1Zk^7PVb*`kH~`AjMH;427m49UrB z2~pE{*v0vy5JOf@T*j9UX~hPuKGh(IoXGnQ*#mktjQS+C#@ba`d*!4^XpOXYu!>8` z=;j$@L`ww?J+rov!>U@hNd*16hdj4^A2f-iW$+6;m&xUPMoBX(S^nth&fnXnN|6&a zVwt{pt7ZL=(WbWKro9cnRD($&Im}`^W9Z$lR{<2|6Tc6S)#wSV$Tia71Gb2j%ZuJ}^SV+B5V0|*# z%RysJD@qHnnIhDyYERSE&FZmdkbgw>i_ z<94MkH+L^&!_Dq=4R4vw3X=x%_Y$;CNmH0+%k2uzF=QQg5@1%X4E86*Is`G!rxA@v zItsq{KxNdNX)T)^IlhlIgxmiBNSC}!#`_|@u9u{!Jk(}TUPSM?F-r__xV}YbD^WRk z-rKXYWqwu?Nz;5MD4)ffh;WYu!b)Q@B7}5QPGXgGxDGo_s8Pi7&{-+t21-t>`w4+e z_3W^?iV(G@+51ArP8}BQHH>=Vdu5SQXJnkOikb-{*0oIexH!EL7Nfb<1);%8rY6Xi zA=Jn&i(+juiPsA|H&fVTa|-uTS<@qRmVRuXwA8}M*`gTPUC}6-(^qnAC7}|OR*;XB zT9`^^ReDWK0?Eu6sZz3uf_~d`4M?-Lbbn~d!?&~+f!nA&TUYqIM9Y}N4=;G6*3i72 z&Q4aVJ2{S3RP2mgve-?mZXoDt+XQDJWKb33h zE@y;Ys!b2U+8Db}(kP0~+?9&QO}c7f&{7m(EF9}|dMy|igG zE(>HL_3zA(4>n#SFFv@ld#({`r)aEnyui}~s`$7{9NYq7SBEjF8BKkZPZY+aXq_Zf zQmIJNGxiYG8C41qqzS?Ggqk;wT5}3CT8YiA1hYMEN>UVgvr2kJd1W$YmAs(PsHvGj!U%NfG-7JIV3FB_hLg5*Zi-~4(@$f3N>Z}n_li9SH?;4i zEj4xtC6g^iDD(dSM7$q{)|C}Ad{Cz;ec?Aw_R@c3?d$IYI8dlzBTG|~tU#64hSQ3h z)a&f6ywwI(I6<<;{;W%HZI>>067@=;i36sZCM`u7 zXV2oK*-3&hiSS(h$m+xI92km?{{Tq)T;V3kS*B|ly022L!pZSr)xbQlJC&;~K!u6S zLU2+$J*>7XTStwRc-XjzqfQ}5E4R-Jng!t~?@^>v5Aib@jSI4NwX2$u6GbdCoL@9H zs-yIvrAp(Tx$sCXSb!C}>3^rr}De7CjSXqN%IIZ42h>BMc)q z%DCvy9rmaw;kHKDF-B%{H<+Y}2ue+@l*AgDcAMlc<;fZ1&}`$y;UrTYu}r0oidT@s z+L=r!r#dULT1=R;Z#?7@)M|K!alVmXOe!>v$xS9j>^M}|2>qi3GHq_{ zMWL3rn2`%5Ejq;^)InmnSlP>#p_H^OnWLX+)1m^pC7v>kn43AY%^qenn+(TxkETMC zh-)+rB+`b8WwS{<^s`$dBAL{7PMuPjP!1+lvW0n8|I5Y^QEmIMvlj z(TLe>y`q?f%sXX~>E)xD<6EW*uPJ+1iSfkyWfNU!Ue4(;X4Zb+Nm`zDDQDC;XOmcM zR#O#TJiIiH38gNG);&jfmO9bAl-Ek7m%J&JC)%p9h6G_4)xUnG&Tx|2j=yC3SXk68 zRi{;T+&MhK6da&rlH>7(qwLTy`Xremt%)M9B~WmEWkTU9j#1_tX`;(jqcnB>btml8 zK61D5fFo~hfmxYY&L+&-7?k1D{6nrdZGK|VPcb{it90WsvH*3Nn2X0XDpIRP)!t* zDyuy{A7r#rG+z#1=>k~75}Rzn$y*l*CJB`k*2DHjBFN31lH1P}Mr!ri#BERHiQw_~ ziaksTH40}AEOk0*>;$cL2G<*=;Z*o~u?f7Xs|ISzYL2T`DI3+4LOW}6Nim*5`Unu@ z>dJQ28lgzNotY;>hMXq;W^z=b2B@YHk1K;Zy&s1q#70{e#j{ekD3bEx9-*eQIy_-& zY%JQ&xgkhtYP$0*-IMsz{_y73T32YFYnY2*XUJ7E4YrM?mdRCcHcL3f|YojRBZa~FxROA$^Hfm2N> zG%ZTmD^5>sh|gLrImus@x=YLFGU6twR96|N7o)^9j}JWE9> zGeE@>c!wCXy(cVm-g2uFmCJOBN{XSA{n0XG(iTot@K~a`3I0&!Jff1ol9g2&VdBP6 z%!~au%M){8S6J|e#hfCse&75<&pj-Px)!yvvbaG5D%75HT1_I^Cw4LVPAAGt zrbkAksz~YP`y-b0m$kClt)P{zio8MPqoIA^8Qai=!$tJw{|X0 zbe!u;Hf)M2wl~Qfh3<}ulSGk)DJE3PUg+~{#bom4GTFV7v5|=6e07-4uBB+kabB(8=$vjBHZBgEz&s(sln^jx5n2K3)vviFalqy93 z0MUhPw%FMw=~k5DU!SyR1gKe-*T~e{3BwA1?<5q;;iM5=aW$Nk9Fs%JmqxlswH6%k zff}xTae=sM%fnCn@Q%zv#HTr`j$z1j?$H!aCAP9f&~*Mxtx6_|s>Muni!o|h+FLln zXp)5?9FnR#qWGHB*D~>KEWHb_q!-f=k}Q$8DnPm;b>+BWMXVy-cu|9RYG1++4E{)o zBE!rYe>Z6)mah5oL08aA9uOe*F>7i ziyE497`aL~r$ujs(+h1pVP}X7q zDGGh#RH46kK$vJ|+|L`+G|~czl}{K(t+4*hBS6Yer8E#KD^KMH{PwPM97Iz__O8*s zqS9JJJC=Wwvnh}%hH#aBWWJ|^EIa(IzmbKS=s%Rhxw};3*&#TGpY7L8DHVvclNlnGX-6tEUj)WUQjbT~3JnPJA2j+|S;N`g zI!@qN#Ui~>t5NL=MMg=vZY6o*md9p))56cGQIoLAIR3dp{{RThOuBGORZQ4AJ(MR` z&ZJY1H26H%RRvG9Fs!mBEzwzDv@w)d>N>kWBfLE6Ug~O^rAEogSsI*}a+J;c!vNb% z)49c?Vyw}mxXs|?omvv&6Se4!#g&wqdC?d}Whz~{sHeOt&gDsBq;ipCh|S3l_6||Q ziJrGRuptF4QPgb>pGEw|`IbdIXdJ}h?T>M2+eWr3*yz5?%~z7QaHE-eHL6n>l^&ej zBh4CHW|Iq1c?;CJF;@1f9+2pjI)vLm@|3QPOdL3A{*tfW7;w{;cC7ThA%zKG#&lhu zK=u~z@gaZsg@24PuSfd|v46!X6WMmJ@eYB^D0^!XYnk$H5dA3T>hyQ9294xq@gM5m zs4HLeYO(nhGV_(FHAPIW%lsp)0_H8-V*aANoH`tSePJb5ze#RUN^3fnx;rvCRW|Q( z@l#Liiv;uxkqbgL;?<{jdSOt%wg*m6Y^e}r!Tbd0_ak2+0r$j_m->ohf)SkA(P@UUq7LwcziC0EBsN~ zWTSF=NSk}e)&Bs9BqgG|U|q1%JO2QApZsHIYVG8X#WdC@Ptli>JQeY&?38nKG@)y> zlH~0yG@SDJbbMs?YFxhIMWV4}vo%YrqVKYU%C&tF#5!9Z(b!jZeY49_tltp@zC#4u zMDC9?HC4ju_(Y1ETu|Ic%sQ`1n;ST>HrcdiGi7IwT{gwU;U|n7>d7&T)U_0l_6MKD zVjlMa46?qZJnE&_YNFJ_=4?-0P}! z&q)eG)BHo+8a}Xg_d_-zoQ7J$RXc8;A-cClPLH-canW*nFqL$Gvgt8eD3$7`Y`>(H zJR|A1D}aNWE=@K~sKeW{^Sjjc!tn$I-j3pEmrTz&d?9dmypmSltLf zY1&7ePd~DJq;iw#a@IE5wv49#0NAgI`+)@0ob;x-O&8iy{{UnE00`?f$CLy&^Y${N zaUZ^H$v*RiNakH?*RoNG=-XoSfoU7O zYhz}O<;@#GJ!H-y+WRBYi))9=ikAHU0Kr>R{5MCSrF}Q7*;GXfO=srzZDYfUWNIWv z>6c0U7du3Ug{f|haM)Eyf8iXSWzk}HI8v)=Z(w68YKn_wj<4|2EE@C{vnni+qd1vT zSm#$SS?-TEaN%!y_?pGa(v!FDHg=Pxwu$9URYiI9CM8g`nI_GSYsZW&PM9Ur9U{1% zN**|GD{kR01to{#6R5QspR_M}VDx^MXpU_zdn$BwWm7chBXv!gBa{CCrWL&qY_x{Z z+gX&Nc-0qr^8;#zULGYv_eW+P9u^)G#f!Abnv|BGe>0$IGo|&cPRqWNOWUw~&BJpe z7tUBxb%<|65OG;vo9%3>$E6@?XkIa3xpN}ls~-BZ%q)wI5ltlO${3yGjf#z2prI2` z)sUQZdPC=Rr*N6wOJ&G1MXP3n$%n*o#Vkn6RH(il9GcaUbbo5)wkFo0FqpC|`7<9o zWz9iHWwLr|(0fD{b!cpa+5F6hHRLLlqDEm5Vzt)-N}*Cy2!1C*4-s=5NESYgwgBq2z?v$HC=JCV{C?eNNFW%V>tjn8hY1g4@-z zc0uyqV=HwcB5)y~scG^KxhbD%zDH)|sWEvoZ7wrH9RynvtCH;SkDi4~5hTx{Q5OaAy7`Ky?2fCWC8ZjA(aLarIz?IHoq7s4jViNKFLZ6{*qC^K+*F^x zsf3#CQ(ZrUy7_`fD$zEQ9ZaV48y!AWz8{tLT8HAVdgX-F-~-hlPOfy(}a$SlGSk5My?@v#mi!nnug}+Aj$3ABg&j8@>+|N zl)Y&yfp5O+#HbikXGPYk&LO8QAKPi8vrR0+tTshxWZktY#v-bh(d0H-6D^6u3;=PF1^gdB;IW@hpGmX!EX;ncCeJX+amZD^_rwrZKLRs8br{i^O_&TstEt zj~>mvj%O8vF3~N{&uJ~wD?H$gQz_rg6^~ZU2ws2oTn^42dg;o}X2ngqN<*t^oNB}W z0L)fs=E$ogmuu5SAnJVbIF8q+aiiGv4Xg(&sw*ng+Bu~2Jp+f796aE{Bjy<$8B89Y znU~r74<>IeZj)qS+^3~7LKPgv%x_q4Om4|9(QTno zLqjuaA-3)27Zxo@t7PQn{{XTjf7u$j$zUX(Hgn{Q#&5}f#sCbtW99}_` zXCbuKIU{N=QJYK2xvHgv6!%8-K%3ebWt?WC$+PCN=A?&>cB}|doE*6;G@cw^kwlHX zZuTc;i6Yie8hT!^lTXim8IO~r8I_FtmzmaX-pUV7=lY`SjCTvu7i@d{Y>d&9OkaLfJIl;@Ur zC6`m%bNfLlvW<0#)ZLV=4oW*-3EntOuj!R1Xz#(cGE}v!nHn?|M9OF*5AQI}TCRyQ z3m0ac+G}rU=XRG@qZKCRfp4hP_V(O85u)1*W-QH@m${NiP?HhD1Xsnw8Z{TTZTE^d z!{NnCS^SZD#+<9e^Jf5Op-nDn$yA+N$^2~ml-Y|cZFN+~(A|Hu1nnyy(c0Hb1AWbJy*)mnXnKWRWH<{AKNO4ONSei#~ zBWU498ogOIC8u;CP?)O@W0z0*PUyzW#+P=znyOu}jNoPO`#T3OwVgk#1hcD`OJ*~Z z!*>c7{{VQ_940;^?!o*F<-}mcTar5_k~D0srZZ{8iA31iW>M-~-2&nlxPLH4jx>~8 zMs*~!RP`%J&NyqgG;gl%=<*$<{3CXy+)P_PWtmF}R#U2cbAIdx4w%~QC)@jA=F&Gj z*=f?ot65^$<-@zXPa*5W(U{H^j?!GU)bpPe1w7bEzNgmAH9l@3F->oqA27)_=@5L{ z<+7*xhX5}*)AB8qQFr#hgd{f9lY)$&qf-9>)rq&R%l`mvpHC6RzT-e}PMDe~vsTwf zicJ)5lWS1jRMTYmgtk!JY+dWyLZ82J&jSQQkZK8zU%&dAo zB=DwHx43PhUXl83SgF;%vs0ODvD2nfb112lS_Mr-3}W_5INpys66qsI4a(@~CnsWU z%1liZ>i+wOO+Vn)w4M$*leIFfY7okuD(&}%*pT#mX5~5eyoy2b*>b39?Ky^)I!=B& zEws4vh18WWn z4Q)k(b&YCkN=jJulL>KR|7tbdZ}`Ihju%5WtE+n|&0v1u^KYrfW(_oYrD! zLPj^oT0Ry30Bqyx%T~zC$po6DlVpnvpqfR23lE|J*r;x2hwBi%F+4xP!;DE@jfAzu zn`g|cEzk=}bH^9EL5z(!M`_+W-w#nLj7Ist;LWrcMmpBQTa0bQB5Kortb5d|MA6%r zJzRW)EMHCWvUa4GxY8br;TPqxu6f=HG*! zcQ>51ESk^}TQ<31e+a!m>8k?&09U>-`iIfDkc+~V2vhC86+-dLZI4O|1z>F=l1aqM zC_75%9K<9}Qpf1#DGy5V*q#YC{h#2Mz;KXvD5Q@*H~bfpG}43>w+_sHbTEWJ@kAN- z;J;=@aWt0NDtB>@3+B`kKS>RE>vQg$c1pV=W&870(&RBd5G=?5$WPrtW_o3#8tqBx_Y_VmhHprcegQfa64$K=dAUB3S zJT+5)7H23zTg4tZwx5GS&%TO_*;`iXT&BpT-TF{ekoU{C^^Of}`T}WE%n?^8GeUgb zJ+(_*-fO*x?TGq&hnC@!m{{r7yrZdAt$!~$;|Sp_nOr6IW4L;lK9u64-IVQlqtC_Q zupX){dl~X_S#9)sdz=lmE z*De0Cn&^yGrTiN9tpv`brqs*kMkF$(sZ>P9kFRj%OVI7oPA|^Riu96J-TNr)N@)Y4 z<-Bi<;dx_q6ogL_U@q9ikGrxF92-p=5`)6Ad{-8vLx<97ho3v*A^9 zILXqB14PKH8p>^kx{>HUj~y`W28`V##?UUb+C*r;u}JxhpR*m|r8*AjYM82NTXJ0s z)buTnG$VpLOKf1Vr1k%@yD=^amc7}mS`A53H&D|B@} zItjvc2C6KS6ox8h=h?m-!xG}oG_7w*I5fQNER!fe%}(H#8N_?reE$Gc2g}J!>HV9S zk;`?CnV@UomIk}%j=}FfjGZu$wTZH`c8s`FC_)LO^5_>AmhI4v(a!Lm4zyLpOTy1r zkhn>}u#WA3MA5qFL?SBefv?#ep=IS54sxKbH**y8ncUr)SIea(n5%uzOwM4J>4>`e z0U0uzd$e zf}SkT1KO1iU1cia6C`r+d54ssjBu**4F-}PlF{ipWL8d2^)+5)TIltLH|ZXe(oaOv z$h0*qw2Wi%Z@7DgL4Ki=!r-rfzrAJd9j7hq>v_ zryEDpv+o5B;U&KfIMYr~r~(Sa^Pc0-+yDRxWq=_~O65i>k(r=JF@{4L7u+XQ2tsu1 zhOJS?8|h+YU~LbBZK9A-vYsj0M1gJ_iSC!Ie2u$z53K_x$+(AC)>LDCoudAAX62TZ zrmZw&i{vBNSdcZt&e~Myvq_BhK+-do6;ydb%EYH9^=992?ZfObT~E4k;&#|-Vpi(b^|)g_pNBEnWjVWVBR5A8TlSZPJ3=*$r30 zR-v7&A?Bh1Zmh*bpZyWf+;pAM;)^QTX|WY4V@(7=>ecsd9atFi zi@3(m9}^B5W@n%J8EFc`OH)ooI!0K^dY_4WcB%E|{=0o++l4t)Oot?4L}8YmW6qYc zOJy{q%;%G6qGa{`^(Od|HrkOp3vyPgP+Dpt8EfGN_OHoJ7In?O(mUgS7LYvg9)HE7pvC~^E zZyd9jJx$uiHf2$P;9b7f(VJ|@trWfx8cz*j;pL07rv+>H&GU1>>_SwrNG;@&06 zrUi3oo2+<5v?;LH`a*<@<)$Xz0V+nh5u7xE;S4NIzi4?=Jw$z2unUpJg^-+wDeh#6 zV@aVKt{}Nl$|)A}oTa;d*g$eU3|M<5YV>a^c6MZXtW%*=;vBag9`NZb>_mZy3RGn5 zi+AP6 zEh$abm7yy0W**!gAL+L$LB5cfx+2j!&ReI5pK|P@qYLwU3&X^ZGQ+AdAs$B_{{ZNQ z*oD#Bu8Ljf!-v@(1R_wqJ+){45%gc8$|(~>%^;C!sQZ7-kaA*pqK&aUEa=N2*WU}m z;F+)4c$Y?N?+!q|q0^Y)%0?k#UExqZ(EM%%1j=DsEkcq#LD-XK(AiR=AJy{`-DWB#Kyib9T0Sknh6WcrS}U&%L{~bTfnj0CBpHX-I~Er z;dg@sP-8P-0ULk-2m}C#0000003{Lt002k;00000005`}LCvr#A){{sfr2`aNVmi= z>B(BBQMvH>!85Gz#Z!tupa4a08nKn)j_)vKWj5^+7hjY_Gba@zc$AFW7&-Rccv5NC z8?Fn$&3Kf8J8u)1jHPp=lqqtQQM^TUkvVCO;k7a_y6A}JVFMRr1#=9i4wR^77LoL< z<%w|5b&UK_8z;a1{7ZS;nwD<=oD(pbkT z*L9{H30gC8H0mgmRO(dlDsb&>g~Og&9Ux6D8}9|!$BpSPS;WR+ zK0Vt?;lxUx*(kn|*;!SaOAc8qMTud&q%Qve?-%aJauTB>BCstaYLaH)=9x{*T<#Z* zRQ~{Qv$T@*=hB56oTM@7$+K|LI&X;!?trg~SZJTTE1mKzVeHhzgpjE#Q9q5f%T@cv zdS`xkM6lTrXFQXsD6|^#YDR^4(-Ef4lpzeEi%Crll?@SNH?YPWE2O83kizKy07$?6 z5biOkv8Zt_k_3v4WS2wd{{ZmEOm{Mq(BqXIN7Y1Zr8(QsGe{*$n?|x$oqdtphq1{g zsN>p5(L#(Pq&2R>ED|m@cTK2c_;L8_C_NwZB(G8syWIQnW~r&)yiJ1d)88M;z= zBPE~Aof?#pZcZWe@zN^K9}|X#HnLamW~OUz?B+JGX*t(^T-A|kOHk2S%_iDAOKO*# z$}IEQrUNq|x!W@{j6Z6T(Inj&EY5{ko`0q(vo}>Ih|)~WMKk+d;U`A=ceUC>wC!x3 zj%Csd1uDfd<}(xth;+R=xR36RX>k*8G&VBzE*1+dIeS|?;We_BhHGpaNnOgGN~Uua zh(ubxZe$K)8`>XGSj;Sf?pM(?HFk=nCrrAB=IEx8$rd{eA@r+aqlU$L#>C6Yqv?Y5 zQ}kGs%?1m{gx+ zYRlG;y@LbTN12ziM51KpyiprSb&;Z3X-wx9jN6qdle7Jzh!)+koU>|PBGfFmG5n0P zvB_$ZZXCu8FEYSb!fl^R0frenB;pWWHmfkbD=C?%qEaubM5201Vi<Fq2M9E1+sgbc8R4TEQImlBKYKW6ArN=(4 z;>0^d^T8}i;|{T8(Rv6{sofddQ2A%_+!|>RQc~`c)SP%yLhQuN)E_sxG8zLm9hP=Z zBb8Gck)x8JR3)mQe7#YIS3yY|!SmL&Qc}1TtxYb{IvdZ7H&?P@Ud1!vb!uf3-xSye zAZfV>*qm8Lh{^6AuTp(ky1@2wkut0HgDvyo)50B?7sVHd5+cRAOr$~14MQULoHJb~orjWHvQd8Ni zGTAbno^t}Mrd+wWdm#5AY)@2_r%;V)vspQTYvOKl{m}a5>O@)1C$n$M+rU5Uj4?bX zRvfi{XN`E*RNk0!oZ*JPHFExN!a+^e7}Sm7tWIoAB}1Ghq$rs~MaUiYN;(qI!b-^~ zoYa&^A+iW$%24Jg)ogRhB-GE@5|KHnFoK$$Sdxt+^R* z&dZF2Vhb-4vYKLIwzS4`htvhlTan3Bewv+OOHf;i-?3c$Dk5r19%`W-OC2Oa^_WzS zUZRiTECAhb9RQY-a{x_hD9vS%wrE<6LG?A zBF!v>^n~J*v?C?n5<4SE>|;H~RS0fO{?K)EQe2sXZM=R#1($)AOBBhpSfwvyb5mt{ zZ)kM06w9P?4r;gM#_Z=F52XJ9DeU?Y>x#UK6%AUyv@8f}Oe>G$I7IX*GFfttJTrWK zkvRjDqEUDR6pdXXb|+RlQ`qq)wH_~IOhol?^;i5Svivm(iq2~0cLl?9m zl};fc17apMOyQa*B5dMWPw^v^S5=&W^Phm#QcQ-VGXn{B~tafxdRfz9fS27E5*VT^WxY_lkJ9QX2mLQ$>RhwXsgll`i@p< zOwA(@wHVx9$cKn)Icm~$k5^WIXiS@@t+Z_Ex%%2eGY{vBKADyLu`bYu<;zoSK3Tcw z{{UdEvLtD18q6A$$uxdKEANiUp<||UZJo=N&$^@;Z@dP^CWzSyk2jkO@JEK$BCH4F(i)Y*S(V;QKU8 zxp=8CX?jwtgvAb|bK%wdA;^Wkqp32a#xa%3P-HqrDRO|>L%iYahm>wgYA@Lt*`i$q zWHB=4IB?a|PYDA>PYksb!1#+z12aU$tf84DK%L{QKEX1+#5Y2B6Scb*^Taoj(Ui45WzvcNu*bVFy(4$5s~Ws zpqGa=H3C7s2NhPLh040s4r;_4LsDF&6B+eIrkuiAMD;B3Nx)3r&`vET%o{1lr9ILB zez>0SWi`HlDa(oh)a(YykQcL2MQ8_$*aT{jq(rE=l=nb0f}byFD63_LwpBeK?PVeA zD6S%u{{X}!C}QG}#^DMGe8)0}ueu&_nIRn|N}1`VptGrlQ5C6vL}tsCBH_{&sc1{Q zBO#caIcf@-E#in=qSdKhL(Ek&CdyGhUSq7ej$v4t@Y2e9g!w_}Qi`hW2xyp+og+)K z`a_gkV}I#>&6j|7GogxeAKo0ZNMuj(r(`h;+Wp~@+}d6h?lsofy1B@1z&1v$sx=fM z-&AsGbPT+y!*CD$iV()5CxFv-56)dFcnvmTl zJChhH&r)WG&DDi{lAt_(d7bGr9MRV555Y>c8kuAMSq*}N_*QloN6bWg`s`Y@E zKL{2>MJE?*!DKIFFh%fOcZBBW#4)l7Aq_d|ia-kBpJWH+FLr?dho>z<1(r@th+Zxb z!b)ceTDk%n@hD=HD7ETIS1>`%n5GF@q*D>sd6g`=g(;TMx5TM2AubUO1wJlJ)d?-S z%7ik)7plJa1SLUFo$NY@1yqOrhTg)7zw`3py#4w|0>cCzzOd zvI>$+O$_`(EANY`#3U+WQISDKGdZmxu_VN%2-=R0zhyA&gEC>c~=V=xIdG zWqlE2A`yscjh`@6F7dMoD<{?$EkZ(w^*kU^k%~-C9uU%`tI-llpAJydoPb-9f?|-w zB}FiJFr8SX3Q@;dMIb^NsHZuCQ(C2sm@5l0smf5M$dtX)2_SnEHI0c-ac>$=NHDQz zFoIbhS?-9~_@(rNm`62c43?^d(L~#HO*H>4pVQkRG{s-;O%_d<)k3*?tB zdUItF*Qla1JjFSHJA-z_P`v=3rIk z;FSwB7cLf1tqD@qg~qT!l%vuSTpYo)lsyG0xJ9y=xoS_wtT6H%9g5?E%f}{KNvY_85zMU zTx#thOqIK|1vX=AC(JT)bvn-Q`nY%x4-3YhEMg5Ur*MLGOnA?YhbHkB_Co)=T@a7WRh6&jc z65<_;k>^WdV|>S?KfqwZJR(;R-i`?lwaJ&TVEb}mtZKVu4G@`1AMT$hvN;(Zx(=!a zCTm3ghn;u$Lo*V1g^R>)*n?Q@T}3cc!PA0}+zMndK}qOmK5&QhHIGJM znX#2b&7Bmrn57AxCyvOE5X;r#8`=}Gve!q?PkACne+185%GW(DS2h_#R$RuCPbMG2UkzV7;s{$k@Q?8xN29Cg0$^az>3`I z?ma@>$zmt4!HmiA4of`>ASlS(Q8+e*t9Y33Sa!} zz^63?AW{$JYg1Zjo7fsn0G$ZThOq)t1_*;auhD<`#QbbEh zKItkD%iFO?zC9sDnbW+WCY?sv-3?%3C$v_JTQE9hm>2vUr~Im+&{AI*jq3TK%{0)& z$){%2FAlj#=*2x~plE#9tK>{PQuh+|q+4-_FQ;wKkboMRHj<$Y!;Rp5QCd?$1Zjan)6cRn zj}V$f7R02`*jN}xImun%Qe@6(k`bg=D(*M%#6=UaB#J=ix*Q_iClE}RK*FiD3l``= zSfW@{aiA*EDS=0k%XkHvLYuA;rU^wTWQ21FNv3rUNI((|muXBXHt?c8f{C2f2r5b3 zq>dyZ5f4*!hfOgPm&|5ml5Wz*%omKBy9i-SMr-12h_mosA%pM0`+K|yo0!K zt9${WQ42|-m^gAou-gF^RUj6VDRg51>Ab=+cimJX9+(XJWFBrcgwN=X31Dn^rC5Va48 zh1En&5oA){nW?x-ZmbIn#3NmG)ly)(<9)?E0)>`X`L^(g>#KyIj+v>*U$hot)@ouD zS27&&yMmId6KQgYh$*Y7OifUGTc<2;HBd}75EV$~-0g);D zVvz?bl-Z0dG4YWK0+((~wB`}fG01$OO%F-42hyaxLQ9XK#k6AQxiqOExV|wX(l$80 zL5j5JDKxKVIC7$Llv9}#*?sdj>pIP_5{qTpA*jE`OkT(eD^Ss-W;jO$H`25WGSv z#qx^~N=?BkHNpI9%d}M>p?Qb#soVv09#P!}+8R5-9LDV!CaT4#SvOdvI=dnvN=2OF z7{UJllk`LfeL=DqMG{{11V*aLAsO;D`XZo?)lk&LO+l??6w5^2ljluRnpo-TQ7&yo zY7PCFhk%%v#!iU#Og@7ZI%KmX`^}X7k@M|=I@q{7rzz|fe8KbEh=sVYn%nKj!ivjwxcXVw$h4!b6) zJxORAsX0JqZANzG6?{tR7^M_zk#y~8?HZUIuB@UHLZ9PIPf3KwQ*B;xDzwduUOra@ z?^VPi%Dy1^%$3gr(tY6Et&!a{o5+rCwYOM^thH8jLsZwl+{pHgHuipRFp?1e0L?QF zu`k^n7TVP==$U3x&r<7Qo9(DMobc*TtW#pBVwPhpKObt5)~$1*&N?H>)>S^Sy&r0- ze|T|Yay^b4!F<#G*1rRdS?rd5s6@j%l3pIO-{Lm6giOCGDPTSPKf{l>@_+T`?PG;c zAwX9u1-JrnhZONUM@gH}keip|1i0d1&DNz+J7p0X7p&MMJvp%xF+0O4_!((yG@oLTM?&cm~m8sMh(H}Osqu$4N zhM%+OTNlh0Lh%OE4$?I|q4aO<2Z?b{NNqC4;>1Ww>+XyoH;(5l-h$iTMKJb+qSUK( z;c#J{>92j&2~E>JBBU%~N`qsWv8C#HB`J#tVxnO4#rnBp_(QXp!A&Vpi#Df-Am|y* zpKzHJf%Q|15y+OIp)a(_zDh8{dWIQ_Z%7=RkWu^j5%Qq*Gf-d72HmVz_H~286RktW z6frPy2FppU1878sBDf|ff@9O}(6;NEX<*Ee$^79cF^rmp8Yi>F*uJt>*pMrhuL-G5 zQ||V22q!W!i*`iM8YPpIt16v}R48sr&Lv9H*(E$-k~y09c({io^*tOJJld_zZjJ2w zscpKS*%CN%#S?sSqn4-6nGH`5-5oW}jI?ULQY|#0ZBj(Nj|rS}Z2-P;Jhbv>svbTO zm8Po~MC}1>3d|!`Kj#aW=@5S1L5O(fnBn8%?M5Bu{F->-Z>A=`*ARVq(KV%D76d%;hiO z27Z?|qs6VDIn71+w}1SRa;(hFOjA}QH?%7&8{lDAf{|{~OOcNLTnHmF)E($*(6o4$ z8W_3D?%@j`<-umkV#R$N+UDQc6lHAt)&BqGciNaEXB-G2EsKYTu zvaWC)zl`gMI7GVDX z{nbcLM@klH`Zct*wtaNIbdyxShAW9Is7QQe0nUGX_$7 zypK#FZ6)iQ4GT#oRZih%Negy!{ZN}GGTi?FHt{-#lGV^YkC)((AYWx=OZ(zE`ZnnJ z{4#?l{{X!${9+s|md{}@epM@>UrQ39DDy`KKa4V?#);|f@EKv7wM~(@g2~$#4FST~2UT@4yjvJY1 zf@V?`MjBbR?G4;K%;qR$Lo~Uw*ea2ZY*r}y?ZaiWa)&viB4lq(MuW#F==$5XB`mbV zYQOiF2V4ID5IBX7(t|||bac%;tMjEfi}#fpc4&<9J$&ZONV|4+TmJyTltfa+S(B5k zva;H{+MoO*%YFva0%?$>(&DH7wpgF>2N!*(#zr9;={b_=etK4xU%D&VqH{>}!nO*? z_N>bf{v5)!-ifRP!AwJ0)Yd+B7*Ouma!)D&Ksb|#;VS({}qPyW!sKjRhbMENq-QvFG&p+C{)QEB+HXGrbR!1StX}U8mO{#X%bUk ze9KT#PR=Jn#+xV!AhrbBYcl8DRWp9@Lek4jO^Vs6p?!i>HRNjxcovO~3*#SG!m;V5BIF78@RE@S>GAX;d zna6!gTrSc$NBsDZS5pMbd6Yoq{;)@6x{lsm4Y04?Mtft(FCq6v#R2i znMBGHvQ`Hm%hlv*>r0`@jc6Jhdgc2;C!RDW*tt*b4y%h~oNZRhA@8&}QCV3BJ3bAg z{$%1kU5{8tB_#ck{{W<<5_!9R%Ed732eP&;PaS6xIeVn2qO0J|fuP1LgI6#8pZrz)9DqN$8T*H46YHS`%}IJ_%5_Ds1meZgLif-G)2Zc%?TV(Yz& zP`kFWm_|`k&1D6bcviF7fsF{zp*Te6Zw!YFX&N?~7L~JIMNqXfJWtM234IeRp{h>N zolf>42R~yYx7H!l%WI~l_?$FJoDJK6*8V6~Iq8L_Pu@s2eGj}vYGG><_nUvj9gK&p zVf8aw;%4Ovf{NgV?LcT1(DcauCeX91(oDq>70{idKZ%|)7VKm~$AjimD&-Woj9;`M zuQNooQy2@Cv>|MbwK?3Nzt`3wt)RPbtx!&FXB767SNH~>(6F^Q41IPSs>-GvU)`O#Vk)}*c-36@fCuLOJtNa73bY9V%??M_l_&+yMqVDy@ zSNNgLMtXb28l_5%9Ie^oT`sCcbnR_OnP5T^W~y}iIYbf?8=yOeka{88i%p~{-J+I0 zlVHrADCZ4Tl&rNI*c9K%7fHz)=q)Dy06aTX(uz#-TqNZ5IZY;{(YQE;`|lkfofb5% zomETPo7i@r@rDo4$4SjnsM2T~*j+E<6WT|q870v3b*7fZ8%*G);Wl8820+Q|F^2n0 zx;V6YKeSCeKE@37!gX|B zHtd;)Z!V=NrID`aTzZ3ql|zE+Di=DmFzO1UZh2g!sK6rmeNs&e<9V)=@ShVc9ahu*|6!X_caoYE&IdPODd>FUq1~k>3Y!zr@RP|TeW?A=w^5=kyjSlv=Cj1+$(R}~T)<&ZdbOx zQM3grv?@}a6D3V1;Tbzz&9W81JBiTr4&5+|SV{Y)Z{hTqWR{FM&rQo0T50>NC z_uCsFN%#SPuK@2n@*9832FApu-PN*{HFl9#YO(22Gw_&WTK-U9Xk52lR#R4v(Ncq? ze50Qi@Z@#F@t}!aA}oB8#%V0gWbDe_HJXve1yy0@?2dNbi*?I<5h(1PAaG`u<%89U z4P{wUCO6wK!61Psz6F5!JSeFxPp`+5jHwi8OAsdH;3aC2F9L=jyCOvL2XGSZj*iMb z4hM}cr9x$Jj%3`g?wrC&4D9P)jIX?*g`#ODU6h5DC}Zr(E!jt*hpbDe+7o%QB*^(< zQ|Su;$3Qs0M;4ZF=(?mF5ctXbqGCR#TqDBxRG2p@C*XE7C|+DAI47h#HPCj_>S!8i z*4`q`j65qEnjZwcL3l-reLdUc)^JtkFe-)5N!z3-UC5g$G@47yV^f2Sg&pA2HV7M}QrMFw<@R$KF;~N3Kgx7N zjm1yKbo*bX`#{P|t;rBJjm-3^=j;Z^-T8{0q#Kskw&nIf7KsHp{~!1Eg}W(aj!Ufqeq> zNIsBtL(UWQ#23~8Pyo9ic0ddmwf1AeE4mDIcI!<^n7k8IfANKq*I{1^_(eZKl|RG% zHXPUWvm`(9hOp*yV}4Q>NEzEi^zArg?S`iRTkY)xv+_8)5j2@jM5&+EeguMNB{H^gm!RKyi=#8j$V(0ISgbf`pD#bchym zbm6Uv;bkYkTTC9zvfS`Bxmiz#_M)RlY~kPf(FlS~xc>mw6{jh<;Wu~wv_mHGc&am$ z??K`lZqXz}DXNH;O~Z4V#q9=}VqNeCpPVac;cyid<4JWe&DjmuSMinU5voLlX?0R` zgI#DdK$J}{{XZ+{C^ugTn_>V zFkl1OaOOH23b+AW0(No(XEAy+9Zf>kZR3q;5mR_&bvDxh*;2{27Y;?Ftdk=`7iS%u zH;J75M#$*4xW!vX7AaUqDyFOb7~4;7RTfJ_g+}Et##$Ty02LN3NE5{nzpyqlBbCIe zSZG3;TaQ3{mL5To z&@(tSvKG<7VHy-&vSv5BHVK{vEzsmVtX~^FejD(Rnu~ahpZy`0Y>BDFH{A|%44|Y* zXr-oyJV8UG6E3mZ-f;-rLTm5J6cDM+=)eky=WrfydoR2nAObmpuVukhgc!Ua13mQZ z<~hEX+eIrrqo@>gWp3vY&-BQ&6p)b!7;A^QOiuwnqEbamqSW>&#+sFT`y;++)Q}~B zk!=2mQNlVTl&0vhXd@W$y?8?Xl8*JGkNOEIFLfG6WVSr$Y>VYj)fzrgnz#2QV$5iN zloV-csT+n%NQy+3F6jRNl@MczvC|I`&(qA7!0kRjgbPY#4s+T#8)s;B0{TD&^oRmY ze~=bmC_#*GC@r2rdIN<$5aNiZnJH7k7A1`$+?UmKVGW|8_gy+6Ng7I0g%Wb^lShZZ zRuw{`LSls_^oM?$%L;c|F)55{%HZXzwc@|w9(L(8ma%7~?NC++t??=)UXb(_lC{O7 zVB1LC!d&%PfiT@uUKdnxXb~;Wm1|0gEM)Eqs8Zg|ZZGQ0K6qL7%v~@>1}qQWDD_pY z=<{kV47J=W69Q461*lcNk(oH3x;TX4<nW|^y|H;U;QO>?Bo zXw_K8M|KB!OV~{(wfd?wBXQkx@Feg-hk@ z28SCSHHv6x-xIB~eqj~GjBj1##oOrxcoD&N725Q}c75UWWonrBMRj)iLai1^>75W7 z6}`B&$)^q`EpFTGk3>(>kAUV;kIA=C@$=;#Yv{dVn%g@~ZV+Bz{jQ|lu_AVB;Ttw5 z@Q$l(bSp1TM)|?5U8zv;NY@}~l|)nSiHforzp$;GuVdwLI#40XfiA0< zN$^xoDqXkP8yh*HCev9v2dUdTRNE1`Ohl8JRY%<%yQF@Ni)UwcRjh49?rP=sCC8XK ztf|pWH2tBgGic)0zFgt#-MY#-;r#+aY+n?Vr#o7YR^a6J&N!DjB5S%Tmq*GT@F}o} zay^L+7%c7=ou7PCZ< zsJ}KSkxb-Mjz3VEo5fKr<%|a|Q@UO1HBRlNwN0T4m8eLa?~9L8=%~vfqPsqUp%b`C zf(f5*pgcV{ow_0?p-2~Jkb1hsN;IhI#7Ww-n^~rfb#nEKvQrxmur`9N&N;|$OlmGx zXeOd@HY9j%9Y)QoQzo&Z1u@%_qFguyykl?K5?WXDNkg;2S`ML;Jux*yqsvm#YjUHi zrDqqpJf}2O+B7I@bi}HtXnxk=lC?Y>t;P38fh98;%54!*Hj!Uu(vM(iHGL^1Vs>a&aH7M^Ewk(O_R8cNKLyy6t8EKMUkPzwkX~*(#MK4e7sJAieKFu_Y;Q- zq-|lbX@mx9T69kE=S~@~+5nDQNNTdMU+W3@PPO+%g5P9l%H|bqNTB>A+L}!t&^0J$ zei1q;?<-%p74VH?_{Qp|e{_QUvl)2_w5R%l{2oFF%;0E5F(H| zXMW__h|*=q0|h)HGT}(oLJ1 zN~PFu;+_=As*y3$Hw9yJmH3(6TK7kddQdxp8gZMFCgE<}rTZlwmzU{s#$Y0uZ3{&5 ze7!^-U(@kF{h;YpM9E)_PqY{{gr_bM zPw$3}qvMxu3`zZ_|R)Fo? z3Z}zCfa|AilwwQHDZULT;;WW0c}p49=5VLl11|BZ=>7>QnXlU-cuMxIS_Nj+Q>Z@(h!7GMD~eC5s7f=_p^*A;zv#o zjU4l#+o)>qj*5{oh9ODzN;H~lma~6s3aggHT-ZM-GyM(Q!@*9E7)Ln_Y{Olq4EEf& zmL)k5FYOA$#B0TP&ThbjXF4JYrkN-w&5LIS#i*u$iH50dRq7Y3!xk>nHz+`Mq>naE zOsY8}$^c)u3hdtyqK&X^qMd^`Yt0=;6VVz& zTwk&?cF4cX%R(K{qLOUsJrIclXqM9$rSY%7@X9*gg6>mAQn;nxSigM3l=MI(Ka=d$ z;ZOZFZ@NN`k)s4A3@jv-<0iVpL*f;|D&fvyNpmk9kk1#Vo|#4zQtIovFEQBlTd^Gs=lFis{ZKoa#hQ{Diw z(ibssoW`3zt0!9K|UI0?_dpd_9o4nH;2On~INFD<0ZG+E$UiI*A!MX%AU(%T70??2k8z z#Br4)d^CAeq#~Ag!xF|8ZIUgKM5^mflS+~;!dg8)YtkH`vXm3x9Vet6xNmDTgk+nl zMVqjxqICKu%sK8L>%h5Trpix8L>CMQa`l8v{?SA;N?Na!$rJ306RGJ4>M59Sm(0g8 z0Z9TB(rOG}WJdTUFRv2>xPsplETS@u#W}3gcOEq|AKe$$Cq}I8Wc{3wq#}ztJtZ|D zh)=vb&qXUDo2yYUo+(PHGDi(RY~z<1xW_|SYR;Qy`YveVK;0T_<7ZCO&8;uSEs3D* z9y(CwJ&~3fLYpygGLC>Dyf&)fu1msfryf2en$+t}nNP%Ck7%dhgsPwF1!TuS+AWtc zdiCXwloh&38AVQ_6=fYPaz2svyTGqSaoC-PCCQp8x%MOkaTY#-P z!V3QY5Z82TRr{}mW_>k(GNOtUdf>{Or_EOoN~NV0DiV4!x5i~@sW$(d7+7g}pX>exMAX8Ij+s#Q;PXNSZ|%9&}#%sh)oI!&HU*-M>#9Bf0M@`X}X zpW7DgG@Ye2trGHh$>ndJCbj}vf$}VF%{2tfQZ5N%T&C|7cAkm$8MCsxwTmQG6#SjB zlrIUpW*g$-xW_{{!JN9(+dVhv^|G%fb|tCWm&R1KLi^<~z|Q(!+SxJN#qE)3l1p|{ zd;b6k_9seuzZO_UjWxK<_Dnntq_zci-cJf)S=J#xU{ebg-7;kj4_(h^^I27jMsUVf zd4lF_RnE~a$mAc&deOA%R?+L%2k)e@DgBY?Bpvu7#JMMosihTrqmZnO3!V^$Vbz?% zjN%Kv4llZ=%VM1F{MYK zqae1EY;2Y0yJc+Up|h{dZ0I0#)NXI=&SAHd^yr#Amb0_d*$L589-L;yDbBJzl2gM_ zt?+YVZNq?I=s~);t>J>dWmNdeGn6AO%O=*xL0hF|iI$&Kbj|y9lP+SY*r}MGcuhy8 zg@`g0CUxmI=1ekkEgG}5x-XR5S*zz0skxU?o7Ehcol&aDT1sB%=f475q+DrSO2uzt zv5aZxk<%!+^E-k1SJ(rmhUMGDOaB0KSNH%+q~47S<0dMknZN8x{{R5sN;-EeEfZEM zx%~4|WD=VA3U8FI5wEyoW*4KM-gf!7NR1ZEWX}^yc2~!vDh6h*Z}ebU{Wa*Zw1omI zF_z2n=S4*S0O1^A-GE}{I*ACE`k`SjuuPF_R9b(XEkR6WeNNB#0xD?C?BPA5q&SMU9#mp&mp04j2re{nByxKE9)U)ANjqHW4H?bQELqxVLo@zu z>P0BdEok&xBq3T_IaQiay_XFzoK^MLb{6cTePxrGJ2IzCikG@k4SNukHztCFFy|Uj z=*Zf{S`^r_oJ_Sd7PPwB4fjTDx-6P;M%2#`C+6QN{6nHKi&qw7C{gH3F)J*9rh%JB zhLMb(w}kEDiOXCW+tYFNM#D(H(B!Z5XE-TI1Z|YPhBf+D*xNoD%&Pvjkze6kX2lf_ zYiTgA(;-eRl-E(ne1$2%NUQQ7gNE#WIX$sW%WogUyijaj*4Xrf& z;fc@V+%mf4x=dJt2%zj?yWQ}ZY_+d37Z>8(pcTbVkDwwsG|%6ODy+5TCH(NsJ+E6t+1fgP7>&kj#-iNhJ@m zG4}4nK6uio7=%$y=|wWSLDG3iLdZ)IKhF^#_=RJwBk2XRavfBpu8s4CMCASP(6I`v z8YF1)%FV1%U&ZlCMV%kUh%MzZ*3MT+d9FE(p{q#8q*`ddNE6$2HJG71Xwj-kr}9B_ zseG9?suA0CRj0K`l_PAlU+CD9my_3uD(wW=qJ~tfClJ%j<~DX_Rhy+KB*P5VkcUd2 zyfRuSlUU`g1NGom$(a`P_4LvpLO# zJ_9=i8%f$7`*iq}qO4x_a|+0VtD!O`kXq~RXYHkucOTIkublqbhVso!Y~-=JZRM}! zEfFa=6I{86kJtD|C3vH$Rh)k>Ou4XDp;S%mlsrpyHk;ufw6P}63B=U~-C@4a^6@aP zMWcdx1EjR%lKmSvoyle`Rh&z6qpP0~#!UGXCSPmrh`Jlmq@r7A5}aE}gH`P#!qnj- zuS#f?rOKG|ev{_z-`N?Apw@Nbc$j9$QWm3DE=z99Jz`Xd)?moVlRAY!WT26!VJETN ztuB)^cW2s6;@-|7Fm$FuRFMotN>cHABY?@<#@@PUyQyLcYANEKHvAclkfLykBay2W1Qb#TbZVG#&SgJR}!*MoKn+amy6vdp#)11r| zB`F}?N*4A;L0*Uw+5D+@C37{i&y~!JH!BfT&@ZGlwpwar)vYoqh?Yk#)=Gh-d8EmE zhGe1+CZ|Z)dXrz`4AgWq&n8Z~DO;Ikqb$Bis&jV-uYr6oYly;`D_?B1Au&=+@zf;G z37u4yK#GuhdFx#1U_P*%ZTRRll#M#Tqlo`80?`C7x9-l;` z(!j*b^0SK@LxovBlxLeUPFZQ4;jP(x&9+~7qgJy;rUxaWmQ77OZH828Ni4-Ee%AC* zvNnYkUP;%4nc2zmD%6!;$l#Bxm9)@o;X^_3l1%>qDAjtATip}HVcMvc;PGUpnb<7c z&Sx~1O;%+UF%eS?$zkTGbR7WOg=|H#UA?1GR_vXl)tz*WQB>}ZE2Hj}2w9RDt)rHi z$_gp@Vmx19c8N}tY#x%)S*)&l(Q~`%wRZ$EMyuW#;inZv_=&mVwqhpEt!gu=iDk*D zs*yt(I?^o^2$I!p-1QX{M2%B7vOB$;(bvLhD<+L6(#>?$u9cl4rt!jygds`rK>ilhO^c|=gf?fd%|x<6aN6{^q*Tl8Id46UTUC*8 zPqqI55JwWRR9eu(8X2&hmf(`Uw6>zm%O?(|ZJ5iPx5hT2)}?cMLrE&IR()6z@tQ&M z>K8K3jfqf~VWkj~*x54+;nXxthWjGGvh^D;TVue4?It2vjoOQ?NRASXN=nZ^SiK&W zP106!q$t%&hA9!Ju|Y?n&o63o-e$=k+#K0yqAaxFOy2cFs22KmiQ*?F z;_r~aNhccFl@^LaEtp9jpt~mLOz0npB997bD2h$evqYFCM+Y>sCQi*`-xCzhti91l zSe*Drqq{$Ur7kSAsYAc)r(ZMZuMf6PT!WLE1 zO*F%ilcc1my`MyNVdAWA>y17}E(;4+D_qXd{{TR?J(E>j zn_Fs{WyCqk?82_h=weMemuqoxG+|kdMict7{gG2H)4ZD9OXc#3$=zAEE{sfVYpNoN z`(bk3FdAK_X7*glBuN{_^fjlnYHF+QjGD%RYV{{R4CJY3H>5orv#_$1*J)@cE4^7_ zrrDmiopTQ=>0eE@;>pgu6)m(A7A7%_nvIlK807cISLp|*4+PJisMkEwlQx&2e~~9? zQ46D=Mzh+9@|LFC!BtMRF4Ahh%Z{u$<&JDeY`n0OO)V_SXiuXxqti0#&TXW{*=1+> zcNvyg-tg|NIuhB5VN0n`W@uCF7^Be0Hc6@pB8p{6B+EfaUdUA=mV9fs*B(x3jU z?LYm&PuU)2=x37OO)2d#{s4^J@TTN@7&X{pCFFO5*ZQzF@o9Mm=n(*(NIpG-TK_hK@X4UqRSPUH~*S^df(WPVM(5pQH{}(Nfq`N{{V<|u$mwvJLrdJ{{T}tr@~Dpr3}_q zR;T{={{Rs3PfOObr*`$E#(6DHR-)}w!^3fn!eQ_FU_7JK&QN6~)?#8#Sg9%ZOfMPT z#ceyx(y76qSarq@G8qF)WEVkV}TVjcDSzeQhN=KeI~B-=Dk*aHBLz_K};P6GjN>asOmOG z%1Y2q78NC0B1#B!TcG3jh16k!^Ca8%6q|Ul%H1z{nX&dyMe@g96q{NGR)%bR+Qix6 zO`F&->FH@2$GC$NkrWtdC} zC|P)A!oo=uzs;0ki$2lZ?B5Qfq!RdlCy_d5TIQCoN$HW3g1Bngs%hgVz&Wmp)^5m; zlU;5O(7owE-c(I6&WRyWKL?hA5U6;nsZOdyO%}){lRX|gI^>Uqj^hne6xpflk0Xd$ zGwApq5@abZuQStZtx`mWLMJv;djk_YQYDzYF$)Y6x>xpwlFGGCO{A5GVi@T*X1c$0 zW>h>?Pc$L0!)SgI81nw}FQ(1N-d8Sec=hE(m52xu6x|4LiT1s^^7+oL;u(mMKV(E~ zUZSYPS|ts?Mz`|$CY>zH`J0#ERdvo%5WQAjA?^EF(!WNwT(tOd6K4_OLRd^= ze+cnsM_U}rNZMSL$fjgDm>DMvs6@|2bP#&boek`H9+`BPe!&{5O$64&quwz^;~3q@ z(=crAirl$eTr;p%yJM~Pgv z7ok3#6y@PIB46&ufHcQv)?uaz{FO(Ca8f)|<0_VuaTmHhEG2_B>NW8^>EX}yGt`W< zQKiizGfip5x<*@$TD5lW)i2yBLy2@Dl^po?j@&$Pe-#D8{j(TqWxW`mwV4`h&fdRn z>0;GhtW`gFUVbI*qG}Z7(h5o%A3Z8e!s{Om) zamm&FfzhNkM#)*&e=}JosMEOQWKx^$7*Hi(bdJ^+H@B@1?Mf3US!}+Q5vDM;Qgw~_ z#x(xu`rDDRFJ{te}8f4$17XT*KirsvRx(spc(SyF+N`NPJe31qvnSPwGKx=`9F z8Sv6Anwu*K?M;MNHQw-CkE9-#XJ4F@r|>dg zgmjsrr(+q6wQUXgx$X-TT9l*b6xD)`>Tojck&MRWhn9Qruo4eE-5d^EYv$9{}nlVd1G{nMCr zn}2WS8gVqX%}C^~{sy;Dsyyn;j_|$I{_yC;(=~|Dm6+5Pu`_!(&1im1b_6Cj+BRXX z3X~R#+dS+^DLq+;(*?WJ6o*DFoKKLIvyrU=Ch6-KVk}}ChP>ah8_{=18NQRG?5$;_ zp06x$tP81XMC&kn2J}WFNcvkgl;ks17g6kr!zBz!b7G*LWopS;y`kPTKc`tjdN`1` zPFp^IfY^vdWLe@8CLw9!9a3|`hKo}U&JvZ#)3NB=W%0_i&D7R>ydjwL7lt+e0AyC_ zpGDSU&ghzYw60FwqNpTO6;i^bA)CA}P0|KLgiQsd6V$2S@gMkx8%?@%vs2v_PuaJN z#GERb3k-I~FKnaFa>t(SomgKRid$T>=^=(5;VB=vUy>hs_7mR*sV- z2xy*@cXy9==x0urK0%?YD%NE;D|J(3RO3=AZTq8&Dx}YUk98QMx+tob?I90;oIrUb zl|7B_WlbEKF!@vnVb6b*zKzerY00y9P_Ey&ESPD^#?BQYZ0BjNtYb_Ggn!{3-JJS; zPnwkD)K#I-c8~2+RLpFQwy48msG){({gJ?}$3asve5}hy_JH!WVrt0I(uO4-%7q@V zO-kWZBfc8~hei(*i^IEwzk@tXC}S#`K5^T-VWmwP+Bs_0+E}Kv#ZuwSN}uHg%kstI z9*wb`H!KwW6j7Z)4;6!y=`txUgBoG?OS(lM(A!D=YxmYbrEjBPp; zLO@AM(A>PeLndM9PmAHP>0?2s<*~^g8y^Y(0BT9EJ<>g66(o&FDICwW|=)vAkgL&dp5szrML0E5xtQ@y>iA(VuEQ3IFv z#P%EvwOFltP*dXK^@4u?0Qoy*zO|BBW}2*wBQ|5LDuT!;h9_8RxCc;V`5BQ-7N;WA zMw3!)!@{$EfqFrdxYuPfW)GaB8q!rKCq+_>8^-!`(RAd;a^if^#Cp2!GQ~LFTqh5T zlEcMKuBSY4@#5Q_6Q+G8oF@G#V&`In6nIkgWIqf{G7Vm77_1e?v+`x!M~4Z~)1-L% zL#Mqxrre|{AGstUvldrf;>FiWO*z^0F&xMia6<87$<9%N;4yBKi}#vKiCehK-A8$` zQ;S2RyK6Fgq*a$_#qls&9I9eAOmf{eX%5a?yG~a&eFv`7Xks1l+oj{vDTg$5(|+Gt zqzb{^o0Y$$`B6I~C}QvrZ}>7; zuM#zcn_g>E-4Y!pkjGJaEt{JPIB+9+4c+pDtI+36cBS64IZ-v79y?ZjFs|>s zGmi_y!MBTuz9&PTJfl#Jdrwj5Z%SX=8Ao2PqpdRYx}Nuzc>)XGHr) zqfWkEXj@E@gf@|~(JICF2R@ZpT_((ks?6C=*F`wyP^l>rz)^5GGLC5CuX$&Wiltqj z!1|-E5Rtg+qFcQ%--a1;dfR8`2g=!f+Zi z3MM{}jJCu@-xDRg8T1RK?W9RP7ADz?v{yTqiIn9{SZpjmxK&x6luhiWkC~|HguT%l zH^ap&;V2mRW$y31cm`y`Xpyic4wO1Ej>BGPmLsD|`aVb>wMk`d*%~OJcA!R!9-GH( zczzcT4MP>*og9zWr-K4HBy6frLKpxdo6Hnye~eUF{{X@_ zJ(M#=qxk|81yhFA$gMRC*&T}L<7OLUyYP(RQbTE0BBj6fU^9AJpJC>;!K7Crt|)Z~nMzH< z9@0low|0udqad>~cM?mI!d=qK6vjC{5l>-yF51T*7m0M>c&4Oq$9v#VLBl-Ku3V zPae^^-X*>1%cXlmNgF|nD!VLL!X}T}F^6cgeFa-1X*H`#`4{aY*1(M66ur^tyE~(c zAEV|JN#qjwa!}(_3K2Q|qwg5vaaD)t*J3$y5rU`t!=N^7-I66uvMIMDI7pEoQouM{t{zzFLDGTsik>58Y+ChBN^gvv zG~lfUk7L$3aG{IE&n>s~FNrvC@y%ZY(lg6N33_Kiq)6^!SZr=nUv>TOFyvERH(7>C zrpjq+C36X?is2ews>MYX*Y~^BjyYtk=9_JkCEYrD*2cDdAB{|28kLp5`^NIebRn>f zjjm3gy|k|n8jPXVib>V(?H%iez`(bQKZo9jE62vitdXy2myMv3O|3EIdL@-2{?e{m zpH8lX6GWZ7K35LcqYVMs%Ln}8<(hN5LcDPtOkF~|j~*&T<&x0#kFY1jkVw#%tq6G1 z#Kt^-ylbJjb7OG|Yc3w&Gi*FLLEM5>Qy+cX!b|Ij5#9w6y79(sY+X>Mla>k=JIi(V zj!mR4i&i4vrgum+HJqDOT5lz>i77X+!a9Pk5n_?nT~el*cbLZ9D2q99XqCcZXf|Wb z&H0b)j+{3*ccCgVn!}pQh^+I~ zd1+iC&Ev(SPmi$Wm=Xz)ruMfE#VtUsQ6XSlrQA6_mU=K)%`Qxle)YU%k4YY}!vYkC zRvYt2pXnVh69*Pmj;Zxux-o_pE)u*MUz7e$tt*|&XU!nyTK%i^BMac73P9!h;4sr& zJJ|UZwLO@e%~6)jpi-E)(YZ5K>28F6q0fJj9f(DlkZU=gvNU0LR_Kv0)ke{Yntl%X z9Li%A<80=55rxqrjmmTVsG8wyEFK3{ELU8#{{SS;d|r+*SI=MYdIHdC>qmA?7%4He zvc&4#M3#c5`y|>t<8QigT4~hrR$48x$C@%i7aij54!O@B^(Ene=`v1(`Yx3dHDJGe#SKRvz%a>L^B zl}btr%YTXF`Na379+PAUq**6`S*%z@%Cn)e%0fNp#Y&;S%sO6GiYXaH{ z!IOfHRDO8H6wm697wH|Y&}jx+XVo)uK+oT9BR0^jLr3V`DOpPAcExBsv_wg(0>-2z zX&U>Z-cmfq7@S@tqfm;1@>prDY}!1lhe)T2ZhjZsc0%t^a%}+7meB#vSlK0fe2m2FChF%IAtq4BNRD_v?S*Z z{QyK~l+!R#1rtM*0)j<~1Y7xqMvwp!0|gzx0{}H%2{R6JYo}U2oI5!twtSO`gf>E% zZX(CKXAtQ|EDsBe8Y^VU8{kM^>K2R3sYxdzfV$C?{{UN6T^&gr*n_HgRPpr6DW+n> zZ8!z2!&@h7rwKzu(_Ud^XD2LUnMf>CnjW}Q0o5znvLB!kOku0V&7_iLBZrq}bGEj> zO6cWxV&v}4`H7K9f7%tZ?J(&UM2Vt(7M)XHbPV2LRqpx-OUGB+cj_yI;5eGOTTDIS~c;}~QNChn1jP^QI zv~`zoF0n*zr_mmz(hag{U~GKOc=1BuwnWFx8>%q*PVwZ+Pnu-ws>PVP*|PdC9_OPl z6TT-C!xPNoaa*n*4|#9wHN6}3duZ8A<#z4dt}98KEm_s3^1yv2wNmDm(?)O5EKWwQ z*i=qkoTH0rg3!yfFQGJSWV%wLhjC&=(;{VoZo7!a^NGC_G}3#0XANei#3^PBi9rll zN32X^i`wxG@jR0@i-rxW2Ug&<_tzfM~2e3C%MQS-m zVd+uP(sg8~&*#$SWmZPArd9_`{x1H_JI9=ensnS=I0)ja5*gxm@Q=Hd?vJfHInpev zNj7!7!d|I!6Eb)18aQtr2I!@3U0JI{*|AoNsJJ#6(>!i0FQj|^1;k9JEFf#)wwT^L zh)L|r;^F1gC~pgZZUv8!ETxFn%mwTKHha+_lu*zjWroulH(WVX`%g%{T}fqzVzsB7 zM!)=f94}a z*~eF@pMG9QNP8qn|s)`;7lK$yVJs3&its#|j(BoNfrEXTwCY7{WyGpzA8))0y&=?YtO*>^CcsMBccMOQbfb2f`c;2I zkyO~`&E(8ESyaS@<7=lWL+MVE=4s3!99XzL+dQTjD7B=6+2UZKB}X?0H#j!NVptSN zm!$=tBLf?S+ z+Z`z@RORLW04kWqFu&O$c8?nLbm<3U^kSB)Xj-m{u<>rlTv{*mcaHjpODi#HrcEW5 zY|1F*%B4$Ken_I4clNxaohJzDbIL8f4w{V4V`rHZlZD$oet#5;B+Od>0K6eN1mbw$ z&SsNEn4)hM#$I|T_K&>6_D;<-n^+ z4R%u&pIGs7?;zm!#Ju(nl^I4hxtrlFZHqv(l{k40J@L@`ZLVnfM#eW-naY2xqruX~ z(Rk?sz|`Jx@6L;wJeb)FC9lk(1WxpwQ+>HeIH!5hdDdM{+lLFn44&PA*aC^6aN5pV zBP+rqro3;uAx@UqD~RGan?{k1m`YSz!C3i1v7x#V5TJO_7TFVTG(}ueE~FZUjeEc@ z;I-4`0HjlhH%Nixe76U=f-c~#qa#!oFi{8R44m=22_A=>2#D#pf}A1Tz+6}XH3NVE zzyJUM000Gm000001rUcWk!FdOaH$YPkj$cnfl5)3ccrT~L#mSp3(p-Vy|k$VE_nX$ z-V&iHY>Kv#t_-ZPTN0yv9&ya)noGASxk%D|9J*DVTTcDjNhp7Fd14JaWuyh8isMF+ z^k|(U3x>Ufx!1)M%#G2=r52uXA#_3{(*y6NH)HjO`|vaK5k@*#bcc*+IHSE zMbqrkUe z=>5}tGg4;DCS%?9OMT;5@R+jNzAO1T-aI3{{2%ao;o(e!d`K2KVdT6x*AU5;CoMO? za2U;}+DeopdCYBc1y&VCUm}-9pr2ZH(9A;|@h+lhf&yrPVn71k_SPZ26!V3QQg$p%cCJrhzl?Eysi7JeR*LnrY zBVcG%m`h4p+`eqq?jo$D3vhy}ZJp<8Vk$`Xi?BN(vQ}cc8A|2Lkg?;!Dwhp9^73Jn zq)3D*cNC?BE*Z(uMvM!odWPCk?i5bYISX`Q9s5U7G^DC-FRWEgBuU^Y8=zf+BE=kH zc%*7Fa3Kw|iv7c!&gW01#UvFeTp?E#`-e`n&7xJzNK>=Tyke#eQc$KUurJvikOp+v zYeJ+?knqYlk4ZvAh)5t<@oN|V0HPj(kW1OJH4a>+k!tx)Ly7dDNT1-@h-A%tT==73 ze~KMZ+{RlRKEA(T)=84;>ckl&DX(bQ$@8U2N@3lGv^eDTBhIQSC%9v(>$aG0XDog! zdWW^bGuD|SjG ziQcUP8SGyR#B;hygRnDCl(~DtQe^m^&%7B>o-UE+o}_moshcTJ*%1thlM>9CNLSZ(xs?TW1Fj>cH1bOFEjYMM+fN}gsrDr4Qh!<_PB4vN6&G+>>YZXPZb3C zj8hlV9){@c(q_l#ahlSpl#9ma@RLH6>l@K9!*p%XvpqE12U54Q4N0R`+QGZZ@RpJ2 zn_r`OHi%{gO3dgZ;em{m1erW_tS49XRGarlyE#fx%8w>*4Njfu=SuzNHel;Qy&-MK zgkC?lJ{MD~!ERh~)99BB=A>F$j)J6^Q8cj@on#1H$h4d?QM$EzU+@c(+8&UvBt^Nc zlF`hvj~u^ML3_0Il>L!GW;EgWtJg^}wUZ4f+nKt0qc*LoQLAH{(KqgnF7w&Zdr^5* zt!t&*^YZ!|3kA{YXJG7|xpiwTvnedveA`tsgg+)ov>P$ZalzblWRat*q~lC>MKqM{ zVt>XoeJy5_n>}W%b&Yi5mEED?Nt#sV#4)m`SEHPHu^C|wO|=f}I8Ju%%i-mWQ@Zyj zx6t>7mUJO8(&tB;9Nx}NW%jmvAnN=qn~%y9r+}vW1I8A{!&-X-H1JiUm8~mxO?_tx z%jlc5JtxrX9@*%7NVXvtju1UXa@oQvn1@8_B~NG4PlRwCAnB^q={by|TWAbJ_#rJ+ zrl+huJ)@hvGQ)C&o*y9dNz&H7{{U~9q|jn@B{C^}6AjyoflOqsZZXAFvG$<#K6rgBXTxI^P9sIFmR(V^2=hTtiHn2|krgcc3SmZ7PJ zQbky0;>=-LPO|Er*Q6|0OsC8$5oo5l#43xS)SHuE%3)@eYg0(B!@zftOCglTDY!tC zLODoP6ft~ZgEK^NQA-rr3LHTWu|pSzpqZiil#?|z3oXnaGF-C+jp-_(wFpz@%3+7K zb8}htMWs)&Eo|)5UT%pE!g7raGwVgNjmwN<7l0lX7E%XsFwA1oP^=u)R4!bua?`SI z8hAn&phOT;v~hHFiHqN;q7DLRCVuy1MZ5{h=CZF4o!bQmDT% z5UP_Ggdt2iDJEipT%{UvwF@meYGmzHQGn2rmHZ(wGU2b7b%~lLZ75w%>P9|M$@Bp* zO1ngo#_{X+#(d2(>~tm7rjvJrGWAH}q|Q+>RCR>C5gu4VmSLQk28hLpDLyc&bee$s znnP_();pxZ=gH+QJVqLnV`d^$RAU5{WV*t3Js@cpt)Rsb4vi|CzxRZdY@EehbL8O& zo%O{~oF^bmu`amZybf@&NaMUFJ|h|ULYE$-%7{_v#o?sExk(CY&Lq%pyb@jFvG9`4 zdL^gt_Dn0Esr=5WW$mPDzQ~{QCnpfAc%3ZQDYJD({gKT*j;uY=rT5}al?l(`$MA(!exo$Vv11VeGu4L57ql4WMIcr?b1-JT$~G~5A{bq0q*u z454y5FxIV=F_JIkst;cia(GRoTqa>G)ly**Ka&!@;iPskp5hK(tT4~Vm_Dw2p_ZO7 zK#zfz$&!}Kdn1>){H*5mhfpSDOhL@%AL9jy>5m7}f0XvU2jj$EM8X?{!pR!2vWmiR zlvpKIG}Xd5aL%45M2U^E=KG>rc?-ku2u(8kLQyl6gSBjr8xd+qFA$JIW)GuH zBGG3gwI?PXDRT&Qc0;9CIOvNxWQoM9gxQ3$b(sVX5{U@+_yw%xlITCiS`YR@5usGf ziGiOfi`xv8)G1v7Wou0blk1qBzse?TqB}2)w0PM5H8NBktK+3Vcrv%er)E>+lum%N zNG;dARGybj9W_wjB~nH224%|?LzyFGCKVp=Z&>gw-Kv#jHb8S${tlnvc(R+WD2wE6 zmfQ2!;1rodrjwax$~eqAe@8?}#$9PrP^YMvf4n(l`BO8RpzwwMkC1ik2-KqqyRuMJ zTwvGj4s1n!DRL2qEA%&R@)#f;;YnZu3wKXS~h*g$}EhKuAc8UUqq?LAoBzluBV9TW{ zDS+5;i)8e@AP-k$M?#YuHwcr7h1nIMWK)!-${M2x#iZ4TR#d@;^$QeZgvjgB6IZ9a zDH3s8(-2slPP2#tV~vkcTeWB}2#lHg!EX&p2RM#ox1bpHE%OMAIo4eirtFC<35rV3 zz$=veu>H|)WM0LQGF6-16D01_#Nz7)aIPv*N<^6*R2)`F(mS0ADhyL+$T8M^+e2KlZS+JZ6+pl?fsryxy?}%`{NkLQ*3E>7GEQz+eAv4h)hpN6unJl zm3%pA4O?oeYGY*t#J?0wye1ki3Nx2u$U7G6C74H>ShL~v?a_=p~xkY zmgACQoeGLx0|(XW*RO~atr{~MI9jUphNxz@G|Nd7S-4GPP3VV8p;f1{DcW^sS2j@c zOVo1x(QKt#XtF+2QYI5Ca`%OEg$zRF%oJBRMX5nhPdkhrA_xhpXU(e<9AYZWEg4mDWVhNz`5 zlA@fS5yb_kgjN|7mC=1J(3Fz6?$yjt9A-DBAaW%xN>MKeYK#o!;RKyjl&2F-l!Xf{ zL0NMjB4Hi6OqiUdHFp9Q{i2CX5!26+F<{v<6CjGsG|O3O5|FO33|Y;3ODv?i$m1eB zp3>e-+mj(jtU5`5(I)7h-5xtghf&%{{OXuvuLe1h$2^Y`N=nPd+CY3#mpT1_quUqG z6)LAx=^NS_sosKZJ)cVu&C1~}8qyi_Xxh*zhHr}=uaU&eJ7a*(9@mBILrL4&gH9Jq zDgB_5Z70lDPJ<}F`Oz(whwU4bT`q!Xn2o%5S->!AI8cXBgeD@DQAvA77I;;;t{iZ& zZzH<%HfiY+U`lZgqMq=Sj+WMLS~YcO@8VP_t+j%*dN7f{J%WiX*6MwcT;s+YydWaM!AhfQ_)AEGh*G9nc!C#jY6w7OXksRvXBOmDveCJE zoWcB29V)Or5ZXl+=5v-Q0Cls5lI(zN<`7v9J~32mWA{d1S~=a5H)v@UEhYWYUfr5& zxT=ak+KEI>PTH9a55eUsIZh;b$%{dxQ0e@ zwz955;faY!GV)H1EL@Ccf=h=ipSG(x9hlUOe5EB4m#R}6?iD|)*^17l?25+)@0xDG-}ez1y{Fm1}}AG1M(X@3W5 zp=PUHVK5;P87glV+5qYthwjuPpwR7IWjJxu>@^9JpeL54pR^;>*3t!LRU)bxQm=Rc zCs)BTl<sIaJs{bBShsMYsfKEEQUzvAX0{Su zn3LmD%qp9o1tC1D6Ay?8On9fPrR>rhRFwkl6d~P0td>;2r&uY4nG8b^XWg2oY5PL- zrs{^Zp_1K^-OzOdb>bsHCG)Bzq@5zvM=_dcCkQlCtFuU2i{XHr4ichph6~~fBo`qEL`jz8OM_+iLRU6gj26d) zIg|Mf1&k?6Z)HBw{{UcMZD(C==Ena3wJG~USuJ*E7NTCcb5l`9Dr~m3X{HKxjIoE! zdPl~-`5vF6zc>BAxiz?++k`?$PeXvCmK=<+Ig-;7QsNAhxkKa~i;?EfVp>G3!fIYP z-O&Xcq!Uv)POk{w&KVMsAx~LBw$7S~1Q5kc)dzfDa*HF8k=kc$vR$J0f>NQ>yy&Uf z;SMSBcLnr=4(UP920;dq)q+>?iF1a(C_?tYU|n&djEq`LWPo+?M@T769*|kSBR9-k zhAvY9w)gQM%1Nxro=cCI<;+0jm*bXk>!oB6uYmX56zlc-VX zZr*FIdi&APIypL3H*;1n%3MFZJ8CJIhs-$kfsp=kovj?Gl`?&y*U!XjhnJ1wXVGw8 z3nt_?@Ci*O3~=#f4wE5x>m0|WxdGcXE8-E`OAg|!LknW&Q#Me(6AM{d8ElbRr%XFS zVkhe=h-kF?LBr+E0*GYt7G*r84y3OLiHpKq!DMhjbDNnZS`WA~iZrHf5H*b1DGEc< z3JjFc#Yjpq^JUH}h@p;sfy#4;qREdqThS5tw+EIzB@E(uL<QT9~4y zmQ^TP7ZQt2HBuwd#2-eWBE&gXlN6;3D|MFKAv;Y>a@;MNJ1rELMHf;cm8!|_7@JV7 z8cwstHyG%x%BDSBMHqWt+`o-GIIKIFzR=5=dCNuj%+@Pe9AZR3EX6~Z*kJopn8nyAQ>^G3@qK1XRYf*o6it!cKh3m8QejegMWpG50%|D{M2V?SgjlO0 zx_Yu^DWFj!!$m4NgZKngxq+)LZ>pHl4GQW)YdI?FP*Vx%E?T(qiZ%sHUp)m6yGIE5 zMX3uf^|tGLp-LHXfyD(1GipndShb%hLy1aC6tsmQnAf##iPNa3B|eZ|GANT`r5IJL zdQOR*(!}&gab8;%)e>h_(f&5p_hLiV2hq55H1$%|JItdV%S)Mjpf@l4RZ!ORY7w}WjvDZ)Go<){flW_cxjC|5eksZv1= zQ}DHwRhr#m?Q;}YbEXcT%iPG8wuxn;azf;2{Tj+T&81UR=y=4AOYx5sLw{^IByT)7&3!P4e$%=4lQw!FqrC00&!M8h`m&O9Avae}^A&G|Qhu1}Gv-A`qOZ5I zCz$1|l?W-+bxJ3%;>sy6115W&&rPn#UXF6~;Cw@CE%Ntxhni%i>Iyv%rPM0u;)0Pi zC&xha6nWxL`6_o0nEwFOXT6B8hlBE8L|s#uI2%kpL9a8*WR&Kqd1&*j!B#(>Y47s?lNy%@`m{_WIJ0?L~X@scp&T<%}3@~nKwUU@iqxoA? z;)l+CPH@%iBgLM+@LFahzSX3xVHBG`E^>;SN9Vu5ZOYyr(X_q%e=nA;LA{YOc~2c0JcNN8UXSy5W#ghMHO#llC88)FbeqZaGn zAtdUeY`iTM4rMq4D9l;#M_@A^H0=!(+b@VEI>PJ}%2z8rRqq2*$g5Kgw}saWue>o{OW|-jqGAe*2{yF{c^nB0b^E>OQ%QU%MfAxx$a3kIafCH6#Srs{*n0^!yR5Jo;t;w4p^VSp2y zIG~#aS&NFGbwc?;6N_LJBqF9BP(4Ag=d1uRLE=;+tZGaam=ZZ(kT_K9HAWFkuMje= zM(|UhRPhMGgSuK0@&^)Tf);hyCxA1uarnc`9*R>zGg_pSf%lX4kqbxpJJ4V zxRi$RX(_KToUs|1ajvXl?NBhX#yPf}L2kW4(wd;ki(4MVTauytRa7koIE+ysrt$_< zQrKywn>Jvq1hD8j2^-u53)U2czNAH^(&devi*x%)gdR^OI#@@M%hXS}W`qx$h$v1} z_bZx9nL{$st%7i#A*@`UuF*=+r4_RM8dxOHNo+irzSB~iYn3fU5WG-ii9Mvcm7j_o z9u&8l$VyIP{{Y$P5tY!Ek6fu-Y>N_qR%HqM!%&43UwlNA={C!TZwe-h8b%R)0%*dV z_Dw4L#CYTV;EnvAG+Ms{{mP9Znj5RP@8CYQ9K;gl{NzXpHZn$;;7_SlIP5wlH%c6W;>Dp-oHMGakL zsI>LNSd@!PXf2ACm>;X?D$=t3yypa>YyYZse){=+o`o8!-$mui6=7)8@>thqUTULK4zh8ha{g1}E-^ z+FFe|rIks=k#p%#r~9FMhvo)ri?S6A@)yih65MIDo-qp==AWO%&GtwlDWq*Q7{;Q_ z*ropfwNzfGkme2)U$gTmoXh?;w9JX`S4TE+$Mr5L{{Y1gqo-XdAZy;}rdXNt7&2t5EpbrQ_k?7Bc1^>fKutQ%TN4%5h$h5LpXBpY)CgCkswkTGIx)4#{{T}; zg&GsORXw=I3~P!}d{l}3qKnf-JEammCM7C4p=}yl6QXbXF_bWPog}Q%RTP#c+a>=1 z-18V(5!v|CjRHz<6zv`%_qi1xv{MtMHJWd+dpT^7{<2s902rJ6tgKQ*tsL zqbmb#ie(L$&9}vxHFv2KP3%KexhW2lIyX~dHr$DOZPot(b|n|2c8&PH9=5CcrGJ1{ zn^9kmSls^7LbctWkiFWyoR+9>`>_PmGxwVWwC$spn`3Wfn4X%n3BQg@A(D$}C^385 z;RiKKM^;5s)TNk}`#PFnl+pE(DwjgZNa_Co?P_1bCo3Y(qSH%uNZ7C~vXUrnDhn`9 zplIoS$}LiV3MBHU)9(QP7uHo8r`=fh3V{A;lX(X(S7uIW24Cl;W zcyVS1tqaGagL!S9FA}Q}l88uD6jE{sPWrA6lKQV5M+0Pp3y|e7O-3WwPg_8gsMPh8KGn%vBQBYg-zlrC0xCh2;EoNMHz{!YL8c8)s!e4_hm3EI zpR`j6qAa%XQf_8bi!_IO%WUXiI zlqsD`sH}q4w!aA1W>{g!?Mq(Y3QH(Y;}{)Lc7~qI;L%so7{xlv@#$j4H;gSc&^jKN zoVS^DIkAqS%&EQbmI>7Nl^nYbS5jJ*PAzQ>npZJR^2m$5E6(3c`aRia2rCq&E6r8K zY28ykZ`v5*Ef?P-vj$qq{`NTyi_Y~(!aaekT+rk)Rvf<^P?7EpYog_(d%OqWo(~`R z%xDtXleif;F1!)A2cUVVik?--HFhFel;=oRURvhzw|6i_1wE4-qbI`TgGps3j-Kpu9Omt(pw2~jF~2Zb5&k*7+}-#518Tq01Y2e#XQ)pl8faF+q&>Y;0h*V z4%B$O?Jfkt#Ad(sbf7J_CVFqRSa1)gr4Yo2ZFaNQX4J;T7&v zNkpcOPcC9ow<&eW8^s+qZ}W|m;}Od*NjpV3voMTQYc@++Y;N)Ctf2|b7c`PhI#s+J z8dhUV-y}}pqeoU8zW)9uncB&jd6XM36%ugIT$ikoOOaBjT!Yey=+@S14Ao9q6;@Fa z)}AVSUubzv!!`*&n8{O8DUjGxDMIJVkksTJ&1{zleF68SGl>VO6r0r6UxDkUUq}pe1WFY0}#pH8%GW9SNnblBuyf zRUus8{kBK=gyb!YeZ;gfQ+qQ+zlbuvgxczP>epF2XE<1fPRGxTl4Z+NLkxqh9$Tyf zMN1n!CT`1N>;C`d(1%o#82x*%B}%#=!`muc>}DTeXHX;H_Cf}6WI-$$!AI z!Zd(M%R-i;u0s36vTIG1HQoblU;W%Ps*>un*|tVE{nVk^j@9%z7lzsY0F)3Cv&MUf zv3}6&M^aLz`zbCr{_YwtfcJbBW>bGxNOoRi_RpcmUD_7vmg1^kbiyw{dQE9Gs;WlC zNlA(dm0roRtUGBDvZ^VHt(InE_spJP-Ht-cSffl4lFJd0pybt=G)cr^ctOU@=ZTuH zk>}o$Zc#%|Glyr52rAhMP3{a@Qz|)krK~65#e!7C zjAe|Hr!HDbHA(YE4_4XcX=SW~EQqNZ#;#Rs&{C4Tn8m5R5!#p0{*Rx!pz?-l{{U_x zA4GNo2*o6=GJ6h<{6VKdayZ=j+aW=aYce~ZOk_;DN7;=N4?>ed`aB_z6&Ta$Ye)Vd z;#wrIWlrSM>if9iOQ6jzr<=YmV_gMGV+L1AGVL`Z(JJUd!aY|pRj!`Hngm69J=lYn ztc=TtEXV5uuKfy^4 znqJ@iSV0OMll7KLNfJi7WypW43c-lvOzar#Z5C3p8(7)Mq9&|z?YnrG*5>D^=HVch zvn;nf6Qm{zmq~WD%@L!*&P(^jFEQv@?t*5sn^!-4S+XgyeEDZZOvI~e7Sdyjr^Fc#RaA8olkuK0Ky|L(aPQ(JT(-TqwHodj@BJVV=hNN zZ6JASpK9&Xjtn@|?vAAARg~Fp0n1T|5lIRaqvZvIEfd=*1eG?-rKDTFy=5rQT74er zAHfNhT_wUXkJcFHCSi=GnbjOM1#G@ zFS;A(@^hkV0QOU8+Le>FAE@ax%5K4kQIMa=txB3ev@Vg6I#s)e%B)5ECM8)$Se@y! zOfLawMJk5CvieYnuGH-bA+|*G>;O_v@3_(liGQ;g(XlS56!%6k+6O!17>GtjZd2`( zKim1BXKy$z(@CHI0Gbm(pNUK_9LGrw{x@7x;!2#ucdWfEKgBPqFL@ITU8`?3n8eje zA5;B7hfW5PFveFCR%N2ThV0QyV|8R3MOLauE-Yahppknco-41TVH^4zD<9^71d6F)a%3#W;fn$En zqJ;??Zrlr=@e^7pHdGHBr-tw(l4HOTuDC-o(OJLrbtC`%8al>S2 zj(({7217_Cf|fM(M~TTlcx(=wa8$p#Fj`u92DUZ5(c*MZ-Wf|{qC1$h6sa=#!}~Wz zJH=B+Y2gzzc8R*#6*bViVC18$kYx%|-vFFg8XJNPsX4?VvYr>hG=(4%oLk}(iL-ZP+UEF*NRsaO#7*pM;p6(zb*d&_F+dPazd)Kc#l_PduQ>NW7kU$;S8dfmaodw{vqf7h|{|{@Y36}B8~gQXBK6V6%@elRRKcM$?Gu!6f;Z@!lL>a?IJ_^&Q!Bk7POcFNJdI zNhpjq)rGWId>OFQ7Q|K-en90DM`GzWOK-hMW{GUF=*~0H^}!Uj7WC;JvOyNNdHBbm zEjyBuK{GcGQeg^9DUiq&F(ibROA}HZX;6s^SF{ys*J?=v_#N|IsG9z`UM#H_78ByO zQdmo~6%zi);k__lm7LbfEV;Pgt{Jc3;T@{VE|0<4b{goYXdp|?iMT|z`a84wM1w+F z2CW`y{wT*kix&5a=%_V1kW+U3qv&prmc`M8EbmK&5kiL=t*VPOAQI!)lzp=RGU8N?$T*t zB@$NbQ7=~A0;FHEHazKWa~&%vVl0VZXyrXn^X45|R^#IBjeg{daO8SfJWQ)-)eOfi zK77NeFis|ea>6_*mhb{J$l^bWY4M0?)f6`Qhlk5FPXL9D`+rFH29c!-+G`r>NQume z-NOzF-NHQhPKNVkAakDB!803%mL@gd=>X2?I!sMwk0LUgHd@d|-v9k{7&T9LilBMAL^Wn)oha2T3+^Qr#CO z`$J590BIq%Z-dcO{{VSQ{oo|@8KjD-_%9#+DKGbfPU&4t@>5ldw-zCZwB=;e%M%S@ zv?-)i3!ch2%iUQse(C#mQqJ8m0 ztxDFXKW{aPN>G`rIG%OgC_=9n23yVA8)HmjVg7rZ*ooGircg@Kzmd1w@RiE}E@;tc|Tz4R)S4cK^32;h1Q;)3b?yNwe*8}k+eNIO*4^I6v8L^LC-%DHNf$snDkVV zy_z#|sZ1ik#ZR(9f2Kv|5{rCQp3EcSQzwby5xO80%;ZydFoCMe?v0(jc1M<@T8-W$ zyka5ZHsX9|pB-E2>eh~i4b*i{c`>O#*3IFHqlDVGN4jnyb&P^GjLBdWwI{?Z)Kaam zxW)9xe0_(TBC#gxkv_EKs2;;^5>20ME)5wtZ{Zr4jA77Pp%A3+;fP%sZoCb-qYyKe z<7!+pR=Bb7JDB<-Ok(pH>sfb!9K+ETMshkgM5Mp;2RbAV8g zT}N14KX`FIikB_X>UdH{l~s1=*?+4j?OGpJD(J#ir4j2Z7)zPZyeO&Cjf*SA<(8GQ zQF8uPrXdmU48^{6H=pRLOsvTDJv+Qy6uY^&hiWAXCqbhDU!&a_yK`vf69wNPGhmMd zx!X*+i`g*EwH0i|yvlDYww8^eE!i34CWol&(U8KXqGnU#J~`UUU}vQ-8p!Z{p*~+I>PT~vfu(CI zV$8=z1w{orB&#r$I$~*KM$uV1argyu5|x?kh!Wd`>V462reyMm!~Ub|ee zQCt*CEJ0wc4avkSl$@%yML{b4AhR{aIdfwaKGt5MDq`>_+!6=uC7^X=Z8J&Is%s}~ zYSTy39qK^SNt$DlOlE3K^#%v(Qf-)+p2+8V2u568D#(v8K{cD1W0HjlQEM?NFYOO@ z;gp0aNtC0^$I@p^6{F`*fwfnQkySAi#0yaxMET#uEqvNsu2m6qp=uFbmV%D_H{C}& z)#_I)N&^PWBpRTK3)&qfVMd!yG~7a63Mj+Jymb*>#}H}+&6 zP%~8xNxLJ|eHJFkDP*6@%53eHD!*vI@Q*u*mWNIm+X59!6qK8UEEw{4I*2lpp9JYC zn8_M}<()g)AA}b9dJR){Wz~!BoA`&MEyUSdD`#eN#^+3?YS_o2Qe`o_BgH0uXG$n_ z6va8sU47xM1Y43_3Qf`v7cC*0fp)k-Vh?7HHUm;C9;9^mMTL1o4s#?dLCSQdnvX2O zT$?dUtv<;0w2YMKA-M>pU(IE!{MhreSu;CNGx!-Ym=aprXnK)wuMRI{dSS$gOFyCI zC8~JFY_O^)YLRjb=SBqeyIfUr)`4}Np+$p=f8A9bYF?7?1|kPk-|#TrP{CeL`%X|c#BD`MpbU@W1wg| z{)s&Q0KFJsCOJ&6baXuh=CW@;?*xq04+=XVF#zjms#Ut_(>bnT3<@l`a;wBOivOn*?R>&EHnQA81k{=nAZx z92qHQW#uXYX&KVkMT`ftbUz_V&S>IB%_LxrC{%At(jFt%RBW+TCF8tVu9b0ZWeA(Q zJh|qGbzNDAR18{s)eW(rlq2J2&-#p@JM-QQ$zy(1k}$ty;<<#I!P;)`KnO0_0av)YrDHES_c zZt+8uzi?A<#B@y|KP0C|Nv#s%QbLXtdG@k}_e7(3!_30VhaGPFgf$Z77z(1z&E*H- z1DlxNDV>uQN*tmgI!Ylrjn*>9s~n}w znsoa#{o%ujCxeKeCU!ygk)w{Pyh?4cs8md>?4EPAW=W>6&Lxz=_gcd#qnUfiMK`U@ zN{Jh?6rJWU?ZfXYM;z0Orck=DXfjO8%Vy779KD4V#1dFbErV39LeaK2pu1{>t4^d- zmQb8yj-kp_#nL2;RLcX$F;k>VMJ%aNy}qXHa!#-IREREH+v;krNMe_{Skjevl+{8Z zMP3!%2u70#p=`{2BeZN2`1FChze%VFX*OKdN?*z5Ej^Sg8qH#jkP9O5Q*2;UdqOgz zb2A+0Ocq_b>0vJEdcI3mIP}*?O*0jZlwLmo?KY&UxP+LrmsXmYM;m6VM4hCn%@RHt z%6<{*?HB20$)RE84HcUp*~$oEsELy{QRnemB$3yJ=2(9yI~Bj{Py3@k;u-}swPF-0;H3GHsqB~>yG&L!`d77{HNz(rRi;w?(c{Uu?*2yf zW8P_|(o9iNIbMt>FOpEd)2cv+FQwIt4Vuxuo+ZzozLiZRc3q>@aZM*xY($dw3x=&f zXm`?SGRmpLXyt$WSp%PpD=$r72<0^Y0N+y?_HmQBKiJVpC9&cCDZJDCs?(i0yD4Pb z4~4^J6Q}ooWMuyU85&7swbKhO+3`MYrx@(ob<(ptMQ#d}ntn&9B%KPZiE>mi@|4P6 zxX0^^J?sdj1d+vv?U+{mAsWjUIy3tnGnF~^Mx~yYtW^0T>XUSvxHt4?8BR3{x`M^S zRs~r;>BdIUX!^`gvn?rZlKqvEB_=57qdF`ctecF)&FqRhLd`8m_ePV9%k3S{WlnJ< zc8JA9{7Jd&h-%8M!Y9L7W~;R^b2t_t)O1pWy4IaY9gcYwcmb8AsQv^LrK+&r8W(~}mH5gKXtM+`9MnPx{q zp)!el$>S=Nm#fqtF^R$&c+8I)nh0I?64SQPK`|g%(Ng zqrg2wETuXoQH3Oo4U63|Ms{m6jKkvbZwmNDw9a!d)~PxrN8b_VOk!e@Lsi}|xdlFo z+n2)gIK-YSx-I9J2{~2;BosOO!#iXq5tOX`M6WZ0@RT~FP~8x1dg zY~3vFif+}_Dk@48bmgq|laf~kY+JTguNH<;%WN)@(U4k{6;ZmaO1D&ZH1L$erCQrb zDPX2_lW@AZlP}H&VU&G2Q*~-`vIHVD@TwedYLjH5Ni6+9YblVZzP?u4W=nlA;<)n6G%B%f(KV$yPZq1mpCWtO3xZ)Pg3 zFi4bZJUD-3Us94S%q&0jnsQ8``wnn%o1le|34S8U!o9DhkxMpm_- zT30e6a!W$fD+!|hE#Ye~%6q+`+uX<{MzFG(#hEH9v2b3zQPhv?9(`Gi4oOc!6DGZA7kBWm&psDkJxapj7-IxlKZfaMVz(9$5)3 zqf*pP8NvM4S%vXMW@zO(=+18KLi%=^a?Ke@l0_t$wqm|!#qE}{x|NXPkyP{H1G&jz zIdGD)b%}{fMDWN}MztyQo>w3{A|l?t95ksYr<_`uRIWzV%1EMiiW;R1u5WZ_-KyPP zRm8NUBNf!dIaCnIR%mCIUQGU8bDcPyT5&0?YGigYMQ${8E1AW6t$39u% zS0yP%qSPZ2aWJwgoy%LyikxT^<7^3Km6_tf%~Chatc;CyRDqkpQYVyWt%i!{A~Q$7KDl6r)W%>JBDmi3!4X|$sU&_n5`kH zPEs#i&0Z?K9`MjPL3wE}T#+Gr<3))T%;c0>W@5r=y3pvF&^5A&J8r8Pi?XPrx6S-b zd3(dtw)u^$_ysXi6Uke&wN)`qsu?=V_J@*fbcvMd6(%k!DcYAI(+Fi@AKDoMSIJtp zZdj_H=z$oxJnoNnpMi#u6~iej#1a^>v|EB=v_=|gnXGZ{Pj z&SHF7Ly89-8Q!g76`5JvYUNy3xT&U!IC!3q5cAs!HKVh$)ZDv*>h+jMO0V4$QI+dt zWy{??J7DyYHnz6?NrQPC4+?6yDdRZq@l%v_4}{k38mqD`P5%JD6nWmkPt&q?j#oN& zSqOraDwpX2Y^*h{w#81USYoJeLS~=v zk0)t?m7tP3Dz9XVF-fAQ>I`z2q#^T{F!YSqO4jCJ+~>1)4bB&3d5&7W!NRnYKDCyP z-z6)y4PhhjgsDW^qJsGhu?w(m^@KF&SAos_K)uLCPJH=n)CTrdaNCJ$~&>1k_C;(o&_DglHe=YFPOk z63r%w6S`H(QvK45V(^mHU&M*5SxZS*!}u@~%{*Ghi#TTD$+((2tkfo!Qxoo(XKgl< zw68sMoEym8+4g^$Vxo$Dq3GEhg_W9?qQ!zRO%%)8<2STnXNX~MScG1XMtzIRmC2rN zlh3D8wY8_Irgz^c?ZlB&srQZ}X6jag|avY2-b8PDu%4v!PY4_>Bev0bf7ZHZHy zUz4P~U6JOy4Q1^=NKGy`LF~lOjG4$&Dz6GC6n3@VoaLhX*sdHFSVeF5xz>6rST+`! z!EJ57QU`95pAyz{5n~tlN2{%#l&s4pEF4Pa&9$@@Eh!McC)y~(^j}1}I9he0dBjSx ztX5IWGbo-_lRjhr01)hUmcvOVa>r;wPRAJO7^$CEA!#>cc}`JSi#46{gr^Ebb{b8x zkDC!<+9`H!`+}6hS#9N*JZ^=dmVfa?6!tF7*{P(37_Dcey6PQEirS}DV%<$1*>$0D zto*t~3+7BM)Y`WRl7=+# zdjq^_TShi(@p(U4IXgsFMUti=(@vhq^RGmU2_~LfJ3yP}X|9f{S}GkdP*@YE_eZ6J zeU2sheNSWfVTq%$^MCV!?RBz{*ySJdgDLovv1E_KVEZC7!8XFZMz2Idu4IUwfQ$kinP0UW8u;pLk4Jn|TDtKih#J!hi7py3BekA0-doS>fG4v%wOBAiGs7~(ez+<%Gq9=yX^`cE%Ni>`hJSP}W zl&gf{{iUpBe&$Xa#FVO0rR_(7n3&p{UU49ooZ+VJ;>v_!9vq=~W-^6|V@Tv@utu1* z#H^Qb4W5_^SE$*S<);zr6zV^G+#@W%j@m7!1YXi;{>(Tr;6zd}n52HvXRJ~6ERKa> zTM+s)t|g6nsmu0i{t&*1Q{%GJ)tyZ7hsK;gME?Nhf8h`<4Ux3EIBZEdUd2W!klBhs zhOzdEdljS`GdyTj6mZUFMa)um>N!eb!w(ZZY=6N{??dYHm zeLT)|Td5}6GI_J78I02fTvSQkHgV=9x>wH2J3EV4EhOh{PiHdx6ZM*oxOB*mxIxhF%5q2!{IM~Yt_xN~QOs*>FkUN?3+cAS-wN~t51 zy^-hRcu!k_@s_qCR|nSG+C7SCoRawygC4KD`y-PQ^-`#?j@7WoRI>K=PbDqA)|N7A zO(o?)5|o@=W1rcTFqUSrh4{G^O=Ufjn=qU=cxF6QYaN=+F19LKNSU@YX~QBUFZrU3 z@l&Osw9<6dou#)=W^(0BvqjBSMilC)90HKMhOkzwqC1a4wxxHb)2(+{)?DFFyqQP7 z=5q$JmTEe7tPyOV8iwqTnSCB~zxbE7@8_>2hnb|SBefzZs8Sm-$Zy;lT{iT-w7N}} zD=K2n5~(ttF$8leue5P)&CS!$;>VL$OH=57gd5?Yra3Uy;59?$9-W;OognArNXA8%r^ynafyA2|I4tPNHCu zyk`%jJv}bSqV$3H3K|!MSkIP7bxjYbn_rl zN+pb@^Pl^JD!*uPs|%p_8b6;mv=)BaNZ%r&b!u}HQeGYb(dE4%J`bl&vXholUJY%E z#aR=3qk?sI(9GMU=(YT1TdB-WSuKEa-st6CZse$6?q&U;uLo&%a}wiCBvK@g##YIh zWefJdh;6LZvXolcQWF_-*2=V684gu9i-MgaaI86$sHwZbQ|b)%uf^|UKpA_ zR$}2o!kV#5RX?&dod#_*w##UK(>OYGw2^0Ft-v3WU18U zSWG-3;o3*U!cAXC-5NfPJsunBIsm^wK)=MHKD0B!x0fh$qJu`M(xoNKQR*Cl zh?-5D5rR`j51V8mm%*)0$kf=~5a~}!_Fap{5kUzA3}u=onyHfN&DzX3a3-fIVV#)x zPYVlE)>e|*Xq!P&%bhICSV=4*Hb>(wV^8dlJFBLPE2cYM@Rqu58Eu_KUx-T+YISd? zwOK~O&-6T>Qggj;W}2$BI>Vf*I{T)|HqtJKjOB)@OHk<#&C1%Q)PvWA_--9FZL{a6 z3|v>y9%i@eEi#raOFw7cA!M24Sxs1|60`FX zI*FUxFQhx$UW}F%GZ^ofIh`pT=a@ZE*Zq-hrh{w&<;qLrWMz7>yQpXTLp)9^0&1k0 zb%lu?V$qXRrCpPDvCxn*n%Xss9h#GDkr@p)+v{6uv|TnLmI=hJUUHKW)0Y{DTKlw= zU(56hH_=StS+0*JB-D*bl#;*9LwhC-=~GJb+d-o1M<#rNvU@>+LFMjY=~YojD_Cn> zExu;>GM;p?G}Q1s`LPx zGU-beG{a^CViaAicw~AD5>j2}eCvd6=pvVpIs$+hfiwX?T|RIr^MPs`!vdXw-!MVN ziqPE=4rExEYC@8XjK@f=q;J(uWYNo3X~S!?B5EKlSzAdI#j0))n=&&+V@@&L6qguF zi(HB+#q%$Aq*4_l`D z-4k>=gqlt8x@Lk3%_eZE9KIzn=?vw8iwNm0iqvWbp|Z6fxyiIjV1T`N@0fsGRxD*jZyVbtVSg_Ww6p)r@N zRhugerYvu}{{S&L%T!*rQM-hQx+<1~rlc>b@#p!6{(@~IrW){HF4rkDiG<2b zNt3na6-Khl+pCnH-FLD(U6!!ce#9}=l(cu^j@(N7?sSyQ(EVQ+^e(Hkqzwb8*)vb z+v6PslZzQjY8thRuXK*r~KB z= zJbwx@Guf(s;G309Q0?i7G<`*J#0%&K3}YG>SGL2!13-E zaNd3{Y@(2-;LNC`{{XqC58WEi9ubSf!+Y-flvq=gv(0-KLoU}xnlzbB3hAqc?-fYf z5b%stEH3wlLTE;5AViyCrjcQkq>MHSHMC!3l}e9;lHy&v4Y^7CJ4Rl8pi3_|Y^rD? zyt!jXV$GZ$7k_obnPrxelQnUib&OHGm|6*3q6Lfjn>H0kX0*9eykzHkWV5pL&Q=F= zJ$DWk^2AK7UiRTSL!z5AB|wFQotn!Q9yw&7rT+kEX^>)rGGVt#G!us6CP)_H6^9+Q zEm)7p!^`x;BV7X->Juqy<%ZVoSg8ZU?Ccr&_el9G7dnKpS2UVTl**boICXuj-*k28 z-*wl9O)qY;dGDakaza5u-V2vlW7M!=ed`Sxwr&Z9CXbkB?Ul8c z*r{>eJytZrHx(4211Na=JpTYtuX=3NxWO7eLAb0j4K$w#+fo`)A)CHf#i|&M@Dqpj zhS>oarP55<`b!b4j!Q0#ZaOO+Mc2F9E?EA7J)2vVSc&X!;I7@k;31O{x=@O-f#V2m z0T)G7*I!VYEtr@N8-fYEJM@gp1s&jkj_`Xf^MD8d01yBG00{s90006zf7B1IECFRB61A^`ArN!Ln%2b9 zbZAF6)AWy7w^)(ShZEqYo`-a?AwKj@`P2UZN^7@8y_00T3Y1JmoRqQR9Pgl}k5`^) z1e4Px1sgFXW>C=KHeb>>O|7&uOLI2YChydG@pUt-tRb|09_VdnWwMP9%hhK_I{BB} zJse&qvEfz%RL%%+tz$fCJF~g2-502t6_8D2j9kP}urXphVPxl0oda;VHOJ>K@W2@xZ!TSaxnK(<@Yjy$=XWU8RiVslp0H82sap5 zXyRQsmCMTYMNp{ClspSn!@=Dn<#Khc8nY%%6P2A~RjQQmH74y1xNRdWDU_BbTu9D4 zJ9)Zv%ku95RK-J9N(k#kAa}`C@eCjYtkM@r~qFg9kv1CA0YVICX@bXQb^Y6pjeFZN_sTA1iF|yM4_O@o3Hj%1WNW

Y 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 %n!BiKsUSijryJ~7Ijyqd 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

uUNZ8%fec_!ZwxkVB*C~ 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

;-=6#W&0@TDef&~8F0O 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�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%0D~faWQzgQ%Ajmlr}qkl$NoP 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

shA9e}qd#X8KH{ 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�S=0eVhAbAFF$kjb82{D_<7lz!;d9AxJ@X_q@# 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 z z%2Nmdrsu`Hswcc()60|vIn-OKUDWrl*J(}F&wiC$VlN$WfgSvJ>$KnUxENlD2S+50 ze07SPe3X#I9jO_RezTlrDV==YeAX_b+c2LDk}tws>^@-}F0<#!@TtDNR|mjh<~~I{ z#1*2bi3vZC{gVqjPqGXcp3s0y8=<*B8zjA015wPdwq6-@S*olcT*rp@BVHx(Y59Wv zuF&3ZzfIH;XXR>S(0!A0WST*04uylliJBKUCGypfSj% zhdw1TpG%pL2FY(S#MH4yx%`>;B0~{ z@pSs*vj^$RKEtlN(&{-pG8@S34ZYeSHJeU#s_OVk_IIK*AM|XM-JDU&Lq_Q$0yB^A zwt<>=%}0(hZ1TrYA@y&&ojb4Os&)C8MV~?hruLk0;#3dc-); zlR*oh9g)N>sGz{lmjvi;p64^%=o23iw<&Cqq>M{ny@TD^%^~Mgw<$oHAXzO+4K-G_ zAVkdcPV0=QjW&QKL5|X~OU;zyx})$@8PltaibGVUGPytTiPh-BHKhG$GjZ;eFZw6Dc93NjR`&V5GU6*ze^@bmDlJOc^o^bNsnEn0( zA+Te&fKff}`(yim*Q~~=feb)`o=AkD!|>H-gQJ_GAbFG9x+zWVw=b`9ppNC(VW)@A z=3!|07-hGp8V$)Zq zL1!pIaFq7zc0=%J*T=xQ5{9=%`>dA=sr)|`tg}ivF$y|hr`sz#Iln7gI?wWT`elZ; z6L{t zM>~I0d-@J9(8cL{GTA~%^0gA^J<*&r^*8OZH^Va5!i|<*e%Vp!%U)Py=_i-Ua9BwK zr5+RLX#(bi*?qsXy0q%1ku^@r1W6Lxu-#*s;No}B-?ge-F&$Eq0%>@K;rK)6Lc{R% zp6<>Ob`yCQd=V3vlQ7`93-q2pENwMVOk{9CS@vP7D2C6gWQX^~4&K?f@(nJ(F*dc$ zY>w9_|4P(%ugz`NXk5_RpnM78&MA#Sml#&2-)t43Jq#-B^#C?tTW|p(h1XZA6lmf9 z@`gUtn@8Hxg(rQ1()|+Q@dH(b0 z&vMdRPFqIrgv?fj3PgxT3fFG8Zl4S*FKGG+ORGn#(a{D(q z&)|%>nv19*sg%uTY8wMQH|C)cXs(O;?i?@ya{?I9}WF0yc) z14#3O_Oj$n*kI9VQuE;iSTIN(7Z+wQtEy7etrFQ`WKzAQE}c}6+IL<(8&7;e{PxYH zrKo#0e*E=Sv1##{(7LpdvRYRpP>*U|qPAPHOc=w>uuG>|t6}N|e(8;}Qga+{j9c_XUFOLnCd-caPjZbS*(6S*Rp64!* z&yrOPGro~_0@K_tih2Ppeh?7v^+g3CYn}T6QK7*LAe}z}mL7hmmmIt!&$rz}v4bA+ zPh-V zO$(o_Btug&n=Bdp+CH})J@$y5c>GTTvdoy&MA`9jIKfR&&9FtmPKdy8>MYI^}B+*E)Tlb#P`le=OMoyps&Q1U2Gffd|JvB-5Wno+Fs8bPsl`);DerH>SFO`0pU}Ri_g;Jh zZmS@-vdzyzr}r|h@BEZJ^LxAm|Cm_u<*G?{v=tnm_FQ8H+G63$|2s#E`^$Q1CThT12$yi3e0I&`au)JLHD4l!CT_q(#o*GUnyi4V z|L@l3M_^n2WRc7q$+=S+aGWxa>OXyQx~^W23`6uBzv?%byfUMyE%JHgcyd!$#-+mk zLBt#We#$=G)|fzY^q>z?Xhc=Yr#fe~tK|q;Xx>a03eC)Mf~!J!YpWzF=Th= z7*PW}g1{u7`I5;e3PLgXW9@&9; z%cjju!2*vhcJE5Mx;7@egw$xpNHyJW&8m~M4#2hY2!SJ82H;yg$>}kTAmNQs}nTdyv6^! z505{VCvf2Hx}4k=n;=rilkqmIk8g^gKN#goJL>##VDMe~iBEG3E&pU&#<{_10XQJOEt7N~0DS9-evlBYBY}2jc>6qt@Yy;B$f+-0--Q=5& z`L|7)d^f1siq+EHzt$-v`+Gr=+Vl^?Bq1l!eufVT!?TEtJY1|iJmf1Y=SPOwLdei+ zpO#yKqARE}j}ax30VVLd(Sb|enap*W#G7~qkeXU*zmJ(DDs38yz$qeYeFbhU^fld)@D_cBV$IHUzK z?W6QqYNq=~Dvd(WOYdU2)#yZ%a>l^XArv+ifMI?`o1k;B@e0SiQ`-5ykN@3bm4>{l z=b$po4Spqqr30pu40WNJ&@exml>ctIx?Xh4kM-il`Xmm;B${WV&7RFa6nQfO?^@gu z_(3!D_1QX=GBOBY_m3&lcp-)Xe)XV0i3bWQ3Q!e%EH$Fk;&yahw&jJaBE1B8#W`8(yC)4sR( zdPE}l>mt7o_anU8zn|HrK^c6(Mo|X$j)0y?TgY6#%Z=UhE>-VJ6qxw*RdJ26Q&p9U z$?^x7Zci?4(0{kgV`#FVSrF3U0Tad<4XX+a6Jg2lE?t!11)x4JK8ChT2i=8MVpY`; z%x_zRwdY;(VC(H6YlesSUfsOIKW2}y+j9rq1K8hA@6B{SY@wT03cI?yn!F=zK=+DP zWCS+up?#H-iHym%F;(YrZL!0)*AIAsn^eWSv?&)~pMJCqO;KG6kB>ahA6Iu!EBdx@ zMd~pg07F|Y;^d`=BH@*n{Aaq*0%Od~QoazGiVc6wH?yqKmeKH@*Sm}emjj4c6pf|^ z-@HICwST-gTck}+EMXUh?Qy7$)2M*S+ zB&9{v*(+ZqK%({=JCioY51Ji2NyPMo2~} zcqZQ52lJE|H9mC`^HD6Gto@0VUVO9j)RxI_*H!pi0i6gDmc+a_VVVE>kaC`FY|Y@l zBJ-W#-gx`b7A`4Qy@!ds)(JJ+s?Mb$X-^kE?(&kt9mXexMB2^p7Q9^+vKT*O;dY5k zxFp#c7Y!I+ec90xaA->-Z7X}D+!c~r6&TPd>_+gG-N{(yPMLWG@hGLYQ9p`aleIdI zujB4E(+;&K?^F2nh*=qBTXR$&#)pW0Z~)2{p)jQCB%GyVWF=R3fnuDi z97ZNu%8s~u;uDl!P95ApVQxGF@0df}Lhe_HU8@W)2Cg8gaIMJ7x@^%pUV0i+lZ1uds&$5W);GJ zqA<%x&Sdv$@Rdsi`^Ov6OC_mdaP7Za)@JLhTXGGaEw05hEots6Nc#$K&9+ItG^O7} zXyRiQ(H|`46OEc%2Q!H@ZVwt<{U5D8Rz`85-DQ}v!PeuFpE91l2&bHC4#rhXlbY<# zm6Ei)ON5l8of78e+T3K)GIvJUiW8t1kQ!sU`OfzYrzXFd9?IU z72GbaOmbXd0Q1Sn%;=Sh4NojSYZWM@oe^XX&GuvJ40o( z3a13xQHgy^kYlfjoJD`ggh|JVZVivmVe_lTzqTtipg!EN02mEnvX~!zGZ#Bh!kCXTYk^XL<&;4yO)`4;n^VS<{KOU&71tPzw~N*77Nkj@@kZbSx^ldgJVH!E*!8NzaRKrypiK;T-fm zxD4E`G5#9_bIz`7m*F}K-=jh7mAT@ETc3Yv(@)T7cXL#@8B>wX6PEtTLbVymUOEE- zQ3@`{&bXWp#^vw40*b=t6iJf6z|`s`0Oj|9R)q=sBYJ`>kB)`Q;gU?S87VE%%#fys zbhqE2UcxrrVfgitMQMe~D;AI%NyI6r-dTYc`%O#xVqj3e+E0Ky2jF=-W-_0=56B#t ze5hRpg*4IUFxh;JWtFV31B7RKx1^XbgGg>7_$g$ADW}NGZxnj7XN(Z5L6P84Gt>uTl3fp;?Y8(XYo8)TRd%j^s^}uFcmP*5 zlMkUtN0}m~?REW;=Ky;9X5S)nt*#q#rED&(V!f(SnUn6mf-}0`(A&1jx!j2##7`Mw zU$b_1GP%r^s+Gu1rSq7L|M<}-dN*J5LMbhShl0DVBmXA10A(*EZB!!u`c|^D%=J&e zM}Sl4fzAhGOp4Ygnawg+Je~ZB5XsQ;`p$fnQc=Kwc7_o(XO|u0)&Nge?+erUmBLO7 z@70ljPADp+M!fVSLfuJPWNZaYjAz{E+(*t21VyYZL<%Gy==ExzEDcA zUUNnZ7}RLn_U}>V$#OQ*TK%uQFg6IIeKQ_~-)HR9O#2{Ub9eGy{l=1-*f*|J-O+g` z#)R{D<&rS^5c$yH-jHPo%K$9|S2fJ}m)8IAMy(d&_HBYOk-SM`Em4juXJCSeQ~Y-M zLD5jG92$EO&zohGnj-jx$ow{09W^Nji=RJujGsz+9jrDF_K{V;-`C8CD8(C;#^y3bT?k=EWuuI zO~`n9(2BNBY$|HyKpaHhD$2$b6S7>|d7O8Vibc_me&fbI)6XzWp`5by8~yK;l}1(D z^3Rg}ELt<)&8;W~msr*uw`6ZiH3vx_MfK=)8I?TjRYqB{!8tmyA+0~F68J|9oAZph z$BV@dN5N<*7%y|TRuLbAvdM5;%!qXjoaSfBb42k&YNG7Zm3ol7=!+Q_FJ6Wk$ChC2 zE*tF}KL6S^mU?TtAf~`}X@**br?+Ke(TTXmNX&3~?3ApK?@g10&9JZsE-Z`<*Wb8< zYJ9AvSu!`G)%RHnoBRgh5xB%oN!!cfDRU75*v%?ZD@!q3~)eCnvS}8M| zm69#X1!(xXT#2D*BS#%X+9fz~gF8B;6|twNpOBPI#&i@crp;z?T{HT1BN z)l{&AUs^E8Zu1}0i~@1=H9y0A&CTeGJLW|HxB2)tYkem&1c8Cj6z`GvCj?0Cn&d>+ z;_kb;3AYE@nbAS$`O#x@MG`MsS+~sTBz}R;11d8g3%~EZ(8{4vWT>YmQuW+6{`(`F z(qn-o-u=f`%Cc;CO5$ZBP@`KwA1RANcb8+>g=v8YNc+XHz*|Uw(OS)fMOuWCmqotC zA`N2d@BvvCju9Nx3uIi+=~rblO%Kime^YQ1yj&387%LNDTiO#^3BS6d3<6{ZFM zir^(~N@bk6aexO{WDAWO-D-do5acFEY8tPFs_EO5=Ufy9>^i>0mIsr91cSA2QpXQ8 zzoq@WL}dq5lM1xtBGyu26p=UHrvkmRBP*Y5L^7joRr^jXV~L3w2=w@ z^0WyQ!0Zu1?-+k*gt1LBC{p&5Q)t|@Oq&}YddaTEt(%HqM7C3{SoEb1zdUNRJR?L| zH*C6Pw`5{!=Y>x0@7Fly)q!m}WcplF0mIC`slt-U8-P4Fp^le4K?t&J+XO@CwdMT& zamGX6dMKdhRBZmo-}zJPr2r@ zfgZGZ$ZzEKl3L4hZ2L!nKMs|hCYol5HgcCN8zUtp%HO&2F_mL@#EQ4v4*xK+DE-$4 z$5aSdPp}0-_(%)km)Awm`NR%O^g!L-2JRJsxuw{YaDQ%_hF_F{uyrOViyd3SkzE}| zKQq6`*C~UJB{&=z@A68r<{3yV`et#-TRKy&7c(QumXud9(Qz`}eCola`m%5%C;Rwa zij=xg6M@lB3Xn&F$fCLKUWOtGVx*{1>=ZvqoC90Jr&yxsDHT|ZS_r+oX=@mdJvzT&P49)&!A8?j;J@uN@zoh+N6+)CBm9NW09n2LM$$wckTj3ic7v z`W}%T$D%hT*{^s>!RRrx+cCg<@*9~nlk;bmGNiDq^R4}IlIQk~{NSGEx^R+L;E3LV z{b<7-VDNAUa{g_QbELNJacS(Fk(FNkUpTM-D`q_+#zOb%BLi$`Vf!a%HwaY9YbEod z&jD|6A^?>(zSJJ!O!|eB;^%}dGk6C3$rLQbGy8eZECLHZdRJ!rLa;??^0zYRngp)6 z+Q0O#pS0>0!h4rVL9g;kBQGflVhQ)zqZIwPOlWUHJMRh@yY(XUov8P9x(j|&FAe3l zO;+KPLNkcfv;P|P&mm6F_}%m~i@4z=zyso@nsS8S7rB z;yox0aAK4BJ0%i5Xk4sUZIfS5z;_RtR}>1sC;;V#v5z$Uq(kEp-ii9Ntg*6r@6JAE z91O-Ceuav0+Pe6E z_Zfg*8?8CWItw}lrFpd4%iHtg%8*4O@yk`gCa)!1A9Ky)yg;c*qZ?^qp^ff}ZaI*@ zL4L~sES1Sv?m2Z4=!m?Ry|ie!uDHekKljzeXKjD`=nLKkP@^h5_^yn8g*EkhRJ`SY7nFkgF=*%`*HH`X(*AzI(h)3c%B&Rd7EcrZ>=q-3P)sWfYxj6Xe^ zl!nXrS%oQOcK@BUX{Q;(4G3^cbr?uNgk;HXCK=lw-7{0Ea0XlH-XFjbS3&FxMWZFm znRtNF8_(x_)&L^%#%55nW;z3ff>U=Vip3JLyzufzh;bBzoD~m=)b>0PH|hcUkQBisdj@`;$ra23&Si~M@f<1Z^TO@DD*Eu_wTPUw= zZ3=3rGh-x+@&2il7l7(pE=F+iACQB-iiGC6`!H(4W%IOC!`f_Jk!!lMeG%Ot#!@tA z#B+XrR1XZE+~Fq$piXqnBROSy&S-dlwBc)UKk-N5!9#+UOYEzlMZ#lPA<_hb2mt?@$sa>j>7!n=Y} z*s(>T+TPqVMz03s65D)Qjoj{ge0!XXIeaV%tXP&QVRsSwjZ zCI!kIQ()0r4&xvDe_b;nlN3UMFAM7FMX~iVvUlb|;YtY%rMohtCZr;Ppi5rIUjs+4 zJp3)$`C{a?wB?Hx0=1*_rCuw&eYiA7S-KQ@5J0`MAvLXU_Lm|cO?AF$hCR@2Ts|V2 z;9Qjo?^CA!k#7GBWK0tD#4Dh{S*}}{Dw=0u3(muB7u|y;AGrolOp>Rc0Rg5hhmhHS z6REXT0ScC12`ZzFD9AYtN|w2PRq;oi3;ePC?rWt&778zkA*at0%E-F@*P^x1yx&O6 zl-%DNsajkMDDE-#5^92Y!GVS0x{_H*m4s+G*Ir01%rW;C!JYnrff-<>x4tz>E;CG} zEwo{TDx~(&f43?$kEw13?>JMMPC8n-+X zbEgc6L!Inu*FxIUN`6r6pZeK=F?zHwa(zWsuziyIq9;{eW5@J?%E-B?!Q&p}qq_$> z-|p_)sp|I3p1FK#kP8#dZnRV(3vS>l!)MGiUg$jpqOdFA&?gwUW-!}z4zeTNoTR;jn7aFhr68@pm&^b8pXu1rB~nmEL?ee| zyA+#lk=1BePRhJLTTR#(0b}rB4uXp~P=9ayG$818d6+ox^H@dFA@#3+=hVOqjN`jF zqdS15_LS1Y>A6ylt7(HQWd>wy!H$TrxSp(vYJ2ABipOU?u&Ki_$ZDvV!ruWZ}?k24wWd0ptzvIH#T03)JGOlJ5 z1WT7nvn?2-^yV<_aXZyXnlb6W^VPVeBuDm@v8VMcl>NPBuk_MpJd7@01D6t_|h0uu~5|Sp= z;D*er7~RF6O#Y=ve;O$^`$&r1<6WC&%lZ2OI4)0G&%@1BKu^Wf){mmdeu?Q#M9Tgj z3qS6l+}?HCHQTD%O$XtekM>GYu-_?ion_5KIol?vz9Zy?<08bcF|4L`Hw0@dJHKY( zt^FsLM)3PI({$v=`<9JUb)if6`j4T0t%f`HBHLr!;#@{Sn9FiSJFIFg8D zS7;hba<6M zTu;1W{gLOshL!;fZKpJ*&&&M9WD@YRg%9(;Bwyb5Lw45QI_VqIazg59)-ZiEZ!T=t zvYHsA{n4D7TJ$X)T3t_~_C3+;wvS}Yr?PE*B$}p~3W>cDYSve0*ZAbAySaOVe456n zqjNbts-)SO!CO#X8Y&g%vW(voshc-ByEP|3`RU@hN$Ptzag0?_=5CR?9eHS*mVF|U z>r<4Isoolt)R9M;lbxL;HFqhf*>Z6varD`}kez16)mKZghJ3@6X%nMminT9IFq~QU zY~6O&X0g++?2cBPwLNYhi%?l5so-Eq<_)A4l;9Kq^MSs4(=&r4r!GELa zYw7cUm27hvRZ;t+o?0y(+N~M7m&~n{wC!5CsWLTFHAWJZ9;7j$HEERg5j9pi>zg;E zG|iDT)^yRWcsQ#Rn4R3k5jFJFNat>j0)4>DvU-ylf-mz{*!YDfcuRC?x;;0g+aDv8 zSQh0ovYBLwQ*s>LYP63xu2Q;XfNZ##Oe9+!BRRLP&|S%m)e@A+PElc^%^TV+D@;^Q zK+jri+}{{oQ&N&cHr(aiMWU7l3+-fkFF^LSt+nXmA#immRikY{`8#Nug8kB$?FtJ; zq@-{P+ZtYm4pXc_(6mpZX8I=4<4ZnuQ&$ePR8z8b3^UW|!-gxF31b<1Wb3I^&eXkU zq&>*Xvx>dXg~U;u~kdD7y3&&OITs*HcHVsNoJ>pX=Fy7_M=di8J8Il8a8qI#6Cs=Iic3eKn?mOaC&;ZgOuy1w zP?5gPLcX;ky@}&REKJUi$y6a~;xMw3*>{a`6L6VHPozB)XtXgXYSZH+v`v-&0J|z; zjzv1Kwq+$xSzkR+zbaE56OeBXD)eQR4eX93qzPhD>7{MBO_*X`b)&gk%Nb_eNfKUI zcPP3;jLIxy)=|V9ESgR*>djRnH;oxej+o)Pqp9e^M3nx+&zDHWJIP5g@Vi)I3w2w$ zO*7V9;}c?SYW5dM5=oY{t7%c(5hP*=#hPB|s zEnX=NnzT*Y$~qy5)aRTi^3Q_m;V^A>N+4bug~=@R-6p@1D0NC~$q>24N`!u!j5V9M zL)##NY)U`J<33sI>P$fhTv9MrK7l+^}e$&?QbgmUHxLTQ|(78Azhq-M-~ z6ADT;Y?;?&c7V1@&p2?+!BITNs93b|6mpl+G#@B)5}d=U=vu?0rYES_)n4ifFJ2tL zzax|H4qc?1EkDqWv40?+renBjtt3{AtEW~)3+)QvPBCr`>RM^lqgiLPnLo1jaMpF# z^Sq9nt(W;9WKy_wCw{gfRj^mOag|ElAn=?Nm(mhan=o=*)Q?4FTO1EvO@dNIl+KE& zteCHRFIcqHK}gNk0;Vz#dcNqMcPB9lY)nN4r3Vh*452BP48bLGvH0mQlB28ybC9M2 zM?Oxq3?Vq0lZ2w7^xap6!%VakBDBy?He-%+QRnj$qKUiR(B+s|lBQ0kD;um-v{ERm zQS;BukQClylMJ3LXC!KwQ!;U^zgc4#6q;Y*Ig&*5>M*WwT*8HkiJ)M!BvDwT?wp~Y2phC7nU$jJCwMZVswdj0 zQ<>H$2nBIRXu+9^Cn+#+PQb65Q!z}HaTl}{qvIGwJC8tVY-KA+G1U*MtJW5-(6(xo zN35l!rVK8{tI`*;sYK~wJPFh)%ai6b5>ry0k#}I+mRF)hTz~BcH5k6mQJ1#PC}4ES z@`a=n-qa-~vNE|rIa zj?%uByH=Mi*Evio950@+5t5R$O9K63l#sc&M@qBu?Lt(NMJ*=n41J7~DEZmlsp7~w z79lu0qgd``EripQJW}KgVgPe`W1#0G(rQABlt)Qiq0CIVMPG!N?u?tC$`zy$kJa}; zU-F}aSA)Dcj>785)vB%S3ycyJP+28)W=<>b3tec6oTBmA!dr&27-teon1!e{Q4Q?_ zOy(7Onx#hHLx>f7e8!q<&Bg497QKQq`&#|ygwkj6lc$_Jq6fuGNm7iI_{xp$49&Gg z6)iK|J`+1X?F_J%TuU{ZP83hp`Am`@^>}#z><% zdeFQQm$y)YWpZ$bQ+8va!YbJ$6chO2%TRH_jEaG*OeZB1T%ekX)M1&a5yM?&EMgQ^ zCY>iCOm5J-lN(t@;swfX$fTnM=}2xdQs#*wWvGf&P{EP%hf_^d6XD7mDr&98lxupN z!=z6pV4~7v?J!zx&TbJSRZJ|AnzL;S;@%%kzFmP@p@P7{Pge*u&Td>m@+J~u3+5|B zRe4L88IHD<;%3~M_p|scU2eC4jC~l6_0(dv(FbW>7uE;JWa{?!# z5ML^|oAw&~*!-=hw1(I;- z1;QieIkJV}n4m0rutun=1eF?%PZ)O!o)8ulXYPd6SX~w63p!ZnhonhK&2{}7J1g3~O00-Fs3Q7q= zWex;zm;l*|e4$(+K$PtO2%zaHiQNDf?En{>-2;dxDa}w7`XC1}2n?sq-2?7|?tmNy zV)|jeAg|g07(Zwy>;+{pxPS(39Hj?MV6ia)7rX#jNC*n*1B3u6ue1jUR!pFdV$c9C z0%Zlo-Us_2iI=(nRbAjcAUMbfoB#k|phnDKDgY2LV7nj%@zM&4vVaV{0viA@T}AGK z2`{8GEG(VSlIJ&~3%VTkKnUXs!|a1McZejp3IKBmBM2OWC;=rlAEp#l$^{f=?1HMZ@RY>>IgQ#0uCR|5 z0eJhs1sz~zP~OQwQ&$N>O~L6H0QnD9Kx0$F7yzB3)k%O7O0Hi>9wAHZ2&FlU6ilW7 zI&)B87zQn74S32+!V8DACfK4~dHoO$r9uWFss?3FS_@a%5DDImIYE|_ref2SL9F$0 z098#%Ko&V_%20Sj^h7dZeBg4bID}av_+Mxq4Mq(nrx~(p1~na^ zs{388=nTXq8)nK8f_~7kuRnUASqyBzGZ6bg6VelKa)jZRI1I>-Kop1Q2S5uLrx1YY z5@@KwjZ%VvVXUR30~)NtLT&Qr4Vk@l6ad9R&l^r^L8i{1NWmBfr~sqo3HN}*I5bO~ z{g44t3ov-emxvW$2EMw1_jd=5YCRx|e7ArThvWz81y$q)>Hryf&m}<0UnSn?6=mCf zK&i>H-~zC!-Vf4;5Kbmtmxl^Sn?FfJN*W&}dhxY_@bSd!;1UdVG8zz52~y;(ib zld{dQF|5NMtvUaoFjA>DJc z*#M7e%K#*gLX}m78c^zXlQ6O~&na?&i<>x%rL3UuEe?#4eg@nTwp4PmLQN7+AJag?!N7Ty5Ua1lA5zzFO&{qQ4nTVZO{!@ z3X2GZV?w*5!WlsAX5A3!97g-$!WgKx)L6t3O$&`p;gk|F@gcJ8pvq|SxJ69RzUW6V z1*ddOCo3(XFxPT`EJzwW#B5@GbkZ#8)dVp(_(^-XOeAaS)U}Fg50Y8rdnj zF{n;PRFY-sHN^uPv}=Ssbo{ZXB+8bXqZoD5qfFnZZ_6l5 zDKwst#WFAc*#ud7WoaxOo|z+v5=cdQrA>I{cwV9hBvf&Y5SwyY}&3$&a#zd zA2;;7XcV@Zaki7CsxcCNqZBIcCSsJMSgle;PO;EQfnD^5mMfU+po*r=?hm3mY*wiR zxt&>DJS|1{OgvTiHl$kClqb^+I@>Xp;p2K|!~PQwW9fzap9{&5Y@t&s9dYU%yhHxm zeQ4&Z#){~S3tb#G!O4i3gw{GZsPxxRacQfZT9$K^GNkRx%!nz8?@~O@>Dk^Td=Hnj zJq1e;L{`q2?ue0F5h8bvVPf(6a;6F9#CmU%uAu{2bnP;#@S3-FfbNY+t60>EiHnEV zjxo~nNTtz6gr+jauJvi{p#E$_zn{h%?2eact>ZfhXQngTK>q+#l`%-iGKv&@(bIO8 zW}0@=C&DLnqbpCUm$Ns>rNvjYVbg~PH&G$FT9~$_@NA_DcoI&tebMz>ppBPXMm-p0 zPv)ed#KAuZQTem*51Se zGqhZglB`XgHBNdv#SRwGw(Yu8*rJgM-0iuk)Y=(9tx3e#wJOl1F?dNxjX)gQDQy&W z>jxNG*-_0w(^V4}(GRh+#8-`>Quez-)vcdoLwJ zbyS?*fO))%v(#4P&Dtn;iPNE7@Yffs)fP>`d!?vCG{O6oaU7Y-MEu%AL-2FK=f)yt zGTq>!OD66(jMoUk-Ycg{{RS%gt6n3 z_30d*(9b5qV4JfUQsg#ac$Cq}6Q}ZzKuzA^qH3s=&I*}uieQ{&TNLS~LVl2|Q6sEu zMaX26?RG|WlC38b1Eg06T7!7Hgjz!_n)K!h_VCK5c%n18JDHbg*q(@mF`t@7aw6RV zdnPc5g}j+BQ8hv%=>~%W^BOXJk)`}GIYN?3}RTIMpn!kA{0BblXmhB3|F#L5Y& zO(`>)5KR?N+YJcHUq5Qofak+Mrf`9jy%QdS|m7O#9#3`MJD^m4u&R*_duLxl!OQULE)rpmp3a=U66G&S{V+lc< zrGji{HGHLXh^yFbVS0+9sioa2qWQeQ^%k^>LJ4MamKAhVpLi(~nnr)%TV}|Rg*t~n zq@Z`;yMj|kR$pjZ_+^87c)^m z;5*gROTWZ72AwU$n^X>OXhlZZodaf+=Ivz@NSkJHos#NmGVV^~ov}RDWzuROu{DLy z?F&YBlO0tnX@XwuA;U}@E}dzYCvYhY(kf=MwzBj}s+8iX#B6a=NsD&NR#W2ldeLTf zjTAAIaLGkIku3$J2qm3{u3yd&C|RHI!xx4z-eotnP>iOaq58CqPqH=Td1si?;WH(M zZplg=U1<~Ew-q$h^hAsDG9_$|QxdX=Q<*j)D8y6WAh}H@MXh2hj$dp_Dst!LDe@|x zXoVIjWfE`cH&*AX^u)fs!atSNPe{V&P_ygiRkBIphSx=^OH|PWoFHz=fLWbZYP(|K z=A<09VJUL(hIB^@Q^a!iL+i*@aDR-sNhE5ks}^$7GfA=h9C8s)&I%W@3)zH_r&9sD zrAlt_Ck_yowngI-s)4D@S}GSF26Z$tXLR8P#V^gA6SK77OvZ8o%<8t4`-Q6O2wHoB z3T1gDM7qk%K%d)et)H3dI{ed*aqa2*sWR7HrV>+jZf%eYk zD=Ugp;Gx_a$GW~`k(RHFZr&Xtr8ykI+GZ+^ltbPMWLg+AXD<}$aOn^+9Jf(4)ICX* z-O)6*T4cq^RQVp(a7fEclYN09GKjYR#*R%AGTt=LMT=L`rR4qjI16@J_Y0 zO_`*;$NcbWG$m_Hl0!O}p2&`?L=;5EN2#nt)uuS5E~_s7$W}g-s^NSm69grSb`9SR zNzk-PTGaWMP}zMUbk(ymrjtTv$Uu`eMm5;J1In=mI5{^dgrH zA`^ohRVqay)KOO1`e`dpvSWLq!D-_qic;g|3uJ0KWhNPOr|i-naK&dS6!a&GD~T~` zbC#Eh{h+7wX7Z%5RXLO==FAo~Ch96El|8>iKv9~K`i;P$g*y61Pvi<@{hsj@~$i#Ac4s(>o3bg{&E2A{Na2^fTtKm2W}!Kg$ujiNu_^7; z0jAFuJ!!Vj+N{EX#i?3m^Hu7Tr_-cGaXwB|N)L#s&E3o_4S^Wao;v9lH|In>LAGTS zW?yQtohhC^ZPq&?D4U18AR12Ru<>JhMmP^?uWLM)H{nW!_(WBbNa|M21dvetXE>xh zt?5w5#5E-CiN$iE<>bp(q$6=uO_xjNDXe1@$eA$;b!b$vIIjwsoK?j^Dg@UiDRrd? ztvN~?W<^Pfj%5mCce4t$MUjb}^p~`37fmT%k7jcdeDRBhU)dKZX;#-gU{gBL!B8soq^EC)O+KbhYCA8fK!k%0 zN(idO_QsvHnv^wbj=6P(srf+j`BQSJY&Ya?mw3ex9=9n|Oo_WP#4jBr8d5UNn6ze! zHf1BcYQeLX>t?I8P~z6X1>EB5xY;;p;S{LZ_G=TZuAVZKS`t`X95%!{wU;F#)>qz6 zZE1Wmf+bBB_?@adASpj8iygT-m3VOqAYd&k!}znNbQ3>SRY0b1S*e7gI-xsCox+%A zD6twAE!I(@g(;9Dr1-dmqfF(=s!UggWOp7d9x8@;Mdb%#b(%Rv&JWxezLOYB;P? za@JyOHtTpmouh@7qgO3@!8NK`>I7WhD1PV*%~+=Vm{SCfLvW1T(stRxlqG=d$)CmH zaC^aLk+plO6wBZ%#!>}}G)^Z;pjuxih)>Pt6q5;x6K4|TSTQ{WaY4*;b_B-q;vj4e zvB`j@W##ud$+x1XwI5^!|zggwhDqSAQnIy%ykx}-3zG~#6{mp*>Zt}1Ci z0fk)UN6IW@pE*fHcxowg3y+I4ZbmCO)*2YRH1>p$GS=QYn|xky**u&FD2nQM+0_Mj z(Bz|lsi*m#xS``yxWt za$NRAS&DBdbC!jSsfx?ii7Sg{P2CR`;-D_OUcF|ujno`!~4+$ssvs2!YE z!b>mJ&Sz;=))rCb~H31_gmN;^CoU$T~R7mw7Jg8X9myS1@oX-qv*~~(G9t%oih65UwN>2&q|#n_D!S529;0BK z;v44`*><^|GE9V^sU(#~P&}NDTQp*kDR}KVtE#USVKxUD%!sR0+O;7Mhr?NeDY(L( z%n>5%sfA4e^qfoOtTk3lRYA!z8BWlUWY>PaD`sa;vya{j9^$p+`evJk#Ko+K;1&uz zof8cuaLjK+G}ctS?s#%0N{HWx;@V#zc6p;yuaT)LCMo;kwnZYP^tHm-)ing|kfsP} zC&en5M>Rd+c4m)G{bomRQl{;jx-Cf}cPJqYttqxY8Pehtr$P+7J3jrR^k`M8%?@s` zr!Y12cvNj6ol9wKQkuL%_C}?(l0ou@DP}62x`q}~`73D}Y8AnZqUw5LZ56dfW^ZE< zcFfLogC_juuM@ms39OA-oW(px+Uqn>>qx0{R5eWO@(*U}ncIq3C&Sip2khL1k+t=T zmafrLnG(`^s`P@#vtj&hp~I)o_=8IPCRVzhX7U0MxR<1Jhw@@c8NZ>{21nTwECBC+O4 ztjP9yvU+?1(bS2Pb&+h7WVL)O&64bxO^#)3uUT^SG^;X)EJ=#Ubx3wzEr`+9 z8;1olD)7_+SvPLGgQl5Gk@D1YMNRiC( z-9_}qMq{Q~EVc6On>StA+nSyV3SrGWY_)ESC^>jFH%TYprsi37=_jUaqYG_q`+QVT zm#kAPZ&U_F?gqIyCa7BP`}^SL>(I1h`$B{#5kb@~Y?nuf&el&2Qz*u_(5 zj<{r5OUc953n;W%%CsrTqqdJ4{8nPVvsPu&IMOk*9t=8We(1^&ovO16sbl#=Gbocs zon2kSKCDAf zbCEp78TI6aMOvM=KCM?7iZ5l>mQN;^ousWTQ0C$_JVM?tA`8iGjoMlAtnu8BT-#Oti^IiJdjys%pCiAiHfcIauK&uU20~J=zazwkeH~Y@Ees zFA8HgH+X8Bk+ivyaEVywj%{0%j%0O{BA0%Frjp8>xtAJYGIF|13S3UJEkc)G5*#|R zS)M62sTPS!zmH4cI8j%h{(qNmDv->3-QNKM2_?EOxWJM>IRDh{ntx zR$h#(r(G6hri}EA(s``5Y`YnBki;n{Q05_cM5V0)vhtL=vWpkGE#*o%a(p)J)1=%Y z{WMXLp{-5MM3U^9fwjqy+D0Www8^0rb*Q*1Y4IFFWoqWrcd9sPEkB~FiV5=@MD=x? zt*%zX6RSaFid>(Qxbih_tzt}B;E~}{C*~BS#~HK| zZ1H0`Npq~KouivDg3?DSB`Ks%u$i-qCaE`2=4zUWCSVk!;U+59R>cI&e8(qb#tow~ zlFeP=DMG0m?uzH_U$k~iHb!)HJGq7YszTPzs-)I(#NL8r%o%eG$dxdbSxYk7wcBDG zxrjqIG3pc+w@9+ttgSYrm^+g+?IPK}bwaH*x{_KZXFBhjvOzqgGlOB!Ids!Y`a6+0 zqG@iW4U|vhb&^zIYEQcznK8?wo!POnw&Kdm*=h|XuZncOROsOmL3+~DsW)5Vc6y?h z{?Y#c2;uXdn7Sxp*u_R*@?vsv6{AY38FfDhWrmcdq2y9ooW)=AXLL6j#{zmP`3Yj- ztNu??CvL3{6%1rLsfoplNS|Wu6I^v%&dI30Qz_J3#mqcpr{ONtRx;$VC_ggX4UGDX zFKE;bb8NbK=@Q$bQnqI*vgp@W#1O|J^DBfEt9gQQuTV8Nw%l_-6JD9(ha7x2%EyT znr!hi{QI>H`{PCE{CCUdJ!1`XN7zZlw__t2n;mhv<8tR#JGOQmLu>|8*})ahiTfi( z=;-)d@7!hUD(yu29_#RjXvHMcDt;b*r=)?3kf;9u>Xun$RxuN@a}?0|#T8F5`TF6~ z=BKYZUeW0luHBIiw_G8;@vMCvAI&QG6_*mfPt^Jb@9>T2`0jO->QTsFUohR-{D7c;n|XBVAENr$!iaAlrP;dp?Ua7Z41My zW>z_qQhs^XAmldZqBfE=df9`S+`XzuyEPqCyhEmb>Bf@BbX~Tp$_S}clekH4!j7{P zQ?cP+=53lOPogaz{t{gvS4&GVA}6K!*y#!D;m$+Z6f zh-X&m6Qu`=EB+r$5;CUDW|;?~C4B*;tGC5*KXj?Sc9D92!S!b_vE14hNwpz((I@;v zTj4oGulJwkJdOC{(o1y?;F>_29a8ttSMLU$X{Sjq8yPcO`$JKUS5WBao9>u;bxw%- zD3&&O;r+guJ4FK2VkC)6hB1xoCr1M$rn7D59eqc2&&guEX^ zRfUN!%z4Qa88}CTg$qeGN&J#(7mgPr&!(Y=|{Mx zT@guaXC`XiTW9Rj2(zl0c~y45+N8A!@=k^&lTVwqo!b`-WhZacl{rCC#Pn+!OOL|o zOv}|J&7LNFvTV^)82w<&scDFry0X+ggQf0;bFxp$(#_gyJ2jIzsM^%T$3a%+?izxg zp^TUG0a&ex;k_ct<<8IYE!rH#`(`;t(c>_hw&G#qiQm?<|5WUQzk!Y!`b=W7{2MUjD2Z83OZH=Em`7=GcrY4nU$S7 zTL85etIRqKp7{_w1G(vj*&Qz)_$NhwZj+SB}h zyO3EytaXg3mg>1*A#kHC&l1NPFCtRO7tD*Y| zhMQ@o)lF)}nb~<0WARXiCQ!=@DPiU>RC41=(xhBEQl(NPyn4wNOUg;po;Go*eHcRHwW@DS}Vh!Di(UyYseRWBc&f72AZpE6_ z6yJ1dWLgWblP9|Dvc+4H7~BXyMJDMh_QyNM;nUJKSzzM5ndjBIQRykelUF}Ql4@n9 zPSqsLZ+O7lbb!)(hiIOQO*%;C!ZJrlrYfc$yRzCbw2m=ll1&pzEcOrmWjJ(0Q~qd` zm~|@`p=Wj#_k`_4-(BH34J?=Vj`tNqDRDS&Or`rdM^_`n2Gd2dm!xFoIv|}n#o==4 zWg4gZAG{!bHgwf7aFX)rBPm-HxEmOx$@Yi3^s%6ot>vUfZ!5Knk*NtrqWQn<(lFBv z4ofAZIp&kb=&G4NrSKGGhmQ;J8mL;l%^o(i8c)-$ePia$aSg)XgY1l){nnE0!<3Yn zT61Bil*poW3R3%{)ec?RxjKp>(c4#loo=5H=XUEzl7saqC-H)DbpyK(783l6Qyfe; z`kBBdvPr@iMVL+%n535uDUFn67bAp|GA-O4Bu~UrnAwK*da4s=MpZRcqvpj6NfNFU zs}HIk#vCBFN0W(}I4LLw5Nn|B$C;&)5AGPnM7obKQXhpXxGva9~N@0Mpf}t{-{o!3Tj7t zJDN%jhx;TE(Vfg@6%gk!s_c+etkLs@4N;cLG}3ieXn|{He`v)SmIGF2Q-wv7^h2eV zsfprh^p2pEn}t4TJ&L;6eNetoLhwT8HAgaJ3_6pkPgrE=6W`X_wG~i=Aj(XpiDD*0 z)~S6Fp1n)j=vYb|%m}Un6iA|e$keAHpRQ7wS8dSl(lRm`(vqr_N5%R>NLyg#f0QYG z(S+5VQDuST(=-X5V~zcoXp)tW<4y?Hoa(2X;vpTGb-$z^*%{?D%vv^ zGG!7%l?qHhL`x$!=(Cx|x*y)>S4vj7&@BdU5XT>*i}Dni!Xm%F5i%=Zod6+Qp?- zpRyG(kZ7_<;WVc2rA9G)X`aoDdOp#`TMm!bC5g4!(>3SLP4cf@D1Y7yo9Md2%9VZ7vVV9$zQJOl>rwVdYY5HDcw`Y9vQy@o9oBkw~0$7@zo{?A4#0ouUPIG9$7p z-5|*+TS*$cm73qg%$ncZgSM%KhMW;qK2`g)lPSH^gK0R^ITR`0l1$NwxCrHZOh5BO zTJFM4^~DUd;P_pX>ERO^SqE%sQ&}T|ABv$lTivpmmn4cbWm-XUv5aePBWzCcGSy6P zyl~<=JfBV9w{tPljKIh3l3v>jDATVgXDd$`+Qm=MA;s;JkuzI|HZSaoxMtJu>PBq3 z{>b3ZbP9B>Tldaw1N%aAuUc;1xXwcNM$vgI7p6rnB2&ePGuk+tv$Tesw^`LQCXbas zsQV&3#1XxMlAOZ8kq~FtM_! zYhMuI>2Zvoa6@xwq=@J6f_k~T1SmZwx-_oEOWjLORb}oL>s0L!qtEn|drls4mrs#w zFT{_u-e|s6sjSE5%0O21$+@-;NJ3V!P03Me6Le^n8-~f%RS5p*!0D-yO|*xKXB4RE zqH5Fke{^|1k9kyM{{UC)UVn=HpSft8RsLNnJEaS5ku}rxNvBV2%MNkWxNn%oQ9_r7 zp-y>Du!s1*wJPE;`i#GSXva>!e-ppiHtS)i^{T13dYP)gOEBef8)Qj7m#v(xW}4`q zT-FG8Tv^CbPbrhziFGMU_11*>#MUrXpqQw%?c+(sN3;sC*0s}8O8!ivmZs*NRT^lb z^}9L(_PSu&VO4F6%dm5cDNU!=he}vgI9`M=K}dz4X1lVi^plA2I3J%6v5N{{ZQK9oNwA;hIfJbzi}c(VX2mU8Z8W z)5J!+J}w%v)%S;RoTEylIen4kd2`bsnM&DS-x&1dmU2r;W0=h7%(5jhy}r=+4?|=2 z{2cgsXxDjtAMAH}M++t_F;_hb<%!zh5mrFBSf&2}>4fE)>qn;^lYYo24JhF;Xzcn! zvoAW(47l=kvF$BP3NEv@KuS5@|8qCVFy&J!qn9 z8oaduRsoam)GeBg{6&udT{Tru1?zKC4w`s}RAzE9DbiKz<1jOIs~@T<0!_!19bcO; zhV&6bVab!{ku*pzsqZTk`~ZEl?JL0kVk1|nP_C!pz@p8e)wi>x4bGf6A@#)MxK{`~aGB>b1wD}U^ zHzL0&-X4UWPtr1}pn~N#LE`#16T6Rm@_+i@$n=gLX<=6@{fWyFSC(b5QYB}`;S*&t zr_D%Sq@?zQ+b`A16E~y~rL2-XK~$8SH)5t_=~ZH;p-1VwHv__@31VVY+*K>BmsWh_ zv1ao^G1A#rKhmw7vSu-76BL?ZlB23)Wgd3YH%(^qf;eNN#`^6ZHfZasAw7bMTXms} zO=;~5#_r!1X)CDMD zOBZb}%DSb_a`uM*07QQgp5a%KVwj)v_D6%mN*FwL9v&Xf*T+NF$65GkHNO7<1H`iH zWieU9rf9pvB5RnYF-k5ZcFtvH%B~#IN>A7@=UP;Lg^$x6tzd$5BHC)hogDP7w< zUda8Yg2H(GJTW;mkC~kE$);%Mx*EJ>y#tim8Rj`M(@=vU zx9`{N=j`j3C?jdrNkMb<}WHQ&!$B$9SU{lhr2^|#dN z#M4<3Q~X$SdnN*Drjom5N;35j{;+e(vIsBTpQ%ioc!ez@Cj|&ObS)ftPD(48^k1Pg zuM0!I9r;PS!Y7|c&S5HNXx8khQAaFQCld2w5pJitE#-3^X#-Q7e!UDBMI^Z& zA1qfb&2m<&FpB2UEU7rgZ1}`C0C}<2F-J~RXPB|qaWXI386&WJXJvwLxjVE-!aRLZ)Kaqvr$H<#a7c3xe@=&ybLs~3G*7~)kelY_ z`Ei_HV3fJRQ#)djGj@fRA_@~KMfQa0&|Ha&OcN<`h^KT_3L3^vkfWO@dxn2AA!-qF z_{cS6Lnz_O)!ZB79O_i+Vkh51KjzvLB2MH`!T1&+&BL>k60A zCUNyLa)*VjRHcD)kwr*T`yH>kKP>+MRpUx>SP5&QUjG2JeUG7{lzT_#@J9jZ(IcPQ zBrGM7k~G$dE^V#3E-4Acki1{jsrHA8ZKjKDHItB)%+FLnn6!}`dX6`}I&_HgchauZ zGi5PdBv>GWB#eTT(@JU9U$$e8KVodkcEd^b9!lx!m6CrsYTas&*fON7eOIFJrNeqT z;$Dv0{k}-@IGV@elrL5P059r&WU#g=JsRka%~^KG>ZPocOvdjYxA%s>N0QIx8QB#6 zliBw~D{`d`N>t1*EEo8xYO@}W5&0CRrN>D%$*+oN`iWZM^gb?46xD4LzTFE6DNIP{ z*^5Yi(>B%Zl*K#>elTHFq_tdP)0BSQz)Lm+KkZ*b;qhZE&)QvJoc_pk%;+UT8XCf7 z!w(x3LgqO26&PiqvZq;$P)BB>NmW2~9ERf(HHvDe*+jY_CQ-V0YUnC?f|0~mFtK*4 zM~UYxClrc0@M76BqumvBXpv}SRHC463DqJSMtX{=l)NGBZ8eh^%e-kG?#H#i2L+-k z`Z%-}c*iy*z5cOJ=G7s8c%~kX=`Ur=Zn`+yX2l^^bk&}+k-L;}8|+p*BhUiW{2tTP z@F#N_?Zwro|8r|Q=bbTv%@FPEG z@O(OEr-J&LxN?hhmq}`9Fq3cOzXxr+?o9EX3#L;AQ8hl$$s;s0y!Ukv&^TUjL~sH~Jwg*Tzr{^ zUU7fJN3X^I0B;dX&3wC>O@R58gE2E>H)wjyRcH|k{E3*QaBi?^XoG08 zrBcg^MMBVfo2)R-vsqQB!fc|#=}BbZ$dd+KPqZgOH6L|^_?T*nUj(|Aty41@MEj!Y zyrOtS{{SK)Uigw$FFsO&m{he88oX55)=6R?(GQkne#><|;WW)2QPrwa2rdr)0EES_ z*~%=CA3|_tjpB26g4T3nQ`-dESfb*3QX-W+)e2e`Q9hS9dY4>EeUl90(<4b0DtgW$ zK9Pq?N><#wM660BnUuP#8Ini#!qHY?nOX)8=<9{557{V6@rg&YG$*lAq{vevD?*=0 zS3O2mCQ#|Pmf-s(6QHRL6~iBsSfV=fCIm6-HZYdR%qE^CBu*?m7Lo+0=^&rF7K^0J z6wX&Ed-0a5DB0P5Y@!URV>fPNmD28v}_ z4?U+lR|fQ}2rZC1@0~B^#{GBlrpL-{VM6@b#I{aM>YZJoj53xfe#GT2v}Wvz<0Mm% zLS3TLMJarRX?Lj|@wbH1HAqYGeGzO#9X?8j)_#=!b0LIw=(nr0gh-H;%rX?{qJGUI zN`;VhNz9v!WV@JSdiz6C8$zZkjCE6d>IcIyLYnBhVK2)pv;@H~W!7Nzm=o&L=wc<> zJJv{Zs)F_QMYBB@ol=`WyGY$LvlA0wrSRHL-!^)wDT*zLXXLKGF1J~TYCbNZ2s3U4N?{-IJmtM9l*U}6s+Lz`Q%eisJi+3>nN-yq?uiM=?0eM7)mk+i z_eqVL?2I26YPdzv=2Gn!y2DcynUYOElsN?UnmKNBb!RHxju_}BvJ%u&JyNT1QX8^D zsA|5@vXI!^(9(5QJ^!uC}mvwI=LZMBRk z`ujj%X*5;-5!-F{gcQ;=qgFi4SxnuRTQ8U=@(TJz?u@x!+r1XbQ}|nF%`<40PY%fb zFjISJ@f1_GYj$p-7qO93NphU2HP47qU3UhucpnIrpcX+ooaoIgroL^B54UGu5hPP z8LXA5Kct zZ%rz*2vT{4sFrK;>s0#G^>ty-l4yzz)FoLB!<1nuxb9iSHKEdy(PW6`CLSS=#o|O~ z8Z4HzTUkMODJX2YG6-@z7W&bbEx(-Lb_|1riTflM%ILCId@@X5%qA3ktCxz3@5p7X z-^iT7)7evXP@1aNXv4XMLZlQ)v|P?H<@4QLr}-h1A^!kqY;5(7mP&C5+M}4|%w?Pz zK(+LDAYTxx%4O=}cGOOz3ipcWR?19)YpKpT%3je5K`qS5GdJs!MIv|W8S77=M>A&( zm$FmV_HFAEREbK?w48b><`s>t=8u>3B;Lh8zQO-^b=Ic4!L+_p^K z7yB2+vrJz2$-C71R1wu8)f+s;Vxr-*>5eKVn1SdA?FjWrbQ9%cUk z0DYrtbYx3{otY&+*3>5B(#q57W%SpfX4+&sIjd)D+52HHC&cG$$(Y`Xo#B?SZS=1w zcxipIvT9G+wml@8GgTzZ&h+Mdp%@dT=>S>PVuO6Fx zAvui}ikeLsrUglKN}4iN+8em#!AbkV(p%d_ zT0XQZDrFoxWaR3V$GKSOEo{z~>?EIBTG=(WO`8`vh`_~jPxX8z9a3LnSjf2Q5COu-?X%)@B8)~c2%U~xnQO(t9H7aRJTBcGJfcgYj(3! zSMZ(rD<)i4h5ixOn>Vv7xm9G-X|0si9Zg)NFlu;KD$=SbmTu&~B84?lEn08)@iWY` zZTIjw+7_j=mdPB`*DAO_%`A}v2AHPf5U43LnHa|TI)*+*v73G)5p_zPLZ0()ci+ItN-WgMZuXR!ziUs7GOHY-;dGZe3N}tk<#fr_ zpW@~@P9-|hY^?oLS@R1205*DoBW@E(9CAz(QEx=XFr7M%_dnd_uXI79wC1YLNo8M4 zW`8Q;Ub3z5eJrLKD|>D2wSaLiMnp-}`p+E2I*(hnDys2t7}Zui2y19r&I>0Bv{}i% zM^-;s?*tZKCTgOH;1RNi<3!CA8A=(IC;JvtY3jdo31#|BNmiUTm#mxF8E7sdbCO^w z_lI1wcFeY^5~`X-D{d05RY+pgF?Nj$DEVX)oJv~F)F=5&y0Vw;40G)QEZt>hdOVuF zvr3sdl9o99nMFMl@eo-~ano{+IC6as;&d_Gd|BEmET0deD{UN-bm^uc6-~*isL7Wo z^HjT}6|2$Y&%ydhvUZA8O7KZDZc?2p{{XDvFz@zXOH!Le;k$W!!Go+~8~SlEedNZO z;?*-bVNNvGsC~@A;z_o2oV3mA@rPMJqpamb{88Rw@Rx*L$loZfY+Y*32%ia?<`yoP zHhfg5q=ro1EM74yn=a_eDLGx!Ga`#j?f8>W+#%Kz_I@d`@!Thr#Nif4v-Qo?P{}o; zutQZ?sc$S*Is2l%L1Q;fGN?=hvWYF-E&L^n_Om2@thLeI6-KnJoIF`X(^U%TAx=V6 zFPCSpwp7$=>zI@j!h%%ENmExu!BIn%Jcg&U-Vxp@pz_o6yhzCx9W#?ADyYyOLU5}@ zijm(W>@O?(eqNC#~b5v6qEX66k!0#6BnsUy}{*MPK zhEkU~%vytmR~<^KNSIyX4D7y8=3yu@Dz{NHqIyVz1;Qv>#9pB;Ziz~wtMK8F)X*Z? zH4@p{%D7mHs^6|HCa9;NIQDkXt?^tC#?9F<%@bZDv`}1!C0(I(b#StkLKcwJXj(aV zbR}5HCWRfMC|c?gSxr79TJTBpWE5%Ps+yIU?o{GFZUFAHFI_Vpyv6JVzC>41){}#; zFGF3`U8uRuPh4nxGazs;@D%qAgLV8O(L%s4TL?F;n5|0WQ(0n-ODF znY>|r69_F{W|Cl&VjP&wwLatq*3lBQEQ zS1vzvNt9W}vh$t6DQ|<-s;P70d!j>`LESi|oBdtFY15d2QZA^acPGKsl&KenNVOdk zp9p20vzef(vzE%Zp+n#u1GzOEBcVwoi8(~8KW>VyzEd%Qr6a>~WUq za_uD7Cl)3hY6vt<4M|^oD3+q0tm0U)l{OlbXVHw@RCc?tg33(n&}-fCsr8&%NLg{d_{~x9K|(B7-S{w(U+a- zhiOWw5|r}xf@Mw?njxL?sJc0-@kJmMqfGi}S7cGjD4lfs2?#;BY|2zfGg;qIW;vQk>{ zDd8xCDxBbu(&L*~c-ZDaHwPv~N!}KUIo4VyEMn}(da8vg%Ze8hG+K&OLmfrSN`x8!o4v;~&Kz6#dmiabXWmg$(Kq`}#3NJ-rpLY+lbE<&HOBeGUyAjUz`SS*)Q zt04|bDG6R_;N?2UC8bQs;uuzu6ji@TbzLIa5+zYx<}t~{N(Ic?V0QC%sp3@aOvS|E zAp|rYcum@_Y9hrkFpa~MMx$7nr-b8Q)YGLk%SQ)vDGD64Q-?&HF>Z(Cm`6LK9K3yy z?7?EQX7M(LS*ME3nJWypdoG)=GEp--bK=R|Os4jOGSD9&cqsqzPKQ?N@B zGGk{DlW8tXs69z2xs0wBKWJJ^rU^-#7>yb^ZmGUe68+%>5lVwybnMv>iKR)*X@QN} z48FEfgy-avy2hFolGR6G-Rgn-9Z`&=?Ngg->mN2X6$=SW!%$*&n5^IC#8#w^P%KL; zg{CX5g2^NhK0=t}rzn8cDH1a@v6~g$UM~y9)G1FbnzxuLr-js(%JA_kOEsTS2>{&4kyG(t;h zR8PW9QFL^Tk#hBCAmrz^3BGznlbtAnCp|?-t5Z!PWZK<$I#_*qBRV0zSs;4*3gqdz z(U7q+hRsxJ)$+|#S3L$eub9}!teaLvwSt=|aEN2lIalMAx&=u#4m>JC$9d1z7b<)eM;!qr6_}OHlB>LuKc7h0CXDzmc4(rd-MpnQ0v1?wlm-mDSNn(r=5{RVqv%Of=Od z#qf%XI@eM8g9_GdjWX%6*EM39MHDGaLh*H>r_)ym6)Ykg?5?q9)UPcG; zgh04P`=f_WXJxdnNLd8MRH#ofXX?gwS1Xz~Sw*G_xv#&h8A1kEV=OwJh$G7{;e=L~ z&Xiz&(^Y!pj3}qB<+g3Yj@V&5Du&EfH0Ae9IQ9k`oKzi^4(?HUjLqv*vOX!(Hx^NR zteT40+c450X2_kxX-l;m@YZJhAxt!oq221prB{Ec;rpW{EVgqNtLp9NhGy4@HnpH% z9Q0aM6|CNnrloY~Z`ZZcQm^qosK)K6K>W&f_l9KE34-P=IEPCx#5JB_reu6H+@|c6 zY{Cr2(@&ewbee0&t177Qi)Cc!YY%3Tnyy_=X6i@ZDMpCeC{}!{WQ%Augi|hM6{v?C zwWgO1FHV`A3b`+RDgNo$FBT}~5}hs2Bxx*)a|f%MpOmP;EvHLQG-zheWOCW1Sv7}g3uW?UJKWjX zh-m_4>&Sv6_QMHU3o_K$h|8L)vV12#VZl$NMoo}S7mbr5-}XdLNq*2ThK-b~2{qQM zx{$V3MR}frdv2`zzOm7@CqFuZ!iB}HmF2*+jh!u53ELc|`$LN?@_3<&qgyuZWDWfy znu8{sO&%g-6(Wfgy^Jg{%EnW(&TX5O@XSdP%hB?U3yd<)G_T;tB`UI6ie=$8T7Kx} zsTzEu=@M3Rq;E*$NZwItXNcg;%$f%$%2UKEm6K_1T7ErEtaVkOiGF;PgfY|VsW??d zUM6no4ZtZB(E~@TR_biB)#Wh}47%vbg0C?AI-+QwF-oTpWqnI#heFklNQGHUj(N%w z^N^;nhZ2jjR9FJEi@{wpPpyvDr&}^-IdY1b+J4N ztSnEJIZRpvRd1;|s7S&Fq)h*M#H@TZwuyJK*yj zrLdBdo2oKqOXS1{T6C66lKyBS#yvbMBqzG}Cp5W4;*vcW>3QR$sVbT@ZP~_MY*haM zXl|6S`dUI(R_og}N~*n5jnPo*r}xD9zexv5l!(5us;H8Nq>p7?LxEpDwNpvaQt(HF zSrni9Q7+e{EbD44oSx{eQ=`1$bgEKpMyeYshRv8*DbZ$Hx``&F;YO*GiE4&fN%go- zE9%@K^NkObOk(nUcGx5|z^Nzi4t<(C(%G)*=-IbN8})Heb~3tsa#7u42U z4Io)}C?|kq=xk$lD5y@d{VB9fA(FR3c_TXqq$V1R8G#ik{UMnANEPE_qUfvAUgDIP z!(C&v8=|dPp9l{!XzbZA7hLKW_Cm>O6;#KZ^sLbiX9y_XWBI*M$f#d%6uL%ANo6w8c%pL_=T3($$=fsWvvL?=TqS*g{J6? z(Mv>mjh{-T=INZKX5`gy(3wR{&r3Fn(m1AA-fD&(Tvq9iY`D=ah@H2^Z7yi^{hTGK z8i_@gv-VC^t2JngV=0?GCl}8YMricZ`Sg{R(jBRAt`5JBLuOTf{+MZ{nj+FH*$N#_ zX2(fClT|YqzUcQWG_2OByLpVg7Vl9uWtyRZiRlSV^6rhtA_ZP#iCdfJ2yDg|i1cr8^}>3hOJJ9X>!Lk4MvFE=r_vWG8m`A$ARgBy z$dtE0$0rH0jOD~Jl;qOxj!Ljh`r{PbviZXkII}}WOi?mv8bX#0RF@SxM_F$9%Gr*7 zto#Jw60n)3*vC-=olfwh#Ik9low(7e5`_LCX4<$tTm&&Q3n_C~@&!Me(@}xc;zJiH zM#5IKp`6It(M+p@XD%UygTqPZz9^JACk8hNt9Q($v}WBeGn*nqO;B#)o(wf8H`*3R zS-ES8eJ!UeuvVWIp~z|lb)&MDl+q^Wl;Aj+l-?|=&|kbOWsNO!Qc*awgi92(K(oDSJv7S+rUFvEdrHSu_vcS!zbD z8Pmku(s}f~I{Syk60*N9zcB4+%$X!7nz>DMl33o6(-%p%I|oKbDhiajPA-yg_=#d3 zaDtwYh~+lws#h*%*tvLHH_RuMuh@8bij@l6N|8D;JfhFp?*@N1tlXG? zn&vW_hWkKy+C{gm8>>aQ;lx48-S4Qzoj?+FePwih|{=a|=~z zleM@jJd)~5C6^J8Y)$niDd<8;r1FNxRc%$yUzRYWms%?##kt6{=E&99MZ!j--5z~O znhpw9=(SYE_o@!ev{;+xGQ8lS%}Tmi zbcGn04U_rfr%0f+T3}J>h()HTJWI1$nTjpt_AY3t&emYNQ`BAsMKZQ3RIzX-vPSKS ziTry-1)`9((4_ol_DZ2w^h}VdnA-P~5|o9QD4k~DNVJXPTOVOkWMic@IZg9wn5G$* zsG^IniXcZwclbu?h;8yRPnt~Ko|IOr(@<9UGSO3+TtW?U%Q!LV!onw_Q1^hbDfq&q zDTdjXLYB-a+^(PHCNOIRuY1KEEei}qiB>itD&iVRK8~2bEefPllfFYzHdv8J#!A`8 z7+9oVlR2FfY9zWam!*bfNZ{1`nTKs*qZ=rR%Uh?cD(@+XHppm^jU+P(n`cGr)U5^_ zy`wEi;!@imDng}*(8N$3s<5uDMvSc~8%j=Oiq!c{lB|Qi{04C=PNf=f_KBQJRjRYQ z3pi}vl+1RjCPVsEisxcfd{1JvNA^r7iso(1&BL^h#*?KJFtezAL|vrM4-qK36kZTO zstGab7BT@%NQk<*gp(U6u5_pZGRhQa*cT0jJ>i^gp0cRXrI3R0Gn=8#1nCMoxM8~J zE@2I2u+ChXy-?<)xI_oBD|5EVNaLfI zMT|8LRP9x`KCrHCwKR^NQhTKRv6kpJWWE@5owBQ(g;}(uioZ~X?@^cU42MXaB{tF) zk+CJt6muz;q*m?J>>Jq~-|%WmQSjD~XV`SAf-M>%r)ZT{V}8it#qMCqzGqGvQpAer zeH=P+ZwV_?uZ;GqAdHommcLNSvvPv!dJ2rQ39Qy+??gKVW$fYy`P_IGIJeVRGgz$Q}#_r^Oc|IX6j)% zRh-)0qb`)DU&vnoXDV39cz41meDQLadVbBx8rV5H61hE|@LN<< z;cQB4`yp0l(*7{y7zT2AbloC#xF-9>3?_uli}ec5(K>j#Syf5WMWAmSHHY4T=Hlbx zV)ro~#+=he%oA+@V=f@*85u{|V8E1a5DXfmwc zXDmM!A|WhIwfp!{$r$+%9ZJ+zb5l7SrMko}RTM~>gcYWinV}E--DZ$duaz-N`{7gl z5-^ymp06{+T>K?@l)@+Co$5vD(gRn=Sl0P=%hTefbeS)*VvC8!k|(cOqLl5WnV2-;Rl>NWRQ~{Eb-iZX zAke3EFO)v?X{Arv4zPHu^k|&fCT;6A9yuYDT%)w!y;J`HCAINV`5Y*%bU#0psz-7O zn`J1h%1f10>HC?7jygwJSyZObsXMYsPFUIUl%+dK!dwb=j6>9Hqv?#&*Vs7*XOk&R zrj8;wB1#ayV~6byHE+5^XyqnO**bk@r}Cw0E~LqwUuvOfW4O&+m+$rcjU$`%v*x)} zB+-=_7Ad!=}z^hDbf5^Uq>gvg2YQ!+c_(7|UU2ICI;2!=SI>l9boKsfl`q4Sj-Gb=^%+{jC+6IPxsS0De zV5LPj^{Ms@IK zsca|CD?5{s(yDP*n0bY)m@xi?#Qy-+C0OjkjN^ICWn7CluiCb#`tl|(qH$J*rQ)IO zUhvX3(_F=_M;0#4%n|P@)T2u+(+-X2EsomM=+zlX>HMxtQrG*Vsc2+#gUwcT#-&9G zH6`?g^>od`o202Q&bo3{jn#`9qf?^WX03v^QklYP7@D%gQ!lnr?M|DT zA8)1Y9?Nazo1$W~B+9C%K$T-N;;-Ev0Y!46a`(HV=m$alFE*Xog)9u+beD9A4x=>B z+ehUR{{Wuw^JbObK1W427bVN+eDrf+9yUanXe@IdF>(lrXzJ1%I#T8G<{r7}L7-XA zh-a%#ak;9aixM$j6Ed}lv}U4~ z>J!lqr)RAUzMP8E6pYqoO-ejaruKw_zIJm`XNnkiW|7a83Pxb{re*S&1!pS1CQ?uk zL*~!c0`P-I#q@(Ti)D!8avdz^5GHd%(?K}I8I18)Mx`DBRo1J-0Gw%&+a<@CS2=iP zyFtP+S;_mN;e?olIcfk!v(g0~xGIWxq0o^?jncwMQ@1`2LI=#cg&4MIku=Rt42|g# z6LfI#T~;bcx+*YLAc~<&=>-)+i2@U(pw5v@94e{t7%y2TbW7ZgMleiJ3fsIN#wTb; zbumqucuZppJ%*z$kAcI)EhI@AgB<1I6io_u?<*FQY06S|G$wD191FdOGX?x5Xj4eX z>e3Z6*&C^&l~ooNd8QH6cE5}`xz`GQz~z^S)ogQRY@@Kxf}A$XNa;(Tx=@tSL2f*w zbjmc2bJwNA#4qf;(M@cv)J(%b;#85lw1_?jDOD<@$e}{YsL`f&p+{Hf6FOQ|(tA^? zgr<_k(DtY)RQ~|O9DvH>Hcq}Gh}tB#<gjIi-!iqz!P zW;QWk(mdN3YQ^L2?@Sf5}GRmzFhRE{iL+J`CR_?;fWmGH#0XGo@}x+H>~tflJ3 zH&kHrc}vR5RVpaALfs^fVv!x?xk*#yAcj#R8#YTKl_@YMPv!c- zirs8v`@yog?u`sbj^B&4A4wWZR#4JzJuvHYmY^oe`LY!Cg$xyQ>f+%_S0PGaNa;eL zt_TYgBAce#c#3M8lAj>4wo=aq%+fKkSD2<4xw#CAn55$<>5@ear3(PFau*WNN@+e9 zXz7a4bnJrGqas4Y!DhtEkVI|OHzh{R!$_B|n8ey&cu>qy92mQb7pxrn!x+_W2T_Uu zmYV)h>7986ekYU)ynqV~N=r;TK*f1fq&P)`FeX#w1Bkgqa@EW>w7`waQii0XKuk3x zB~TFDpW@0MAql=g*?N@#cwdW}p_zVVITkGY0 zXmJbru__gIVI5vmw4%s|#1}>~m4kzbKAvsCB`23KU#lp+m7(kmP9QM+pcQOCNGT@; z=fW?TPzsT0$^l88xLdc*6GI>C(ph!unNM1jp8K@p=GXNjN&zm?|a|q-x zdnf^2oWK=If8q!UF~APtl)!M4FleWzC{pF}SYFQODs10^rC4xZ6N=1aT=5CM|?pgTdr7Z2JB zq@V`#5~73Q4*u{m`#=c%AnN-;^HWa<7=D!?1~Bt+0Zv+jwD&+UKn?q$S;67=K&RdS z6+dVIt`dZlrK7X}906x1q!Loq?1kZg2&M@)7*#ZY09WjU)leOPX{Z1?smcrPlrEs7 z42ei=**iegq#vYUWG+x7Y^KRjQM*9RP%NMWrjSO;3aU7QxIhZ_dq4z*6y4we?T0GN z8>hSmV{n)N;-Ut!VCb6wFQ0PVE_Ty?t$9$ zKnvjjBelW>1@{7sQ+9%A%}@b8EVP&otod_h0*XMx04U+EBZU<_!23V~r>pdVe5a%p zP9GRo7qkFx1SbTchBT6qM8ek3~Pi7psR$ zl8~M*&;gRs!Nv}Phss=_VdwOK4bX1MfmCxBv>#0_(Sg(MfEghI%u}5{AfpzNcYve; z9F=#0P^K7{MOAi#UM`w)R4WvMv=F zcG4ZEClGRypLi-fw*?Dg3+D+;^>4Vr%5!oAQUwcQYpZx4P!!TmVLV3XNDB`&RRDS^ z+jw0kuhIzZW+Xy|gi}?*c$g7<+(CF$?z)V{(v^BFFr0UJfvJ8t?!|w{x%-g4% zSRtzPz$D0rs|mqP?3gT!rMNB=>=jDC)k(E%LmMz#SL!(3iS`1}rdiZpW(pC_j#TQy zRNmlWH?G&=Wa!`7fjX8X%e*M-7@M;MBF1XDdZ|3c-=f{ULRqZcq$_MvS*gdq)JBAn z^@_KWkiB4r-eEPRgtm^GsI)AM;KV2WoFLjhw#O|*vJ-Q9CT*BNAe`Pqg2gHu#p!fK zq(ikKjb$AZ+gUH;7D(s=NiPbTg_9tPM=f1*l=A)Idqr%>V-td)qOF&RZdvqpx6WOd zluOG`X+`ph%XD(LMLBxODGmK{pTZV}obMdGB{pDnc}G!8qZPBKubW9zFL;Ji_(b;I z8E1}qwQWNri{4EG94!NmsH$e(dO_oGTyfiflF1WLi8!{a9h0! zxBmdvQc?1xQj;wa&!~pHeiHQLDf{MJtkg@)?E~O=hHRM-o+QFXad1BO1}i0rTpW?e~f12 zkq47VvU#CUVDHnelB!YbbTk`a-6(Y$uz}L;VLLg>EYG3)5K@s7NgEX2(S&x0Xn4;O z1lVI{?1Yihc%D3o`$ittX`%Zb$dscaZ|~G`FY#$)j7y_uC8qY96j@@W$h9NHXH_%9 zW1=743T#p?r3YMu9^+2I*|bYZEc~p$`0ZlzXMDt(yaw&6%Ls#`&bF52r%Vs+d$!Uf!M24M&;bFN0G= zjj@xpJ^N5(E+eNtfpn8B`H7LON~L>AbnCafe&n-j87 z`g$9->BfcRDi35)96PEBO|ghuqOs5I2<_x7@+(~eTUSaO;z>6Cuv?|kmf4(@o$RoO z?p9&xGm>Oi1|n)l1F~a@s#aFil<_LP>S__&NSi#mPK(yj1DYh6$^AaHU*H%kO=YH5 zHhbXdnUgaA0GcrN+j1^L(&5A$Rr#t%lQh85;dGkl^9!+0-R|~9l$^ILjDl^WzW9Ss zu)63#SYg1a?0|^AQ(pl?LZ#8lj4Fg8HM&31jjFZ{j{aWBJxhlbWl6*`&kqgMz2W ztC`bQ?hM*1q*q@yp@aD6)oNF(F}stz6=q$*M>i3PD0F zUL?#t%+*J27op3IX+Hi90wad(XHJU;3|lWwQk_IfsGiWV;=`$jvL^}F3bAS_j8W`q z#gwxR5+oei_Nv#~MY?4E5dl3B*y)@MspOQ`*~d_yvSD>JRPtGBx~MoIf|6Pk7{-Y8 z6Yh_;He^K-DlXd-y4}YJq)($|mPJ|+noLTkadnDee%32;w0Y#KmaXtTL1$hC+ESX4 z-CT57mzpLzQ^ks>^*MiRSErGYv6HKebv3#&+ESCK zn@j31xBMcVevcO5i)AxKOX!%t#4Vo-sT%Y!+R8@-j*on6-DoP(G*Y$Y&Xhm>n>X(W zE_73Ao0BB9^&j_hh`cw3~zK@*_4!Y-eOX4^+T77jo?XpKBq?y z_^91FOxWkb4J31^knPkt1(75Z6b@tJH}tawk+aNii@9g^$AgsiGYLXY)xj#&aEe1>l`MtMbfjg*2j=C52fD|u|e zt9nHX3n?<1`1My&AG$2&lG!bYlE0kKRV=buE=0>N@j)8&BQi#JO&UjOpxqHoCv&H| z)X3i!V3I}g?oGf!^EHvxdf!@bdYn2_8AErBe8XR-T{t}H18>hVQx&zDV0tBNkCesy z@3bf^9hIADCfLa=g`Z0i`}OIprSS>WO4J?E!*Gg|Dt!X{8TK&Ne?(J@O7OI=IC+%c znoOgs+M1^JwfohxrfO41*cr_rX|F~73+xS;vU8V?5H1E944Eg2;NpH8Gtdh~-06qQ)&s9CXKklkpimWVSj+m~`uFH2XWmm^ofs zW|I7tR@*1}%6NuLS90mxwTp5n<=Uzh6wyq%gC(9e)=_Mc@Q!Z5a~OLkqL)S4t7k3k z?W<^HFp;WPD^$6&e5w5`qoPh6JaVO|k9j#r>|GS}At%svg*?u9+=^O9r^P#}YQrrY zBSSN_E+_Mvi!Q=sRXkz1lo~~63a;Y?$$Fof5GHRLxS=Gn`y6SqP?tNaD?_L>GU{7PaR_r|5fhm%@jBB~P}I&jWM<2lr)(T)GCB(;mIqPk zi;YO7Ql%85-Vgj2B-^YiiK>U^26l*{I?FT(l*$!Tb_fz%N@I47m(mGuD{U#uQBEw{ zDA5;nCfzj;>4u_)l(c1Pg>K7$kL?MJt!%N^i*rf4RRnR6$*A(A`=>-Wottd8iJ-~* z6o#WhQZ}8Da^^8R;l-vbW+y37F^%qsjwOtmB~2<3UqCi#M7`Mxa$_BDNoqq;p(VST zohzxPWKLeyAf~f-a?_Nmtgde9iZZi13|Z5x%n>m?BOCUHfsLFbfi#dot5)SNf2<8j z(6N@y&gnk6(y6EOiU(g!6iS_0e1CqB%ZWZ-ZbRBIx zni09Fpc_fV$z^)>2&w&`t2C)_-`WzTX_`<~3sSzwokoO}rY_c0_-M9hl{`uk zp;&~?n=@C4gM)f0m`PpJr&SP#T_T@^qM78iS}=^V)q6px(6LtCC}oa9F~cc)G;s-@ zA8xF-6o{;2eA!Ad=XQ2#&}Is{?wb@mNs-J>u1`Vx$8aZ7GMdJdSJ+ggCQ&qdSf&a^ z$!WyHuCKT$rPCRcl=3$^e((!2bb*hAM7qvA!Kl>L5yNacs;j+7uTs#;<)_TKP*B~G zjBzh?LX@rW&`|xds4dSdeDSJiF0)0b?crtssVq_?jxoIzM3h*|-YS<=*vP;qvAqvqFCEPQLj2T8tFvO`t5fAOF8)mXL&CS5l!ugiCTumT-e4)p7@-sfInGQs#A}I8f;gN4f#okPiRX$ zsIzC{cHLEr*fB!dS~*+Vs3~YKpczGpG76=b%8=gDfwS549MZ9=Sx-#aM0d8bP=ORG zO&4^nUnU?Lc!SUA>n2|5MA9IVNiznjb?uQrOH8uAn?|1Y7^HONs)^@S(R~w?DYV72 zW{Q6|s;{R|nne4}16NY=t%Q*>djf7FG8o?#$?lY6(48z)@k=g6MExL?CuV&hL}GhYb~rdIZfFxQ50`HKGd8I7F;v%&0?l%87NP9WKo?eB&|KI zLeh~w(2K;pzygs)k_tFWG7Suv6>^uHESVwg*8XX&p=lPX2- zi#48_f_1d0D@a=?TUiIRR&3tU#IJ+TR8I=ObjKEDn6AjVmEse~>scu%%D;Fi3ubTN zBc82gQm@_-W>U0S6t$+4O!7VU-i`ONq`UDd|rf~7PNff1Obv?mnE}FGud|w6{gBObkI?WTE zQ(@I#c)^*%g=>UUu0+)CRusmDeq$xYe0jY!6iIHnDYZ>QQ|;C?$ROOzdezgWk)LrT zYE?0NCj8w(NiF5FRGqQ#mt3-)oWa!F%g`wd_0=j>!Yk5isM{oE_(9$xrs2j7ShTsB0~f+?5ly_DjvkXKRm9;IXy}^JId@aJfeVSmREDNX@d+z+ z%EY?TwfMydB$jBiwGUdRNyld}vP+pqIdUJe7A9FPV5?^=N~4b2>xbL0Xq9anw@I>P zH_4DN)x^N1!ChQx{Q(%-)TPPHRdSoMFGfwaX`af?`I!sV9EJHq5LRj?V5JI_gi$|3 zh(|ox$ImKa6j-jZQ@K|Wu?^ZdQY&q4#h~do2&agNctN{45>GN@!WoHMC(``nnB+eR zc!ar&rF>o{bxXxago&c`sxToFz|3QiNy630p04RKtZd%M%gfGbYcml=ag?Tx0P+ax z=p%+|j(#e;B7MZ=ES^qg&Dt1^3RP+1Pzl`s0Ksk=omp|nGh7ziL z*nE=bu343uj+{KeJw;zA4FxMdS@|$quxg5E=BA1=hS)q!x^7lcp|FkB@d)gtO_!aK z98RR%WH)F#KV_-8sUp&c4Fmz9RffgW%w1-ppFS9I+ASDrPFNi_NvN$W6TVRx>7Zv0 zYfl7-<}GQ9ceY`xi7BX=l`NGIhA2@aALi8BxJ2s^$5yP#h|_61ykylvVsoULJOb87 zXUyQpB4qHBDSE>kfr~t>j&g(2rmDy+ndmKlC=>?dk|&Oeg6mBdz~V1tRUmhBX~Wd@ zb86_MbD2a;H|H*HPEnL^6u)UT5;n9Lch zR*H2M(~P0>2@=a5vu8&~9EmtNy9VMH&B~TE!P^W>CHl+|+Ahl|IUlCLm7BIMQ!_L2 z+bxANUtMmplx8A_Fgdh?!4q!@ENaX1MH?ycolRwlI%J6qzi5KJt5d4sH;N;SZUd0O zNmRX?O3|`W#YaoDT05aKYb4PUCZm6n`9(-I4c?rNu+d1#m$*?Gs*2z{O)}DB8-&6E zT`-ePr*CnX5u#^E-C>m=h_#(@t008Rgib{&GHI6~#j`Zrvt+WzP}%!MFiWKsoIh&e zQj=FpDUP60=uNRISUD8utW8`3_DGq9dwUr!Z9LW4B1IFXvz1|_UshwlWXf7awO!5LafDpkUZ<1tg$yF=Z4yTb_8Kbil*KTTETLyBXMkh0Y>`tbxNwA%I(A3Ns+|TQc!*+& zt(9dXNmgnso+_D%?F#uLlDuqZB>2J9P|4CzCddSwOWi!woFKh^fp`Oc5AeH3i;$*8 za+?J|NK9RlE!KOEr4PF#F@hPYoV}sSXGB?J=cJ;fjwF=Ol1A+abkRCLDM)=O8_An< zynO7A%t98Nf;tlf94eDl4pJ_DEWx(#USdobtk2>I7cC~^07_viaP0=`nd@X5{Mbe* z6Pg`1Mn%hh1u*!k5F0YUUB0fJBqDq!53{o>9Il_0(ruhMHX(BGm`EI5i|szbdcHVFsVCf+qTPVZfh|KNP?0t$*Gmj9ytwFBmisQkd1JR!J!JF zjm9RfbY#iYx&%)U^;PK%%*IN)%2iVohpM7dZV>#-6<1BMYOKbj)f`&qlC!4NzBaDVv1-xEO%|86GHDRUto4e?kfD4jee6{0O!j z#-UMKv5i_YhYid`N^iIsMXMxuLkQ%V8Di>XH6~BGBN?gQH&$ku)KM}Tq9{Rogw}H` zDX{Xn%ZJ?wX0v%pCzob1cm#r#@k-^P-H_$h%t}3=@ns7rL=N?2@v!@$<(;V2Q-3$6 ztv)Qp4eKu4ptGY4orgbLeH(}S^y$);*4|oM?5%cfiJ&4eV%3PfSFQ3?&Dg|_?aCGf8nes~r4$Bn%YJ#pfV*3+m(YQIy8Q`L<63#VH8MwI`Cb9=SZ4 z0)(DqNKi^^1-nn8{f|J?8t1aC;{K0oerYt9X&UZRUQ$7R=zq)o50XO78T&vGR#T07 zTV70JilAD&F(zM|K9QSo9bD$7Pn{Vc1oRg-_AgQo zohJuJ$O|=D)SP)uB%&EUS(AI-B*YoI19KNV}U81&BMeI9DnX7XDMro*SJI+Xd85aSe*9W@=}MJg2rI_pmdKf3>iZsE1!uF z>z1b;f~Nh?i2?t#EI25f@!v@dToN925D@#D3G$ULgZQ|0RCJg^)+1G`LRrH0 zd!6f6CeO!?Wi`oyF^D&gkZu+}(K5L}c5$;3L5@n(>Q3kMILyYy)TSaWObL} zDw$t#a@ZLE#-vj}Y4P(g3YfjAp-set2tSzq-a>0>RbG^eRwIRd5L@&eiTZix#PW1r za5ty$Rf$~;zFT{l>X*9XLsalv?ew1)tU@|vdXkmXq>4q%NIU%pyHrFO`*T866}>@J z)n$K59;C?M@2h!<{&W4=e%bO!{#}7ayQ}4Krw(@h$0ml>Wc@r8y(itYuWLuHc1uX> zAKG-KPFxAuzt8hi#CqG)?*np()sgt?jrH00Wr67oHYNz3R1iG-Flg%vAN#7V=za8! zCPmKAgI{nBD`P6=q;GxlyeT*Q$u6rN-He6H?a7ruvOM|vpH18IYPL|)@81 zr-d$JU=gt!_UV=hRz0_{+l6fC?<6vyo5ZuJS;kw|^vg6mTee~bQ*g*68-(}Es9oU!AfVw zK+o}hgOKn&+dA?OMtXaJkWj1TBRho9L{&;~ywlO^F>*C7%puqNs#ZQj*q&!CIa-+T zVSOyUdhCW>L(*^w(V(Ib=nL)Y=AOZdILsaP!@J3F^%c<0(Uz?a1O5w%5?Z9j0&1XO zHaU?E`C7M+(|LYQ)pGRC<*7aoKh3s)<|W*>@kPv^+PiO7VuGc-i+?KUHsJALUG!#2 z#uosT{WkecmTCmeQqA2qCCwr&5fQ>dnf9=vWG8w`?_`=LB7HW4DIb@2%J9-a&}IZu z-u1elDzr$l3-3@%T%zl zTf*|*v+Y1VJy%DxLBTXt-?=9&D#kz~0MssTL2r~&Z7)XGB%Mq}yBchN#xS<{8NdBd z{`W|_p#JcmD0P3XhGY(EdZ!bgu3|___`2;kzInY#MeTmrabr5!Q&JkeBIpz2LpIb7 z4B&kv@nRkBoo?%+!VB305*3?gnxL5M;BiE zM&Pb_0k1jwpl0$<>w~cuK66|>I_w<0Su&rJFEnTYXBUSQcp;7=`zSk++4!Sq`34Vu z2BDWk3z_fPW_^mE;{{5(=2iu^q%7#kNZ*+}I|B#F+l>}nt;Lqz25||F(87jl7pms8}-oS;jg(J0B%(sAlZ~a(f zWC+E07Lx1f!8@55#DipBSk5R2tBUYiWVu1AZERVINoK9jDHe&%hf3!%-$r!~B|lf1 z{H(3`bn0wKQTABtg-d9%Uno|*zU&uQ_Pl%mv5{sN;bPg@$Z!t!Y~JRHh5!C{67bL` zBWr$>=C};GvU*svyyVQ6fk3JC=}mv)Q-% z1WQeh>*j$L=?Luwiq99&`;Jq060z35_fj;*j~cK}_dRDV5Ilr@k+}%vzCQ;%^3&%| zI0!AvSkrLjV=+z>OT{d)^8*%%qY&1a!UF22AGjFiwYL;*U<+Ajv$)0}TlK%LGV zo1`L(R+VhKrYW)Uq9NRmTd%IyJE)@JOx)27g)YY3G7e?~XdZIpxeS!gFobG@zDIle zBRQiNUU>kVmn~{Hx;L`%_m&!2{rPIHRHM|n)V6CK^h;ruags=0BU%1Ow;o|OO1Dy4 zKg#ftgc|p=%Z)xCUWoC!wpX=oCe_s;L}Fvy zk#7@>NaTBxFSAY4>$ype2rG4V({bIIicHH)tz)o11llrT<;r4mnzR=-eS9kuoC$3V zN3(_a7{U6Rjvwd#i=v9IlwZRqJ{J+)4pGt@Gra8#-FDKhMW+9NI0xr8Htnm&rd;4Nq7mczl<)rB zmwh98eD!GB^ef+xzmQC$*IY|OD;;`db!{}N0pG6>KJ?gjpjF*$m!r^2)ShbshSl78 z6oYrQ`%rNh!Y30xu{+M69<09G#Rxa4AE)N>7ZUdDY=o(f?M0iP9W8ku+h2?ADxJ+J zTU4xU$$I@dj;NQ0e6=YfH3*RRmBY`O1MBg-uOsAQ zs*Xy=WkijeJvCuh#Z&1bR;pdW<`x@HgvR7u;YRmw%k&im@C51H%z_M{tL_iP^+ylA z*Q*%t_>y^}JEDSa0Pr)z9ec8gf2SwBapvS7wY;63H9xP9AYRv5Wbyd%UP#BeZiwkr zFUi6+1oOw|=$c(QU-+9eZ@p>bR;v8HoBU@H{SywEB&IxB4pnynq;F*yfVSblh|tHH zmu}AGu|4)85iYt#=E!~6P~IGSMRcwcpZEJf1(iA?f)Yhy$-SPDkC|bA3g&-2s4gOw zhV#5Fo1HnZOO-FrWb0*@hqthfZRt2?bAT6~FJV6WWVD|^-Syr$i?ISB~W- zVFfAkxi(;4`~o^X>2Ola|4ncQ>3zmhz5+*^7m8c+I_}ou4M7I zhFpVxZ{5e`u+dV}ka#!tn2>GqV7ZgfJs%gAqMt&h-0rdT0tGO`3vO(L2tq^>S>|wL z-_ZuSJYFBnDG|38!SfeHVK2UbpT( zAFiY+yWtZcd@||PCS3lKt(DqGc(xELUc`9#+n{JCSx-EGY~Vm@avkE)1mLedjj3&x z=uIND&%Fxl?Oi|!A?NLWnU~XXkle+~Ie8K1>sV{_k>18h{u)2c&?DbQXLs%uC78OP zSEIDZS}x^eZP?qqG~w)_OwF-k9qQ~O4Wfv`-0H8ut53}t1K59A=LA~#;{4SRz8y1P z^6H7CS$ir=@@0QK@5okltNKR4yRhd=jxOEttDK0Deaeg5RR)rp0``|W0Lb=dCX>-)e*26$S=3Uhgvj1{0gp`>%1l4}@Cw6wHp1yGdkDyWz< zQb}j>X0Q0rCkR*ky_GL&tK$|TH{wCFrBLL;=Oi5-;wP=~*jXf`RgaSjcvX{Oeo}De zPprF;AK)!yj*ly;+!S>v3FG_Z5@Qr3Cd6k0bbSUoFF?nPRT?BqfG0URjvwIPrf`lZX`WtykW(ih)drPe6*@1EdU zc*~rhTPpO@7!Ljb7+6aFxp(&2SY_zQLG||NhD3f^>(XA-+Vp6eE;NlR{L|etprXIm z`kY%62T48BJqhEv6Q_deaP$jXQ7Z@#+$&P&5?y~-^{UZ5A)0o3`h~BlqlZ)mYEbf3 z?{Bn38K}?DRa8*R_|PA@9=j#R2Jn|sc?kU`8uq^+o}tUuqvTAX$+s0bvc1A-?h0)s z2d2eB7B4LB-jQ+d5;UM5JIxVw9KL(>VsqzQOO!h|Q+GifTty+{z(=i2%NFPoq0M;M zVVmDSU64C;Im|tEf@jL(ot(9jY#dvwbJPC$iFhnN1Cw+zonuzve^OCqD@KNih-FN` zsE`jsd2g+!mtC>n87ReeFiLxgY1hf;v>6^I_v6MkXmxa3$`gI2FAqx5`$k*-!p#0k z;ZDM%X9^AyiWnLTWq)<3=2$lN{i{F59vmC{>FnT!NcM4xW8FPJ}z6|UP{s>_{ znlIxfms>cDE9U(1BqsWoWY*g}^5j8FOxdRmsA~bv?t+s@`uakmQ@S`>5tupjuZW9u z@M}KZ=aGRX;E~K#$;ZZ{zhB9u&(ZAU@dU#KWH}#YKOf!%etknRw+V4=cE!~uTS`s9 z05tArj&!!C=JP5;I&v=ZzydVg>!i6dzxA72N|$ZenUkDZfh%Qh%_+RnqGGHx8_E(vw}xJ+ISIypOB}1o8D-tEG zQuKuxn4BuY^7mGT%>Ryj?%2VF+;#WxoEBQn!PnWL<5^A2j zV@@=iz7TXt3Vizx*T^i%np5|Ef?rI<^jlGWhlbKuLk0z3ac;vjdwH~&w)){|xza|Z zPUXJuK%-9j3ai5T$tmIcyk#HJF+$+RR&&87=Q=B-r_~nFN!6ht$4mG&h^LXdQ(vO{ zXwD%;dg{)kUvrO^$p#-Nl-*n>rF(reRxdcb&&jH^Y4{KSrRwVi)YfC9=g|Hg9Tp=` z^h5M352H4j#B?}E`qSf6^EZNlg8`9-C2hj-hwVY|wtLR4izFu&-4jVF@ci#OFVZj3REhRO)#7LukqmG-sWq!v%T1u4{URPDhI1?>y9nW8p!}yb|_Zw+OD{; zm}K}HxCxsEFqGtM&~bVQml{||Lv^kDneP%CwMz^F@z1rZSehkLfD+{#A2K`k^rX{_ z<@%5ssowG?neESy-#@#{w~#_7sKs95I?jTN9<=AN?0?3)x$x!HudQ*7=-)w&^8ePQ zC47FNNrH`{-n{*1d{n7+jFq54w`*D|=ikTSm8Z{ED!=EuX^Tg1R<_HW3pS-3MJR_X zZ{J<0^-nYYkPm~QdJZDASM=Vmgn~7vSzIyaQLx1@j{FuZutlO{s;TpCS^2UsS}^B?FHnPes-=}8ohJu;o6%Pu)hQmk3^h>d@69dM}pddwe6t^i-BHfcc%oVcPmxB@WfdH?3U z;mk*0bV)e@igd@oum0A;C-yyuKgu3WT6)f@Tq9~Z?wyTm+r7T~s-zuC=RJ&Y&6#s( z$Wv4H9ewDgC2ageaZI{Pxn4@fBtsQV;*H?L)!Vc6)SdG)=9biayQVUjx-aVfjeF?| zWa);vX_eo2h(vTOQK1??4=HBK>y0V(%`dwhi+<9t$jx&sO*H8o@g!2C=hIJ394j8$ zmF#?pe)(qLO1^J?RBy>oMeMGSewU9Y>a1i8w19--^SK6hKVBP2UGTBRV&#BsawS>S z?$L!>rIpZSC0_6X7GU;tvBo_}!tGT6(yz>U38xWODA5(?dE>gv*Q|eUIJ$W`r@P<4|>0%_yp$IaJ4kY0$D^uht}6Hn6~B);Eh9cA;^1 zg8W6YK1ALG`GK$~fWWkj5WSh0c%@kJS%NDBP(M zmeX)U1b^C)Ejn{&M29w=={kM-dhaCSvM4`7r7PS~rRDzMc~)nUf5=Fg!fd*ArgDKZ zj#<7-SMiCGS0$&c;Lu7?cNr?|uooo>Mgqid0uQC9*bgWS_!$LH{99V&N<>*%Jj+&fStu)^hP#8LStVD=-sWbT}!S$Qa>{!lz;YZ?; zVjtGOjs3~!tfPGaG$Qf+7`O^r2j_JIB*X*jo&eok>L#(}9~!nsp?){1P2~*+Ja|94 zFxAD{3^YG{3{1 z0aX|+OL1$##%SA#7O?a)rGYWbl-_=X;R%SLNW&n2QJ+DnN|X;&k-9YCACla=sbGkq z06I$QX!*kxW@AW1l}ViqCDr27Fk$}1wr}Va!^D2n=CEJ@ z=zQRYqp!NGmEj!6TLXg(lncNwg?x1vS=;=;ROAV50whN0Pyj0F`NHo36}ybr+=#Rr z=vd`{<72$>1RLGAG8~>IXk{S80W7eMM-$^9s}1h?x0iXg$L{%S4g|UP2`Jm%M7kBU zq^185hPw~9oKXJ-@Uih?B3TmIsBes6_u?uXzEktL50)B`ot{djJz7DE_#53A1L{W| zFisVkSs@yN2Kx_PyZjLrqK?|4fGv)+OOD0>MKv6tcQ?=hCND%)?72M6;e@Hpy8lRC z)pqXFCqot$9Wv1T!7u*>9Iy0VcB|3BR~!O+YD-3b7Jj$oI-~go=e1?bN%@E5bId%w z$qIO0IIqKdTHk=IHr&aU`<0SN3rH9mSzDbPb279l=&*p)Q5G?qU7Z`KF&8>kp}w5=k)NG8t=;?~cZc^TmSy1Sm6~))j&4i0 zSv%rxjQx%8ETfPRzLySu_Kwuy4*7ZWkz*8t6&g31pIafhOr zzD=3gXDyZ3&B_G4glgDZ5D^fesBB#CdsRq%cz-XHG+3rvCb(Rnz&jk+Zu8(g-l0o4 zhm{D|`N@%)d9J2)5K((KO@F1-tLx2}x4nIZfP{n?UO4lL zpM{SiOxm^AU+9s5@1}9(du>nJClyDYHm0#eRgIy6-})Ce(;PHTd4vah>Hce+iO)_2 z*9NGV@1TV9KY{dbP+ccd)n)t+=ge~}qTe}*XXPhd1Fiim6zfM^cwKLBtXQ$1p-p3Yl?+U@sI-i;J zA))1-2Srx`e?;>9kqjhTseqY}nbI(FWnSG41c4B|{UI~a!>QisMbXn^4)34+Avf`o zz3!Cid-xqPcuhvnVpZlgZ1Xtc6!$DS#FTm8I(4i|q$_f2J?-RDiGlIKXSmJHN0y(o z%PH^U>2X!uC=)QnjQnNzyRdjFny9PvPa^g zz&C9q+nQP|K*Hr$qQ=a)L{8OLK3)wEhYG2>2-8dMgPY$;?I$NqGP|=V*F4^Vz_)P4v)+_Q&mWBD>r-Dcog$&WENP0L9Z2dx8GN}p6YROlra-{7+Uk~ZFfh4)O&yN=M zvxe8{<+qIeJ83O(>Z>Fb;(qChxx&<~h*v+oWe#s-E@6 zezthAvmRu5++-xNFZ((#y#_AF93x{}m|yc;#Q40A_Ouc@ zKUH$tsbpVNI@zqAb8xKntc9igdyJhS_!38<>If(KN=3>+drRlZ60bQfP+;#+0#MZ!Uh!lN0TMf9Xrm#p*X~aye z&5rfU9GB7)8pDg%*LTqG%B5D{d%1JdPm$Dd2B&?kuM?Bj+~~$EQalXC*b<8CUnO3H zGAIpoDC!>ZlWB(a!%RLFf2p{_@?0$^qeMi*r*WF7`@<5D(H9=lt_5zjR&oM=Z<%R5 zv`c=byL>)C`J!rLbD6cLUuPyk<+L2mL*@DH?=6rL`&4Uxkg9$P?9*x6DvfW^jj3vj zV+J(_DHw7%Y{YZ}FEp)rGy;V%J@MDn6c0%s>!ePGGNDjFZh3?@e&|B`S!M|Hi6zW0 zu@j>I*7-bKgdY<2d1^QDh_OgSWOEl&3p6VRO_gb7`_pdJm_=K+p zzgk&iIgw{BnG>dz{fsQH zQM0Sm&`KXfQ{-R}s14QTYK}*|NDde@;7OzzTO^v|r}t1ty$z1*y`r2C((c&g7$wbW>OY5-xhke8MsFZ<5rq?R?e<){h$fqcKvuw<*F zL~ZJcc9yv_Zw5^c)>pl#)s~1KY2!z}(ZQs~0AWRvF;+qfEiPy9d+cpnhPJDwb~4J( zm^C@-)2M9bSt2FsbSM0V%T37w#bdFp?czB7;lNE3I{`0mf#Ldm z-bk0w%)hsY?9_m8(1VHk1V@*0|Bq82qL|ygq_iTv$NPq?ROBGbCG5YRb~oB4RzPt3 z+(on^AOXdJPY8B~_sTuH-fGcUP_gR79yBn|$ z=-fG76D2P6WUQHh5arUY{bWVu1|SmO+yP_=6*&yhsQjbH=xfI>rs6fm^zfh-?- z6AJ_RCRXk2pOIfhGY7I*l0}oBW`87eBx46j9E#KEanqdaTgX6AMa9i_gM|OD&e|#0 ztD?m3T4%tpT}Bi^!?R}n04?jLn3YptFBd%Md%<1M`QA7|cekM~%$4^*kwyE+r!Wiw zxVS^vc2g0W8IBeuKFF$Jg0WX#aDz_=?~QSZBp zkmjfZ7xDQAftkzdA|klvf+yoM!O|rg&HC2nj<`zs$8&STe-e3Gb$~yWZ78shX@1LP ztb~8rh|xKRi#{%^U+7~P8nM7HO5!I-tdq3aBYAJBO#1aOEXvHsvI4$GHIQ1(1M^8* z`FpsxA08=|5&%_&b?&&`Nfp+3i`T)>ztl=;|UxQC|d>D0O>;-W9W&EM+H~RSCTQ zUT-UsF2c1}%KA*)bE3cwkB*G$xzK17)j{}Ls?vTT@qS2%FXb+|;!K|t)WrodQS&rWvJ3F#MlHt%NdpA98XR+G15vdbFC-SPJGO8VJ)LDH{Bhwd0gR} zQ^99_Y`3N7k_xi@?s8CtHTkbyf6N^j%Dyb$(era3fY@>TsSI9=m*e*dsATlW9kJpf zK9q7K3Z}n*+M~N-k~?Pr{+35y<$myZq#_ltum5#~8DpxER8+EqgY5iv2#j%Ybc~VF z65_X^Q>~BhUxy)Zl(YJTF$bOUsUNxp@|_d&6^?1%Hi@$OJ$75fCTGSOSUkg|Htno{Wn14HpsLzQgR%BR>_Qpr8J;~N%PP>G*8 zH>5e_GKDoT-_;Cyp+$o^D=F-Ub$rBcI z$(vO$H{v?o%U;FE{k|h`@Fpkshit6as0nVYE6oTe#z&{jB|2fdPVVq`qSxwG4QW2J&jR)rxECLc14g_xnb5dQaVU z{R+n{TA*eC28KblIEV$L?}{OqWRh-TJ+uT_d!o~7D{CsP(D%RWL3VW0+etF!TaZd^ zndA)BiUmNQ5&2AlY9|`J!pkeRf3uqNW_uNWvwGnBvu-Z2$=uTwHy^0_=n3WeAH;PB5@uf~U}GMmtxacJSMo}(;V)xbZR zSt(VK0J^E*-VA~eBGg~v@L@DB;@br;Tkh-zZouL=)knN4arfEz zm}MiO_6iT86`M@VFPj;1{^>>04Jov%=v~i_B9z`=`g==NiqPcWGA%*x18hTi$JMMK z;D(=8FUm<~8s|(WO2=w57$KlWG7BSC{FyNN@Y<9MH6iDNPb+SZbjdj!?aed!-5#I6 z?P;5xU8)W>pW5?k$+)5G2Cdob;#@4YRn}@571x2qUnEQbF)|H_L`vN7-&^n8Np@lL z8ZSSscABWC5enKgw@3wdNL=5H=K2m0nIFjd$#B89o#RaC`C(-sXK>nWl3g%)HB# zbtlIKV10aXrJD$WvDz3GtIv;(xF7Os+w|1QmW|9!ag?KORE;ooxPrFhU_&Wk_$yt9 zTdaV9I?4rFf78NLsn>i6p810m&zkQuPZGdIj^jMzmY-zXODH&%wc2?<1f8)2wd*)$ z>))Id7OHyM3mC*oPjh!RP)ItqlA5*^bFd@w+X*U(B=?MMMR6Z-H#L%rIVB1mx-LFM zsxNj}Fi3G)A0Oh$<-@VWscs#H_85?X%z@OQ?3+<%mHk7uOc;LL>)`>K6_)g7?N%3D z@%UstL?71eQB=}#e;=3^=ZvMy8F5jFr;9ErNvM#8Ew4%I5#A{*+|Hjy{=pXL5 zVrXq`7&9?=c?`|>=c0k-YzyS#mdihN-RFHDm684-GMdCKrtWtvkNh?^_VrW*JuL_f zrHA>8(LgfVJ^IP5Ki3zb+Hd0?PA$E$GvTBQKKMwAL zS~P~I4~Wr3lhm^9rNL8hgN02dEWVC4u0(UiVcb+cGl!Ym^na14lmF`UiZNM+d=z}f ztn8$p!!ZGZ3`1aA=ZdiBSuCUsWk4bqZ48f$LlAM19Pf~e%L||i$qeyi(|{PsBaNy| zH2Y>HF`jc%9rEyG(ZvXMwkC_IVdm@#u!RvjP<~Zk@G-c)_dTmLw{=sfa^#nLQu-?{k#BS=r+GRXkZ8HCd8x#;Dl!~^7-JWPpuw8X z`!H`N(;DRDyfA5^m-pU)h&EQq?wlJyhyWF{vTKWh8k;pFRVk40|4VKYhrEDwXNH+3!yeCp5goUFQMm4+mMg5+NqqBl`dexMmP-QJEl|fg_ z(ca|1(p5{oHxJjK1?bkWcJ3rXk)xhSjf`eHU?O@5@EcoDhU#YGPKY0LV1*7_5sh|v_cm?f7Gn~^H3Wkb> zy%8IPS=r_`WDIAw@-$~>Ig_y8*p72z1>J7A3>!lt7>1B{58nFRf5D-WuU<~kfmI=9 zF}K#G7w$#sZ*Q%od}ZzkseJ@vgVE`jAcRdE5KQEZGSI6Ey7Fn%Yra{Wk5Y-XzlpQS zS!-A31Fb&al@G_nWQLueAO0a<%81lSHe}=!S?fj*S7yj?4C4LV)?QGsV_nnpF~)Iz zh#RdMbahKQS9EY-#gL)BWN-)0hB-aU&`z#Zd-!-ZzhjD7bjZLcB<`k{kq+>o z6j$MF1H{DwTi3TO1#g^F4~$I3;`i;=jv~SNLlB0T)vXKlX-NDd4!rKW$7Pt;KL9=G zaPaMmPZ@H)t*~;-j_F<}h|a@xL(b5C79;h`*&2EUMm5^(Ng5V-rrG-IjU@dmv*9wt z($hlW>o2KGqz)U&0nWG7mYp}v@~HmL^0}oko3e*b{2g(!K6&vW!}TuT|J>X4p)>zj zSGCrw{|3ZNcU2rnddua!2$sV9SSmM3J&}qV**PxvOcqNN3wtko^7-_|8tC<}%nq(6 zdf6ZbADoWPU$l)q(Ll_E-YUWXYM>wixRrcWsXpS)Zlt-vwPsl+lu>!+!c zA{mHWC}8>0sP6jh&|{NTweP6WdK;F(^~p4%&{H@MxG*C0SIc!5T90Nt^Y zj{bz!8l8RVOmrva#x#przA@1SImDGl@1b^b;5UTi5;z9zkfj+l=J)LR#^bEadZDcQ zfhE!W&g&#TS$}fA9l>($p(YGpY&AGCH_YPvOa1uW6UmGg$p*-q#|7R=gi?)0L=RWV z*y|am`c=Wr39leav^0y<_Mihq%)wa6hbuS+KXuOo4DL1CivG+Au_xzANM`c28dESo zn7j=&1wukP2R(Wyz~fIoT_GH|r+R1zRZX%_4h3^B?A8XB0nu$2u6^46V{4nuoGG!> zk(s|p(vw*}uh;a~n>TO{>1Dn9(_+{xYZ4E-Lhr#=cxaT_7MRb0OP|l+D~~V2^M{1q zPNGaP(J8&EN)?JvZOL<8aAYWJ34pA-sXUkqY)1HhsU}Ob@zbs|Nb2xu-Nir}`OLm? ztr?}c5L6^VuU~MweizSp;kYK5VUk_`y}?OhbdJ6=4rdygJB=|&%rsc#k#lYqf?aUZ z^rD9o5mrROdtyTZsUx6#@EY<4UK=$=7^b&JFfhEMucAiQq49Umq^CKjL8(NS-N8UV z(F}f>y_lN)OsW0An1Y0};aLB|2@C1uH5%mhBM-SvO8udb(u3Ifva6 zoLuo}@XZsI(V<>iHJ#Ug%coZf+w$-Uy1AGYO1YNijhvXD-jLJW3QA@`OU?%e-Rghp zj-#)>uh25S&@C`QDD(g5qjPW7?l_9d&_-N)a3=klmFo2+bgbys+v06mt0aKB@nVIz zc{_XbC%whdImU|lXA~H`LZ`wb9}^j}o_bPqhaO$>P8{^j5!2#-7fzm(z0iZiQXDZ) z)#RfSvy?sECAS)al+Z{L63t6Hqs))?O_D|qgaAYc2!D8+FTxSPH0{02#QJ%Jg*$3- z^Dw)&dH3$9zIghF%2K_-mbSs%+L$+Pwa-ckGVY%HbR=8AEXsg5J<$NMkh0F45cH%t z41VA5TWi84j7&2=GM3S14yb=$-drBXlkRk;&Kd<#or)yOsEAxH=MipLF2;J0qqX8L zbgmup@2$)<$v`(5F3sx6X6>kHXmjkZs#j}5n=6prUybbWpFZFDZy~ikEaXuPCz174~9ca8x+aI6(Gl%4f%){)|_|8vK^*^eJEry>dU(X(>^A?sKC`w zWf4m=N$9uKk`{Ig^QisQptO*jcZ)3loRkrw@2YK&9m}D$F!)-V+ z>YFR^X);;JXM7=9BCdfSr)Vik?}Ks%C)(hh(Es88@O?JsOC$qlKdhCASTe2w=!443 ztZ93UHJmN`WNKkun#&SnpXU!^kCb+Kyp}Z>f5cdNei=$b zEc$KWZNDt)?YwW0F(C#X{9u}%E;4=9;Npm&%CjvK)*TRY@0LQP^?#YG053PvqM$GT z-a7GoMwAh79y&Cp2mFh}H_0(HK%mKy!4YQux%Hm$@n3r|-68$q^VX$E21rq!t|L|0 zp$Gir%?v|+PTZ7kI>|@8fM`x>+g3mH z1;(ius@=KrP;6a)f-7!hy5|?2st}sh+${b@PcJ`GJe$wGiXUjs;`vJKOaVm!Z*PE& zXimNr3()yD3J-?&=nPUS&q2PhOTgpJjTC^)2i4T&^=lF_Ja`jjCS3w{yjKLYP^FCErDNGV4^8(L<&3T{_!Ha9yE9gtWR!H#tuXB1Ez<|VN_`Jj9##K$OMZjq%P1Ss zeT|Mm0X`%?)3f^&mOqmN)O-F<=GX6~s6I}e$%s#%i?804PX0W_xUYwA^vi{y@Zi#) z!i%o2UPke{vK>KGMx5X1INjJWcKV7Sc5Au2h>aha86m)U1KYKIa(Q_{zCv)7qkJj4GZ&rSbXw9W}TVA_%WCq{pjWSNiIX7Ank zVxEY1PCdT2+BnudYCd~*eo&+Bt#9+&JMuJ4^<9?b-&+x@^YXQgA)YuXoGxA88JqhD zmf_(nX9onw6D~^-ogc;3$J#88mPC?=$XkB7f4+8sheNSUIvs*XYJ@aCvP<1@3aX+W zS94rqZ8ORqei;K4tq)u!OtsiYrV_KZxgxSPXX2+Mo3f2B7nVv+kcGBCw}H5!!>lcC zTY_?xV~70yDXmygyE@SdCz@(_tPkmXzJnbmfODUz&S4;uv0`5@8C_=TD&@UbjOF&; zD_B$;BP8^?6|ngYH%oY#xqho_r*4Oz?|$|ihXvYvSJA@1B8NTdKYTz#qq}`*3&<9S z3X`9t&wvD8K^=3EZ#^id`RCcG`>{ag7XZ&=8Tf>vl&J%OiuPuVPpC<*;zWK z)huIG55-i>sxFV&P{TRNw5wl_>`H`VrRrHs`bgLY>bm~`4P8te6!}tU%~MzCmn9*o zmXmF=GM@>yuojI*Y33txQksVM37Bi;wjj1%gD|kN6dZi>HpviZ6PjBZE7Tc#Dk=W} z5asXNQndV&{mbaQDSO&H$2!wCm#u>5M$Xw6lBZ2GELV@ebkquh%KA!L@)udP4D9D< zq%)chfAe(@Teo*Vc;NmJluDLDpBs)3z;=_ zWS6s3&DK+*=CbEn(ngRbbEn44R3+-044(0-8?-twXpu&S#9hhEZWY&bQkcJVZ)QyF zTPFocXX>^$XSw?#G2}K`9Ay%<4AMy5l^hc(zR>2#vu4W|_w7adNj0l$-9-euqQ;JO z6Kbq=;-BSpqkrLx1T-sTERs}8tU75a{!)e-iyPiGLZ{&!g0sdtirdK^uuqzPOi$Yo zUG$pK^ocwrG^Z~i_^|57{vdswUR1r6e?R1lpXzOS-|Tc|WqlxOWYV)rnX-k_{{{Sg&x@f3>OCblhfyYWJq_6MTM7U{nI3hN!RQ)1}KMajVQWR}gmf0(0 zWf8KPC!dyLf0JbSRmxB7#!_jZn|~88fb(lgB#r!YDD zI;}1*OVde)znx7TMi|w5=w( z>gFqBRzoIUu`~C{=?;L`px%@vh?!+3GP-H;XK-Q2C#|OzLTurLz{zV3l%Uu~8M(rG zGi7mheM``9NDD2}2FZ91a-&6NOQVLfMe>#DJJj}1=np3JrRZm9bY9`*sIjIz>d6|V z7i;p;{{Z7C^Tm?3%S#`ok(Mc&E1wLVllD|6q&;_`zMGb!P*mm9rvCs7W#|*~vnW*D zm(lcwic*5^>SKwA8ND>}{tpAIHY;bwY_ilYULq(Zcv}FxRaL@0{cq9ev8NQ3b2)6K zke$={LM2cK;ZM{Nx=LBjH_FA;Mk!kUfg7l##n*0nM0vYZhqnyZ_(P`2qA zcNzGHMQ>)bX(vvlZ4%QX{%0UsGwTa1HY+(}sfYEa9V-&ZQ8G;I!}ouZu~koSS(8We zf*!Xlj*)$ltWQo-$!Q9cOFF3u=z;v9am|E#I=Pbcg)>i~IZ>JTAi7iscX*qsJcWfPN33;h)T0AvLjIB&*^h4)0?#$2Hf zlXkbf2jgKM=<iN)@1`&NWG$qb6fQk{{W~ODeaUGhEEkWC9{%}ivpKl zPO5Vo*(iLgcS>Pp@V0bJrIX2$^ood#>T^7q7K&P<=_G)VG?`3uf^fQR_>Gi7Qdc$N zGQ=r@O(1l?j#Q^8m$@2|-C6?ILu|$b&6B5!R&!+&6O|yxgq0X2^wlP5Wy|b~J%*(6 zIBz6uq0XjZm}sHx4A!%FqJ^f(Ye1!cAW?qaT9XF&Y2`4gW!}WZX-t%didP8)YT7RgdCu;ju2xUT&QQ_C`AQ{UYN^uH|A_J92{(dd5NF}5~A&ZjeIe986~Pv*_&k56eYO4d)Mq=rps8>DM7 zZe{7}?$|ltT%285`(2@oaGWG*DXD6X0=jtA2!~+RTC!3vjV{#8vS%*{hN1;2siKk6 zW>cP2ik~d0L7rBjcw8tfwS3u34zp&;1QlKnbf?P)2`+kKWH_`*!AnS#ljMq8X%NV= zkj&=)03}XPWN|-BZxwn*W`?dximFN-ofS-hmMs+!R-5?^NT63R$|;co@QKK;!Xx95)Zv(_dm-#P{Sl#3K~>LJ5OF$;aKR8g6coYA zOim#rSunYN$e^9&Sc~^W!@4m$LMz2ecGTqoWpdQIA&=PyWbGrX7iinfTJfdEQ*fwG z=!}w@s+)5VIjSW5-iUy9$&89gZ<+icviJ$PKjmz3a}fT>$E?9r6fz5w4CELsNz9?a zT+3V;tD<(&Fwm!@39*}yuUMk-Z=Eou2dQpUD&R3e{oz{QNKI78>PB+^090{q-qKm; z1f^4*k-ae#MGf%pD0GJ*w~ZXW&7(O_`Mzk)RL$NGDWfT|I9|3fOW6VpxrkgaSqg1| zPi4!qbA;g|Raa+(F^8KrKm(>*48Dkh^_iyV(H;>X#VNOD22vQM%akk?a@irJiW-pQ z&Gik-P?L(PHJIiZdAz{u7}p3j<}jkgrlAca@zx+{&Z!})7S>(1yyCb45;d$zhc8T# z52eHbda6qU)KH>vjZv8GMGYN4AYbhT(d6P12Fiaag0YI3cIFGiC3{W84_7Y?I79%7 zr`iiK{H6%QuZt)w00ZQ6WT@@4{zyLdoZGJ;eUNhmcU5lCYfX@ZDj6D&h8qCrcOFAy^mFiL6wQ~t=CVuva3 zaRpLRpD<{pF^CoJi&-P4;Q%MH8(5|>g@E^H5W1B30G54Xyw*G_V`M*MQ>NI(%}@Zs z40CsbheXNo0>h}F2F#hvaH6DQlsZ(xd{6+X?1ga!V*B36A}i3gCGFPzEEaU7cgj~?1AX;fF3H`U7(yy*-9D@6RR%}0Tp4Fge<4Z2*d_t z%}@aQIYPX5paosfk`|x={o@A!I+S*O;Lbi`m;oe-1H#N2#10VIfCNNx1Hm|VhOX#5 zKm%Mw04-B?gH`i0GYUI;Q$R{kiB4r{vez( z)08I;qf^-cJ&T%j_=$Hc( z0KdEjP+UHc9jwIw7(s|$_)(4$eAQ3@09EMH1#|@d$N}CgpcM6epu%U&6mygS;qz6P zDLkS*czi&1d!Pr(Z}~74g?1Joq z^neQYL6bc}H3A~O=mCGU07V#u%fw&}!{~q(ohAdf=>(J&S-=aYwMb1B`T)J!N(`m| z1p2ywCO`~o!PV%12*%!+7^nj?N zDil|lcxf<6`=F>XfUzrFH34RM=!l#E2qc}3205q^6yf0ur-!@%aTPnqh?G?_ZMaw9 z)J%XOFLbYpsKTXmEYn*qP&M-9yeGi!QB1g`h=8J)XQr6t0ikEDl*9n5c3^nYE6ii@ z5V-+XbJQlwWi1WaEDZp47m6aQ6;8-jvp`tNSXJr+wNwNI-T7_~<91a$6&HqHD4YsQ%Y-$;Y^DZM;`XT% zMQmLhRNi1*M$MEbfZKl1BK-kE#c&@r!8m0t7lm=|xS-Nbz2QQ{Q&2oAI70C7%oSNu z%y6P?Em=cvENL(!NoFeerfRM1h)(TdjQ;>8N*?fpmA#*Fk<<}2U6GloaBCfD4sNc_ z%-8;brLK}?$`Chl09{?y4r{^-r3b3TU%TcY-qR$F5> zNte=eU*i_6x+7cV(5=haGjn{}imCgf(=y#PSZRtFiCWoFiTT$BOZJ9=ovxA0KPQ~a zoPSj8h7qa`O!A675AE8=>nAc2qv#o5;1>z>E}Of~y`^l$Uh7h*r|nWbP@97Ar<4tB zrQ#E8i)WYEbTFCA@iA?VvR_F9e-NGgjWICJrKnXt@k)pML(&y4narX3(su$;es{*| z%4DhU6fKm@dC8YUsR2%6qiUxW`y$WzC0QoMDsQbsAly%em2M#fGLXKE&YopeL~;C;77D++KWjGVVa_A$m{*_L=+lOHgZ_^z^TlqwA@(=SNn zKxv&Qvb|DN7v2veQ$+g1<_j5&-@z+CXAwHy3SeLCOPETQ*~v=Hi19fqG|awga7r!O zGRH2mRFnnm%8pJ&b-YSV;>=v3Yz#Islb*c&jG`3QZmG+uG%W|=FtG45ru|c7lSLoR zm^{W$sH9`4-xIys7S9qWrf$1=9H~=9#cn&52$G$8Y~ap}Qz)Nn(Hh0%4II#Nq(r-1 z0#R8TCa!X%PSHwUAkPs-FTxHSx+6oNswo`wb-8L5lV=R%EwEBCQc%UpG)~fTcE-Uu zF*_zOtZQY{A+ep2H%l8aswj-{BPp1XE}M$p6>|`&ajIbH)^}=EGH`Q333o=mRaX$v zlFPHjtyGArfX`t8i8OrXX zihl6Xcp5oup`O}T4Q5G2nM}K0**n73dr+Hp zi7IjuqkNVoVu@^ItmUa+7@1E=V+xssy3VthYwsSQ-yFOvI4KBW8WTjhYuIYo=o6_v zYB2#cnXff;qGT)^VTf++wT~+4w_1NFO#RJyGK(~A43MqsMr6pzer;lyGQOGt*Jq2G z+Ywk1PWWvJS<*_SGC1O@p#}k}b%yk`E`{fi($q`Mr?FkAXvPHveXi@DBI?JUjm15kp6Q%El9Q3V| zV^WJ%Y5PLGh9~J|vmM1UtwqLAwFQ)`U$n%ea7Fr5G;ojeb5bs+aZmo7L}Sv#shXG4 zxFziH{@A}^h`AAGqDPr@{{Svm@q$M+@vp7FBmwzOCkZd1Q&ck>`2|dA%_Rswg75WKH@A#urvsxWi(eJ zGh)J$r9r)_hmjtXtCpS+?VPq&p2fvPWV0n1v+W{N7-r#_hpMC9?&Zy$oQG8sC}Q@E zP#j?*jmB0DiQlS`;qS+7xk1HHojgkW`nL_uBB1^5EpkjWZ>}m9fE$VNo zD(75}cFbq;W-65@&)Fh#b{ANI$1~|u2D-}g294YN;)@WaA3x_$W=~veE?z9@&v?Pq zr!%K*u-(iY88T%mWjNh%Q0F3<+u0uRm)iLh!WA@{GFP=x7AT7INY-_eoE4^M6yw6J z-Au@-po{fWtJ41fh$Za3Mex+uTw)N_c+-CnhrvUfi)WWZ-4op<*}FY2Gq+PjOqokn zD0PPWqNZD?I~g&TmEVQn*qznVIY*6C#W4#FX~kSdF^&-CUT1`*XDTR9Y{C}@ht5Pf zN$ihYJn1K5+9-dGuCWR7iIXqw0QaPYkZCR}taXi73TC9H{h{PEBlBdN|gePRAIMdYlW~(%Yd9FzHtB#QtF>{%&Ib9dFnW+Ua zvQ|GyvPUkY3n0zLC)?QS2F-h->W>~G4Npu{l-Ew@P4mst*;o&s! z940A$tT*umH+bQir85_L8IN|g1Y znQzVyZrCrut!L3He+eEvMMGxlraT_$Qysp|^dHb|jw*PzZ^Mi6*D!vnqni`b5L!mq zj}Q8p^3|NcuU0E|WOnh<_)uz&DTi#)heSOq=}~QGz^^RCqqOpLk&r*SLG>cfORRN~ zXo6OH&&%bM@R6%>C;OuR0K>+3Ua=zk!-{-t<>AoPVMaWUK4@d1_K&nkRNgq0l6^g( zwM?ca#4%0i7lfm+8O;?CoE_0@lcp~hHFXo%Ff+E-Nke~&m%T{hoaHxc(u}%{o2aEL zCaL`*lq2BM3{)xgTI%f>X+94%ag}+U2lR4(5}ij3z3RlH z+4P(fslm(M5z8n#sZe94Q~NaHKyhGD6%YwR8ck2<=V5S+UnJQ0U;Jys?#z@Df(IA}8&Z#dkt5&~g zMx^LA$*ROapCA7KI3y&S&ao|FvR|DtVog1qJmnExtVE4XIG&AMA*m$Ib=nQGszs^n z;eu~DRbtj@Y9&*?QBdLW5JL|T#5jQ7Zs5K!=R%&)xN&CfHT9ZtI6Huu>UElxOZ{4d z0_JTrRP?lZ(4{xd3e{Dff0UCG^Fd`Yv!>1_sIpMM97LXpPAbc7T59T%B#PF$P9mupT6w~Hx-Q&$Qi)T^1gSe}`}n9r$sh`FmVczd8JmgY#x z^;waphOmAGRW`;lZVp3tsueRy`JQGeQz5+o!L4(~?aF#nB|e2fDVD@&lEzGnC}XSM z6PJ}?QkrShQIhy%P8*V?Pk4h4 zM{}nK&opvF6ioO*I&YC#n#-5cC|{7u`kRC-qpr)usPsq_;gS;7y44mxutAebc(cy0 zTU|e7NKwne9|Vh-{?K2L%KDa0Cn~1n;%J<`j~hRp`AR%Mr1N>QYzJV zOc2%jhdGIrB)i5inkkiF42#~B_PgR@ShfQi|q>)(95MWWZZ@>AzPch zgHVp)_By8c!OmYqYdjMxK<3s=i4Exo2`-Yh>ryI90MN*?#V-O!KeQaymO6(%2~tnC zQ;h=d6jjGk;TGxkNKy%H?DjoIUCD6;G#QbVGqP&+q~Rsc+z7{C45l-TA3-vWnWRip zqPFG!usn{Sp|xVC*7xZPLozT-SztLjg;`aq>=+g+(kf!IT*%aJ0*!0d50!32(j!Le z5Z*GLAs$YH^gk)oTb#csMM85HvVe%p7bOZfaHpVbpu0hs$%vrMQ_CMd`T9h+*p7~JsC+H9Q{&X z)*M>3vws)Jxe4r;RXx;R7b=)E_e3^^NQA`vprrs$do4k|COi85qljiZ7O8bcNav_Z zB+6Linb4=%AZ*U04ZM0QQf}2EmF6`es8;U|V=m~W^aBm0OlBQTRhQ5fjiwe&!=jXn zsbA*>!JbQ*5T|ZzGWV(q^BR@xEToyHMez}hF6*yE{my*fz6xe)e-dF_#Y(L*X?nRLH2Ef~!@%r#sU5iVJ2)nM-l z(!E$}MY9~aTpi*mpv6YMog&ofYYh&9+Qv7|4Gijj!L2G4Pj-P3OGPVsj&*1^upaVt zAWI~*H!3)WaDTEU{1{Q1-9ibR=K1w%2qmMIl$jkJn5y zTGY)RDMHJbs0M>8H4mOQmaR*qPHyO~O40nPhl}? zT}QaEYiV03LsDWlH*%VVf_Ava!l_!@_Q`@Wy5f@4VyLN4S9KuiZD|lSD-I6gFa+#$ye`S#~0t!P^%YM`qsaIi<3*2V`_|=#6n4yYPuUJfldAl}S-4Ni@?b z{Slx@glI~SlD^3U%@!of5j4_PqW49TjCL@1l6#d&HC9@VDVI9x7(#H}^|+m#O2#F~skmxxc5+5J%!+r4|% zpD8Ng3`;EAhWf^^u@0EE^(sXrtyRJcRNU#G^Oew}WwLD^Br0O)7DrVS=ky6reN-dzyKa)sm@Haw1Y}uELjku|ld zu+F-pLn@Zf&B`8l(+Td28pVr4B!h%(Z( zo|);Sy51iN%5khw1Rb+(o3^^Ki

vMiFG$RWNZblsafrO!b#a8^xq>xr=t_Hc0K8 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

7MHbWFdwlcRm36 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

mRkR9bJ%k!SZ_>mNV8ty^Rn`j@E#^e7TS`KL=5~ zL@tv%rft)A_GHU62mbd)W>x*;l4P_(_&*n!2KL0{K1q#uMpDiMA4ywh1Zd~5j^C1Q zPKq8lufqJ1nVHI(gX<_^gr7-ef^R8&z9oeGyA^$<|5Mw0Jv+ReaF5F4eU!ZbOyVT? z9*+IrSkjW~zl}|tcGs8?XwK2hx1Ii|CHx)RhqCXizXl*U@R@%?&U`?$~a*}oSbOxU(h{z1~3-tHyVajtb}*nU}6 zRE!+D+6|x3)}IO3^lH^k%PrYelhNLNBY!TKVO&fSnT4f!HlkW2mxcQJDi#IfEweWl zK=ZKhq4bnm_BO5sW=@ab7$!moANXy_!TJ^Q^2A2kbjh$K_HS zwpE}G8MFdt#rykYTN599jQ(?2MB#ok)ThDy>XS~;chw?vHuXSuck3AhHR*p>)slpvxZBKb{$?*dQ~U_M zCl9uf$Y`%475DCLxm)x^KYpzSC^>m@X)5gu{=WSk^fKN}VXnT({}JZ>st9 zHyh5~5rn6A<2_HkIJUO7o|dQ?O)ARE*vzk?&>9mU#JI%jGlt4~jxRmZCc zz0iNRoG)TOBkj0q!(x@zxXPeGpy7|3lTpP{@RM3274a+A60#%sr6OM23EF98bKNkm zkXI&-=jcQ5xatZ5Xn)kd`2lct|CQ-69yuaY%O@Qw8$i2Z6ZF`?LJ6?5H1X-q-G&pt zX#{$H+jf@i*nM|e0rXxt=1t-ziftz&=lH#QsUL#2`zbFPnYPU?f3xDucIyWVz^K_{ zVY^1SZIgfhCEB`sI23^IT{XKt^Hnud^mLin{g1uP`tyVmj6Sk<#OTbFD1vu?;T}EG z*bs`@G*WDd_SRo@7zoDbNw_g6Y-{^*N7~?+#ST5E)=J3Y(tVKp1Hd{SewE*FpX!&Qc-?y~?-q;2tf(%hR@vCy>)e~sB{Eq&LL+gnkz5z8Nr3(6 zOpZ#})2sjf8%j=O`1via({Li%IcMulzR@`Ioc<}SDQq(xm&Iw?A&ye7;QoF?&$Frc zuF)DBzN0}s&|f)#BfmC_E#+Nn9bm@J|_>+A(@( z{HwasWPXaz+1qKKS;Lj}m1-RCWA)|!Q_ozR`rs6!7ooDBD6ikYXg*0-QaPDGD_Trk zFEIO{d^2U*4q558I$SvD_n)`x4i^^5_=`2v$45EKt@7)A#CGQ;%Tqmisr6q_ z=X6@$A{!OnO#o<;t||H4Lip!7LB0d~p?+XoSEq=?SoOTM9`9jGUGrLWbuF*?5x*=j z(U;anc_F)+qip~DcRpd_B%xCIC1ndYy-DlF%$RVH6zhS)xZEjNW8j*JS!rTJ3cdIo z8*+1R8WCcalsr&l-EW~D%-4E&+M`&UqI&E+aXiubTFK)qNlnYx%+E1>*uWr&EJ0+vsEVV5bAq0yyzAl zB3u@1nQF7o46J^V%}$KUe5MPUPPFt_d#NvwqA4`kb~)b8^u z*Y1B8y1`K=Dc&j_IKyWn(b4HfEV-e6??$jzV>UNDoj1Pk<2Sk=k=o_&)#G>z$6k_O zq!sD@Bv<@2N~!FRUHyX~5crvWQFtPfmJey+@LvQBTacfRdxPw>9FpyxqES1aNO0|b z83CTPQy|Q_T{PeqXj|NSaHw%nV)N(P(?&=7Lh;TJJzfSY=Xma5TPcy9mlis-EOWfR zsisheMBggl=Vloc!)0|&D@_|8?Zv4J&*ePzNVN{y>zn5did7Nr55fuU{O`hi+OmR4 z>4clvAh_g>Etj6WyQQkqRF;umOuUS;TD$E48z9`1Vm;sFxz*SNoxh12<9by2zUQ*1 z!=OrLIa2Z`i6a?p*gGFWS56=IIq}{E$O0L2J0~D6kSa zl6jXsK{Fow;7UC@W^|6?LkOCzsQ7y+u}fp_>3ck6+Hv+^awX_}v`WU)2cC0pjMSc9 z_0YEU*n<%ZC~|xj8`Gt{VR-msw@T|$pi?aSzi{=9CYw&!6znv*W&Tcq9berpM^_G1 zOk978=Wym)#do^G|1O+aNNSh3Bj!f<=e8|8eeD}OL7d|t)|w_*IzL4ci`@It8jseb zW{wb^a!+W3tY-#PvPSFEP9VGgyWp@SMmbE^jo@5nO?GW%|G23@Yi@|owvXjBW63_k z6ZOx4#x8*pP3q`~FE%n5TM*T$N}FLM;l)RZAQ$P)>niS6?c%N?&eObbjO>*R4|Y>tRzDmL=0~1E%CsYL1#_J;*{i5lP!ngRx8g4^Q7dKhKRl^ zqU7#7?=GYuJXET2O>=hHZ1zYEAlcdszV~ z<+`(f@u7iURrRBY6iEv1H(RntZytn(p9fs!^6-*&C(RzMrR{`Zz9=kwW6E3~oE%K#&O!-g&IM&yjbZT{-Lwxf48uYaDZUf(pBk#PH zJcphkl!xcbY0!k!`W{Dn|C)@Y1E-)If7kcc2-s_@cYcN>RX56jKL6Xy3@3_Jn;|MSJ($KU8lWI zw7@+se4qs_d&6&cTaMhP;_V`Yn&!2{cO<5|SZp4=|3pLwXLea^F-E5B@PSkSA|SCy z;FRFO^QFW1eat4Khk9r|m#NhjL7@cpV@!M+MMGKJHT9d+$9KRgmiS>Vpsmn^{yUm+V0)<;a3<3oqHbW--BFdX zGYR0rYKCcjBHiwHdMn^d+vYLf$3}ckb8t&`vz5BWYcB zxq8fVmUe{H{$Xho;3M)29&lX@F-l?|d5_kJJXO+HbQK`VGIYsVviZOy$hpt46B~fD z{Rq5D@8F1l({JN*mtqFSwdEG;q>ZRh_Vg6O%L<<5yfoW;8we=(f}2t}OrP9J=Q)*_ z&=2HL3y+KG>mD(#vrwX$^10Nh&}@lM7+&P7`})=O z+ZG1@eS&l=-bzoWf_^l{0SUUI^vgVH(>!x+%TqsqeqTM4Jmj|k(Q?#oxDZb}JVNJ9 zbk!$*o^_RbsXm0HYcWY!_3m*1l2U6-+dqVxKdVfI6_N8Fb`>n6DjzI~;H1F;FR8ua zz|5xdA=Q$u`y#`PYIO!s5S&RNmRTrT7_};!DENw~pZEa_<_(nhq37zoL?p3VZ1rZ3 zAJB&d1TBR;WO#$aVxR%Bf*3c3&$qpgUQ*d5j&<>Sakx+nB#!eaev2kyUdGFA+@ih? z04!fGiIf?v%p94@5^^JG-5GyZzT*G69GW_dy;m=7wihd@6MjF=qOW3_tan5H%BP04 zR$YE|9ruP6@Uppa<>Jys_Z`YH>-!LEc|vO>A(ykY&;QF#BBnLH=(pC-o7lumicpiN zK8vu2uhbd*hA3V$s{~6@8#gUV^CoZ>*%6iD|2e9WuTo@03%DZ}{@YUHG--9=>^6Du zu-C`5UPE6ZJ;jE>ue08^bG)jpj?%k!WId>yk+YicmHcn8LK$%970^42cp{))pLQ?l zv0?tehT#O-ftqdp8-I0V$YLrynEM1QQPv1Jd)e?>YGrQOMDt;+{OedN)Udb$uWj0= zuQB0Hb>??rwh+zav%=1-W5+Cnx7fcasIP3_ya+t>0W6xQe+O<$9g-_=W(-vVmB*$e z5CRTU8k3duX(lXd#IRjMCW@m%2L2$8(GV)0*gAX%Fc>8+AG?O#Q7SXcz);X`tHjIQ zz>nly;!i^tn;0O9LnLuOrCQ~d)u%AN zJZEh%8dt7N&xP_W_}%yp<8+aqVsF&yY-~jhsK6=?TGwArf&Lw$6kY+{xIC(=&PEr= z=(f9NDlHi#G34$E%IVf|cHnI^*252jC>S7Nw7`k{{)|6|Dwy^n4HO&9EgUFws z%&Ohx!9LG&h1I~x7S^lOQYS1DE+j-E82r*d&*|cx^xZ;@vEqYV+~vHCTVIp={&Q*( zhW9cihB};m9Y$lhjN~ii!Gd-sx0NV{-Y|$x2w(pU?Lu zDciYp01u6c-mW#Ci_2oRVoRm1JR*vzhsDyKnQ~Hi{ON;9=ljkH5BE);dmt=?Zac}` zl8ZalC5JioVN8dE-;K>PW)@d80GM0=uHS?og3&h%vxwH}pH{_OiZc=0DvQzaCfHUQ z(5{YKjw(I9!T|8zz3MteyF6t~)Z&R%(UJ_tC4Den9M|-?iQ=GED2&sOt))3~yU&y_ z12qag)Y6PC6_pihcmZJ#BiE|h>%PCigtebVuUe@`!`qfsdd_T;X7__aFP0PSI)oDPBqMaee@xJ9CK|Z9$Wdo0j|z@DjzPVw>FI7u{s{qJ zO3IK$nr$qbEuocc1%JLY0^rhP&#3dUH$KDNw7g~*Ma)9l!iR?x)tHCOGz*D?pmZBx+ zwad$p<$u#?4`b^;h_7u>9~3?jWR^^lDh2TLsKad#+bAF2`vk3^h+AHBQU)9+U?po@ z*Mhw$z*nK33yc=ZsP3$^QM??GoCvi_c;d9`HN5OzD8v!F#78j2OZVkddh6&VDtrA!?N$!uhJ~~t?Z^A z%kA11*uq0|rFN-QUU=^P2VTJ7FpSjnR}Sy?P{6ZIOjnEfvx%eqr$-I(R2|2}=& zVZJo(c!3)b(&UpdpvI|`Cqgs(QBwXC7c%o)t{>X)Hl&Z8e+4FJc0#(t@mJum44)!v ze{F~JJW2p3W&g-%r`|nZ?6ZC_qC`>G0q)-Vg^;#j2bjdNXDkWC9EZo*&MQCOJ1?x& z+NHDZXm))nG#r)I-&7A?BDR<$o)`;LE4?d45Vv-wHZ$b|@7_(GXIpF4YB=KZ3fDIF z!-HFs4@AhPA<2wk7%@07t^14Jw<=Sl1^jZ#zsg{D=hDCL@gcKY2Ez@xtE2#q{;b+z zgVdnHT-VIc0!1E0EsF`^bBnL>!!{#^i-X=1fJJu>F0YQ+S*TH*8j-8)@iHRop(+^=QC4;p zzTMmvd4nSVos%j|`-Hwd>4@x-*5mED$VtQB)p>dD#D}h6?b}w8 zeqh|JBF`Wl zE3Pnzv@fUyDrC@V1Jm|leUPmPwYVpej-qZ^mA6aW0<$)4(x_G>cG$$09D;0?fH=xsjw{P`DXdC>tl0S5=QQF_1rqyeZyCKS`2n_#Jtcfi^oj zJN5ijJ^Hy-5M7J8S&Sh=V3s>{Ru_@_QeR7z!!^IiN9*#P`)h}ez=dQDMdkeZ%YK-7 zhpFuOxp%XBx$(zwyB#Ij!G##FIF^3^ zY25+YUtV~Q^CV}k@1H!%z{Bi_?4zVL7^o&RIszhYsp_>#r$3+LEpWz)R>$q?gJRyi)Et)8EH0(i5Lm_K`hZb5_;&KAg4J;4UF)0<&Y`9h^I+0jsbvhrL0=GDha&~#7F?hZ z|FzSVNI5B~*g8;T&IGN0=mDl*sZZlfagt?NjOI{CQ!teVvSl0RZnj?g88X5OW#mjWIF1hExx%_F0HxYmLZ;p7uOYnCL6YF-s4Y&ML>%XD2>A*<8vx-p2+d zNF4{4B*t5H6gXnNM=FP5Jr%pJ;o{?S5}ocpCtKXBe68r~^d5rxkK%AjT$vr%8z^{F z=S@6Lo2{G=|2&m_qW940cXymCEYGi|GK7GYEw#W%nohWYCsjg)2n#49Nl3HNAgM3)COOC}&!5fz|BK_&1Nng&wUvk6hFN&cddTi)5O`*+Pruv#W%_>5!`^p|v7*vihF4}IrN7VIA+IlQ45_t|t3$4#IMke~y?>m}I1x>|=CQ z{Y`z=ss8$gCdNKDb2#-tSy(oKq0Dl@7oN(JY^A)%xR225QVmsDs|3p=q(Yv0vuSo8 zXGY_Pmeg9GlYYoQ9_qFN(KRtJS4I4(#0C&u_^Hz_gWYg1$CZ;!)i_qdA|yoxMQvoU zZxCN&6TJM1jO9D4!?qTH#~+RSomh`@033QXTD5dYMIq`dP!6<-e<7Yl(*YS|jPhia zq?te+pj~E(6K9tVex>~q`qb00#X#K5V&Ha8j6 z*R#LzH%xXlTPG@8kTh>kF^DpkSLAqS_Si?917#A43&PDQ8?X>!)Gn`$m=}lgE-5R7 zgdPhy{dBi)xU=RcF{d(UzIm|(_XL#OD=}A2Dq~FjQJ`w=K4M&@NU@vySJY=(QhHob z0?Yg6&r)zbn6oTF8XlOqD=hTeH042K!fSd?$)x@o1nq~6A$2HQN_t&(?u)%wv{pY<_{M4;-_11 zu||LvpR$LBDHP4eXLz6xN_xMQY*XYnPWPrCzq@O~Eaj-{uFz+tvJK{9{rJvXkWjXt zrvx%!ps3A4&bGQe>@GH_z^rmdhaTuo3~`IeBRYSzrJdc`jQu9|Qxv&g=+{3!Rfsd+ zXiTNBwTAQ~})b8v153$7%}RGm1k&1}Xo$AQ35)3-VBE7;`ME zu#Lt0q~EU=&;S9?QvDmfE6D-fa8q4gFDfZASjP3LsI|(-aQY0Vo18+a_1Ab=eFxW0#W;iL{dS9ghfPKVz(f`}NX2YIUeh9U z)y(D`eYim!%76?Nu3&z|{u&M9p(c)ef{OZU-qvz0lJV>Xxtkz3rLB?&m}t0+h7jGq zuARVUh>!y2e;2+IP+Q7U6Mu`~00W$l1&HhKRiTh%Lmd25vuSi%V(|wT#>z!Rch+^# zY-Uo?Di?0((^6#zeA<9yVU$cBR(Y+9qu6uMq;olGp~1iEFvx}pZ*R2RtSJ8HjB5bV z5!up=Q5td5a(WaU`wnhAx1pbhEy@@{)+JWN*b63B@GB&h&2yx=$!woD;lJyD)yC`! zd%9TGHd=@FQLu&oyWnIpIbsyv6ESNN78$-+*Xl6jc#bkwrf)}f8G&?Nmtl*pcl&4I zhI^Rh6SgrkPN{y6xEU8~qjG=_Rc&?N$hbrEe;4rf(K8mav|oI7UcqvG2*rwpL5qi# z`$I_EN z#sNj(m$8CFb81lI857%)(&XEg!^vhN<4ljbZPZKfVPq)i$V=u~5ia&fD$jEwo?t8u zxFeNVr4c_u%c&AXbNE$C&eine2xTu#rJ@dBAUm%S7%NE&hah_89&$G)uWK-?m|_R6 zZH$HU%GY1>YW-avp7Gzm{ngUCKRMp*k+Eq-zT$48I>Qv*n8ibHf}*Aln=6MIEUZmI zqP^?$jWrv~m&)hJ(>WE#L>mkDP>h>|j<=@>?6JE~w(out>C~{i$8(_78lIIRm#zLp z%5S26PH5SRNO^6UYOPI|>O!EA`q^nCBU7aK^TUqP09JKB&K+!(eRg1o){lxPSm`yY z97&$%;~Y+k$=K%uxzK}hT08IA#5+_scxBf=Eq+*nvynC4FcI}-LoSrnbBa@N;-zY{ zp8BJa{SqWzEF=dfW$86)8Xq2W-xmO^W5UB6)?=cmP|GPBV3*iH{LgVFF(HO6^Hfy{00)+cNNj#`$G@W*tgu z7AcJy+L~)9rt1n67kXtx_)6H>l*B2ZTRvIoRpTRQMx|*_=0Aq$s?`5HF!P;7ykbPS zOE#A+0(#p$r%QBu%!0=)y-}YBs^>6WJ)x{MXT|3g;Iz$F>o$XVpk7I*xOYtWDpy9d z;n;z+BhE1~CqJqq9HM(x_|XSmOHqk)JU~QAv}vPSQ_PLHwR+n{cQr~Vtro$qX4KXiDIxL%P@Svbk8pUqihu8zmsBrP21F}NrLSKh`>ZqiK z7w1Sgcg3a56y_Md$;~=Lq9=`u@WS%(5%@WWNpt5KwO{(5uJB4>Z&NISell281Pc0l zpyG3HX+oUJ7#5LY#|HEu48+mxdb+a&sg9W>@A*N}g|E%~$Utoi2)y{$u0kpj&Rgk9 zj8tGv-Ve&)Yz$8F6PozUg<-`7DP<6>;P*{~nNx$^KB^eOTD!;|-_q~Jo zMq58p30W{pO{{h;oi>cMFyAVOsx1pg&f*Jlk**rql#%vKoG-U@R=0uxuS zGnzUi87ed}Dk+9$ix_B=Z_$meyEWv<8`MRpH)wPp*#))QZk1K!5_?XfN795>OpU-1 zS1MtBl-FhwrgmScw0DPp-@OZ#1ZKr(gjiV&@I~1%;hYNTo*D1Va%CAT7W38-QDpSr z!t#sKXfEB{7ueBZu+hGINH!>*=mzKPfwSCtjJ~A0C-46 zYwkYC8`JcQ)Jf`1L))7ENCk4k`j;4DAo7&Bnkod}|9-70a{*%&Gy&i)=ILTgg_l6>!suBjz4?uhHuE zr0H%uea0 z$o4H1c^ThrOr#38)RBQ-*NZDE`gyDqhcU;coX><-|InU2S}97Rq#?{0mfge3-ELhi z`)1{+ic|L5RfQyk4jmHTI+Rbcj0UPN3v@V{o@?hY(SY-jyAWFxT<7_{zx~#mVkH5n zfnHhHcTH^5x4(V^#KuJ`jTqNwY6mS;D6FYf{B}*e;z0IXL)C6>ojS% z#0v`1?b58K(2uY`6qMzF>syOQa|9y8vN|-x^Q*%Ujs=sjf}TLX$J^Tm;o~`0^ay-(!`&g4c-4s+JtI^e7QnGftjL zs4y^-dGcu|<(hSJ%Ci#5davcZ*wM-(wQggn9IMd$em+91vbcQeBafsK!%}rcaSr~< z8ivgTljZIuznV8xr~HX14E(7X#F38d1pzS@ymjK@a9PZnU<5sniF^^v z5BzSEE{@r#@zxR?TjT=YF9|#UfojQ0~pU_L(gLn|#qK|5=qm!xAZsO?lhCVN{Frd%BvATL zrsKEJ5ewW`d4ocCPZ3HCAoH=Tnn_$v?nhU&=;uq8{U!VH%A)%1I_%ur<(Wx}KF3Qh z>l6;~YB`Nk<0d4)5f4G{C`aaZTN4YC+={qT$6s}DXGGVh<@>9<&z>Z*4C(&x#wWZa zVn%a*EY{}&oeqqzR1aw0%!3_Q=+i{gKAyiEHUNoz{l%~nKf9^z02*Eb%woGZ&PGA;ly4J zl9vtt&H*Ll?r;XV+h^M7#dZh?@v`mbuyu-hx~?b~+F^sPP}eROEF*p#yl(NE?m(-GOsGZ5kZtFT(kI-4bD$f8m}$9>c79%a{jnbuu-i+?YQCBBc;x9KUn(9LN)@+rg+`8Rv)U1pio3sG3a!KEL>US&N!#SB7w^9D$S zge6#3Fd6{6uM497-LT`Ws7u}2MxXC)EKaams?XZMm0m~!>Y_sjB{RyyXfR9~RkP${ zOF*+>Ic8NQHW~%OUnYuMFNxkaWL^^7**P$j%^~Y^d{s|G%1zF#W@|-kWC7*7lmVIX za`*OP+H30&&j#$A(60wtYcE-Q87<)?|k?WT+@#8Cfm zjXj2SIfFU8;}O-;R<8PuT*x|I@{Gl{<|U=?hk-{ZxoBlqb?L4eVs+_G!(VaBj>pi$ zu*+(r1ySt8nr(s>N335~n}J*QzFPU%M$cXR55$a~x%s6T<@O0`k1PxEJ?S2el+& z^xw-1!u8xXyH}@{zh4k2XNr2ri4E~PzF#|1vLH66o%Rfz{5|z~hGZEfZtyyOE>h(>>Wp^yjA zoDg2IyiuWDbx-i*KqmRTOwYt!%( zO(8vz0Q-F``<5Z=ym-Gz47cXlG3_vyr=RewEe#+);FAG0o-7Y&ax|29b_5E>FKMdF zuxT@Lm=@x?!DRTp@~-#5-Prs{@N{dSA`}jeYl0gJ5&3jCudm4fn6O+2;Ydgbs3Df3 zQfif{ahcum5;9<_o~KyZE5u$IL6sc5(*VDb{TQp`Kv|;=aLLlS#045u zNCTt;&+?|J>r53>3Ie)FF|U0AUUh8`^NI9I;ZxnW<%(f*oP64z*~sraM$KP>5$?xv zCx&B|UWL}~ghP(r<7h=f68i~J<0)JzwFCJ3&$ni?zaL9Ytrsy}By0eIwe0p)svvnY zr*sBFzFAGT>}Lp>S&KyTlOQR_AJQ8dEAJNhDX8h4(>&?{9w&wNYB5n;nSy^BV8c3A zLq|3%YVzR4piG5apALB9MdGtHkr`v+K1Y z9Qd!hUU|mZ6c=GNk)hHfduzs_KC$Uf^BJeWsWdE$AokAtsE@o@c0kn6v3 z8+GNe92C~T8%ZUevDJlSGu{28UR6=^nL#OoPMl;R-K*6op^A^JaN*+olv{jyNB-0| zz-frf1jreDlIZiJjWZ#_$~I-#?!o!wWPTlaxf&kVDZJcLu{KD2SOG=7-kda;6WCce znXv5%Xh=;5W}XTAyeUiUmCQx_X6D@b1u?KuWi*aR68d);rt&xc5Y(^c9HYl9xY5<}|?SJW-FVW)qhf&*^@`h_RYG_H<8K*s~ zoalP_t;&Cja;c3uTn9iJzlbH0m>pY8cyP?RZ9qz{w+^4=WD9Urh;Uso&G_AAA{88B z`$*ktsG9hUulY(+BWa=k3m2X?QL?52WVAGYQq}1>>QGpq-2dDN7LuG5C8NLPAx42C z{r?Z5KwZDSD&rBdrTNOKFn&oVS;A^zR-DJPlsuzXXJ1;x)$xyrM<-IF39HSfEU9y@ z>qyg_Eg@89SDubPCd!C;3A5LdVpHV+ANnE zq)xQ`(*} z()ErtBb2@|!FYzb7H*|8Cbo&)m}=?YiujIgVy@8GO69V9V2Rs3kxV47Qzd5N$|~g3 z)U3Lk)=-|Y)xD<+yk5|=lgcc+Ig_6WIaz_0EhXbQ2BvAEm+ZR9b`;SwaN>0;C;USz zY1loHv`uNzRcwh*PAL#Egx^#`l9tTT+4-K2Ec53CXFWC|hAB;1Py0hc{Yg8iE5bFI zYt5A}5^IqEqg(T#|b zK2VP(?;CcjZtD#!-hpz9yGf&#bLna=*-V(ZGJlYm?zLAw!KvdEM^)CWmJEeWU$l#* z>Zqa|&Qm0O)TJvINIowK3~v%)8Buq4zu&}z@czrNaI~({$sfq4bkgBBg*^v1e1{j- zV$j(sYr;$=P#ptc7(7nQf|0(ajr{cPX>#n4Mm* z?Y;^A*o2z#GF>&Z_?i=2Ike?7;yxlQ4Z>qlU)m5R6MIW5Myz)ZnkmArFAuyK(shoM zzn9|KXN_g^LvgoMxXqR?vM@{9S=NnZ?eV0o<`VThYAqGu_DU|f*o+jmHj?-ABpqvH zRU|vdT;IGTp4!fxRja-0yQwZSrnC~?+AL7O;rrxKeAy7Im@%C zQ=;g&q~I|G?}W#8y=xGQEyI*D$DaQHe8|_A-@9Vvdtas2(zM$WSuC9;!>vn|)mNk0 zQ!m*T(j=`){xZrsK|Cx<94wK)d~>4OHIrRJ>cvc?;t|reFPN)aDYK+MG?Mg)+nEkG z$$US9pv>6L=W|q<9h;U*b_%K=yecNl5wnvtnLav=CJN*wNSioJzfDs~vog1uN_;Tb zy`nn6P`_YXxwMiQoVCJf%qH^3il;&Za;~(Q582`su4t`EZivLO6Lp*G2`BbVm|n}Y zZ!vn+y2N(Cs+~N=I);7GphUkK7@s{o#z26A?u)OT*q4 zE4Rer%y9P*@2Oupc7>I+TAOKygk^M9hDOG({vl&OlQUjigSin>aIIA+jTBNJA{d#} zB3Qlih4qOP_-azIyF@4wW?jp?9?>^5_0J-!#r#m}6j|8Dvd3&zE1BgLl~7oY_Q~b5>IH zN#TZG6LDTsV&UZ*8C;glOt|Jx6JDM-=1=!T2Rb%-`QP(Adk zlJ;d!pygv^N_ z(Jv6LT|^w>71H=Fdn%NInF(awl1d%a*r>MboicF)DwP`6?67c^CsMI{LR!;jv=uW= z+}Ha zLTf35v=%YbexgJ%YNoM`pXv5jWadRgi}+uZ>4GCeoEq(B~R@Q4Dktk?re3F zm!y>$elBw(h+kw?%kbor82IMGkwX;Py5##p z@=A>MWNasves0-A@ThW>$^D?$hoRn7VpbR!E4b@>>M9y6u2U>rt2-)6q^HUzYKj{4 z`TqcdxqQxt;8zFnGLp1Ee;qYS2=;vwmj!v-Hm^I#xukP7pUWM&)RA1rFUcZOaSJ^~ zJ3g6KT3G2fN^nx0bqTM(v_@Y)zlpX=%qc^JT~8UkMCHtat_-eG0##xx!)HV`M3EuC z%N3-O+Wcs3$$FXo#lQ@LQlZTU62s1$HVR0ft3C5S&MHi);3b6Yaw3wpS6XZ*A zGL#^qEgd9D6O$IQmS9sitKK$Hqpnh)s&dugDfuH*8hX-iJw&ahGFPumUy^W@MEk=@ zXRN~mwL!9$NfsnVqMYU;Y5u^COEWsFGN7qWp$kF7ZDj}`;LD_)Khb~9v{MDF z&1UX9DUsT0)9#p3p3PbYF7XhUN#;nKv}Meh%kI)8KB&*yOmAqXGPQpzQB=NdW7Z(6 zs6DhTW^W{jI6YlvbAR-rQVrBPsp3uLij>{LpD3_1iFCZjE7_F2A|Hh0DU2+iMn;3_ zPOOse%%6i7M>ROzpV|qwC`+w7R_x^(n$Hv9F`i*6pSmb!M6gp~=HTYX_M*sN6}efBB?nkksaV*J@2Bj?R*dUNyn~k*gfve0J6v21KOrmI@0~ z-%!~`;>pOSHho^LuTpL-6-Bc}Y-cH1=Gj%9aW`mH8@$$)?eS$7#?fA-hpsx+N`ICz zL()!*EpAoLX5}GDPY^`tEkiK%jK}gKf@nWb8z-+k>=0 z--Hft%?^ZZ4$M(*k^C6h;XY2Rw2QP3^^>Zl^Q51YztJBx)y?+GBe>FB=2XFHgvEj? z%hK^>W!IRaCpI@Io>)sqDMJ+2P}F{9%4aw22Bq@rM6Oavmv8-WY`r7RXih}XmDHJY zRzy!#LIm?oj@NBdcF3e;xUo%0vTgGrxB5|gDzZ}*-K*hxWl8+@Eq`=hd>FHhsK&I3 z;(t&$`LyO#&^oHOYT?i3>lv52Uv}#{c745P?=Cc0a(v92XGOO5p3PZDI-=H*R950G zOtPG3mC^;Dm?c7U1Zy|S*ZZR+rL>()t1G6hFnhd0xY8+Og^sD46|%?ekfUD4wPaay zFt)m>Xs=lGh?vYwrwh$KeG-i;3lMeFqN;`LvqjSvs?bGIC!%qub|l%$=yq~ao5e}& zoJ?n<=W~<%b?S}JI%qcD+e1=4E>1>##DO{DKc4YL5H4T~;X4t7FM)<@xjlvy?NmQNXXC$#QrQay1 zT3;n-~JQ8WV>p3^->0Y16Z|xDw4Eu-K7GJ#I5v|EL~NW zD#Yz5dW7^Q(p7&iVpJC|aAw+k$zH=TWo$z`H00|rc4jsFnn%hsN1Q#@i-@^ZL$`>D zDH9w^}Q(iG^+QF~soEMEf-ykj7$HToqIO)zR%X&E+@<0ROb za~iUU&RZ(vT&rg$0-X(pdMY-akIQ#a2tb(G(-C?zvR8ltgvgSJ$; z@H}9CVQ$|Tq{3L_RHf~gh(?^lQuc~Y&P`e{!d2s>NKE)$kp(9XluLXB zs=sI>;Uwj96(yC)+E6dTPN*t`Ux)K$6aN5cN}qVNw3Bq2Gb)qjOkfvNne*BM6LAwlQ%U4bj z3s@$)e9F^Y{zS>dtH5Q$df>^B-hgR>EcF~j&YF~)i-aJpEey4}&T~zicTvJtpRz7x z%%&3*+pK#q(N^Wkp-hQTQ9)}a+U8NTo3}w@7|lxg4%#Od?PhOVESk)fM6KzljVjDh zV1=6v34=Zmt=XEZYso5e%Bb5iDHMRTVjAO-`=~t591~G&Hj7 zQ6Zf(rPD$;%fn4VEb+CTX@x|k2l*;ZB@5#I(8v)MlG(PeF_@smN<4RG*%}F|ZQn`T zx;wlz3R+B~bd)(ob6HgsntJ@p`Fypb_GLH0*3@BSGD;A`4KTH~az#CQtA?%^rh`)? zWZai7C!#GIp=TK)mMrDTmsGh)glxhr-FX96j|%E#F?7ve=(@2?CvwV@Z(o^vFSb%? zvosQ5s}%8*uf>;yLQ2%SV!jNs15;14f+}0ctSr@wJ!2N6lkw%L6PR1Dky&O5*4AY4 zB6ez56rwkwap*}yNXOMpj(pwX7lc=_wR6XlHO!N4W$vKTH|tX$Qi zrbCJ~&Po>w+eG|yTt2yWAAPy0ijCh415Ns)5Yn5uBAk6DEFZzc%K@SCQg5mSLw)Bs&R zY~>ZH)ZV=@zwE{fLP4)JSv6%&nIEufDjCLh_HQ8gy6%eL)m4U~*@g1@Kzh9xjG8)2 zw1zfeB(*(|Y~@FnwKHc(oa@un)-8SttE!a8z)rr#B_f=*n$EhyI;`EbT%I!xQBgZ_ zEl}yVlg!$@Rmz?z+2}H5_QHr!Z<&7n$;^mzE`!!>>iNZL5mQ4|MCiSA)decbsSIi< z5&RuBMnb-~EL_wUq}6V!YGH~`56YaNmMhhj!s9B0IzsBX2bG|vPw|l7$@o{IC7q*k|!a%W?PI+X(C`ksfvS^%F*JJcUnQI6wPZ( zAtX&g6{P6i!fK~jtF(4$%M}z+7gJh$21%I~{gFW2s55YKkcY3k#4QtZF|8$0bAn>_ zGZa>rBtlQA8D(V+h^xJFWO<6TB&impwSBQ}N!^;CVx;a?t!d@!^HuK(+hIMP6$CMS z9bP>Lo}8{McAmnZk~ zD=Ox`ulXrv7M;tLN~z`Y=LPM!T@J9o-OuKFkuaBT)48jsNrjTuO3zChre$5sW=Nm5 znXx}$p~V|n*6q|>sJ%d?$ZSr}+Z1;Yn(6WstkLn zt!Ak8R5sPwiTVaPNQ<{A6Dn#uF-&0&sRJZyHJ)Zw2wnr`FlWEES$Rk3WSqS-l*m^U zt=&F2c#_tOHcYM?Ae(BuVU{V3G)AAx5lbC86ul#Mdb)#>%R`LkSS+$!$1ja4H5kIl z*%r*g7BXC^jH4%tr|cX;d1oEU&00vE$xZ2IDBmk?W+|T{O%zYN!WdT7GnpV`xR&8B z-)yx80jbVh7G%*AF4XfyNM1Z74046Gc4>lH<;yIm36#P$L!h#nH^3@L&K|Na78=DO z#rr}tmeUMfWs{b((sqzhY$J%*@9xHiO-UrGM@o)l&Q7WO1w`V)OJk9oe7lKi3UH>P zLeXN)v9ZZ0eAD`#v-U+K%6k1b`nuDJA@Lu!K{ZVEezUqN*?3WRB*H;sXZu3-N8ZF2QbZ72610^3*#dqG zEaR@Mq$#@v8##rFn71xEY8fM&i>VA2%ubgtcYNBYR z*S%Rodjm>K89HpIT`h7%)b@XfIO4^>LST|6ZnY}+hN+cwV&AcrJ@JJi%6dXOH!?>3 zOS>q?FUqCWn8T+!(OQ%yd@SA3Uoz3e^xTt4IS(rSItxl+TVd6H;5BQh=d^=TJRG=VSRkN*K_~dYXF@DsJ%;!3R(+N5zDMt0wg)$>aOTZ`;vlyr9)Hl9ivYnYYQJN)H z1*k!Cw1rf7{^(%x#T4wEqWz*P*_7ocv=Br^)}V6ml)iys_NmU$02*CFM z4-np+LDJG9;AE&Ltl}sFXBj)7%AP5NF0_<~HH8RjX*OU4l@Y@=Kx8R{1z!`bjVWs!1a892?bJ~%|STCF^!gxgC<@eigMHdc!eMo7ykgI4A4+zC;>*w z7DV!QgJj~&8rB8Yq%=Ni^94|T(SkLC2?=4CK?5GJWvZ>5LDLYW?F9Nz03+5=evb$h z)7=9Y0CdyodO+~ND&J%bPUrz#bpy;@#sp(!+mszt8)jevt1-9c3nBcWyu5uMQ;{}n_#Ui#XV6I(Wu*Y3~@I`kR_baqUgXtbDJz8 zCJ^waY%>TB@2c~289j{*+scmNC_vC9#~LQ)sT<-mkLgJF-yR{NY*OGSvOFV2u}KDF z!u^qlqymP9TA~7l%X~Y*2P|&B=7 zC{+-q@Hk|8U=>GsO}r=#=ezcSQOf+G{fVCALOTKs zY9V=V+7t%3P5Z%A;u@&s24iO83aj1{07BATp+@2T;G9azYl;DV9uNVPw2&PYZ^{c2 zz1$#FV*m`vSGd4{!^##y)NUXGX)*HyCl`1*+b!V+HeB z2yjob57F#`q{d8O_cmJ<=HaFyHFTV`(k8B4F&E`Fh-QV=brd^CkT8!~nxOHs3IKJK z?Fd^rb_Y1Oh8OXBJ3tEao`GP)y&ll5SC4N9pD$3=Y!ZoOsZW>D38=v(%i0MSQZi$N zSIP&dH(h(Uf{LYMW>E*5mQa0?gRd^$@JY>>V%s!8;iM?Oa9Ejkf-!^vJO?%5BvOt1 zA%5^rXyZ;rSn&-&P9;UAA)11?4Y!CAAX$2oZQ%;2gbmf@%oCfmBo1)z4dPT>xj@QO zW&?5vs<=Wb&K20%`yi?mG#fGc zz=A4c@dNJDls2YXt^vq*8;H;yi=*3?{{Z0)W=Mslzl=BagNoPH>>CXn$*nZ$8NYy= zsNph|J!Gi6A_nc##qSO-H}EB=PpUNG>$O(s^ecyx(|E_sF+OaBFl_Sq!PQ6k)igh< zZTv$T=4EG*XGD;*8ROLrgpu{)mb3ff8Ws`E%*AtQZBKzqPvi*A=}?~6WPHEh+dbUA z@4klVc5@`^$F(b%y~NT?p`@j!CyTTX43FmuK?+l5baN*s_}vv0@1AO9MB}{C(^BS` zvv5;(45eayweczJzkwC=6dWXESG1H<+B2F=Q9#m1W#z66ufmqcQ0D6uT4GZTYL=Hq zjN4LQ0@K{p3SZq2n_C?nBCREtGb$(T_%^csz0Ai^z{{Yd5lFdD6-e##aT9Y?siCUlT!q@6w ze)4O$^C{-`!cQrboksR`{PAOai)mV)!a1kH z%TsLV*KF0Kld$0{b~0qusJ`&*NNFB&^+Op88EBfR-&qnAqEEuBQ2hdtYaNGIZAV4^ z5m|S%xA0`fPCS>y=T>4>EU_~BnAl5Fv6br-G1(TQo9zvRs?<;V!nV=O^r)MMT3IB2 zcv_OtTHIPtv8a(m`)W)J{2}#iJ+vw6G_qRX&``!wk!UEctKIySoTV;F`~Lufjl;`s za&;Cb2;G|Ih>E;@DjC&fvhsvXU!R))00~B^obuSJbyj%JNKWCA#1->dt)-i$VxpTy z>hM&KVL$wz-?&rgzWwG-b!oJNi9@MGg{p__mFdhfYg+4TDMeH!66r%qjo4d^Z)O@B zbv5zx2MVaJVHQ=<)fSFZU3rR&IVq|xElN}Ngf%wJ6tL3oSHR`3o@oZss+WRJM2Jq) zWhfUGcSknyWs2r##zSAuOb)8mdRa$rM#de1{BkGD?1q(+F5MFp^M;5a=$kP?LASdd zvf4C`b267{Sp`Vll+wq_WySe&%T+P{$Yq?5ORkHCo|0O!Z{GMkoj&N>8c$tEX!wu2 z*eVM7-MEw4q>@Ga^yXjui4xRte4T!zW|P@pxT*YB+u4FxZ#1&`M9rFpl4Mag+7Z7I zbEVY8d!)-uT(s6wkT)y0p9&ngPS2iZXML2^%0Xu!lUlixy;^HKQL&W%irSLUUuY7F z*zr;C?l`Qs$^mtr3%!s+XSM$2qhxc&@YGrY}(elRG zr@j$!D{nWO7lrJ_BCK+IH4S5gp7BK=5aHsJXM<%7?M9JS)pS#$CMppXGEQbjIg%&# zswz6ZCV=DyteZEbC>*H#U)fpKSr#B+$SoTaHvea$Xy5Tj+KLlTO6|Dr+we# z@->R+H$Jg%YnEvNb`1~X5^aiK-yKF*(SVE`k#k#l@fH67vMq)DL$oG|i`oxT3j+_Q z&6IpjE9de?FY#_-vPGe1Qwmc4l6M9&=l6pxG+_0Sl)|=?{NFgSPfyw?-GNxsvxh?- z(tS*ctQ+-`>#cO`$L}Pm6aCQY7BXg5=S5ppHe9AH6;zk-4Mjk)L$i3DTqKlBMoz zBGoGkDmMa73F%{)X($Isj?N+C&GRWwWLqjj6yIo1X(DRH8WJXM`Gm^p1gnY#;|Q(M zS2@deGK8fjyagdm-k>^mrs1r#djcA>N-7L^WlxzggER=sHduHyADKwr;8vtxlcg_k zR`^xHxJnDcF1-;Mq0qXFi3hW-)p(Po3RAA13Frt~&a_Q+ribG)ruT%obg`_dwgY071iPdtidEJ(Xbe+__S3Y3Q)-(ZURc@2Y{gLBvKo-e zlC;lGBFmrqP_n2OQMel#p_uw;OUF+6pcacw3Ny9hww~_2kW#ppz__DK;prla#hi!Bg&pnRC`k3QriS+E8Wee1us(EhBu^fUsrKcd&dY?XxYCKqz2fGSG1JYbvME57^GEytqDBg{vk?q z%9(pqh$+t5aR8*{v5T2v`yxBtOVa3Dcu3^oa2Z-}N6S=UNUY@~%fcclH%6k=m{huv zr$YTV>(y4Vlp*BQ#ioVnFrYN$3ItycC5gZpSkSug>gsSgR2PR;rj-n1ie)V_B`@UV zKe8D3Oqq@1N>MpkHjBc~R8KK+0zMH`ezzCh6(_V!NNnkpFr}hHu}EcN(P2BZtywn3 zGgaMw(8;Bx@=Yd%Xq}vz5QHveR6{522~H=Z;;S%>;?@;9vj$dP(Wmh0&kb5cBXm24 z3GlJZPRU9z%388i5WS*BLKi(g$kQoPd*PEeL&gTa5FJh<4tL?ApXIWGQhP@Ugmz@w zH|LuXOx19RiqE?wK2d{OeqXie2#1=cZBJb zU}>Ho$^?}IyzeR z$s+KZD1zeKqGYnFQO-_Nt@4JbL~w%moOKOW3g$**q7vM;?E@vXYv_(@Y;3_eF4f@{ z?2ycKWi5&ZJw1?vTI911cd5Ji%0Sc}7{&O;V+;0CDVg*(-wX<0WHP0=Z&qQG@M+KE zYsvv6^$G0aMrLbOwk*q*yulv}6F-X?a!Lw;YYvsFW%q+3BH45BlC&FqRyh5`K zD5=sJ5VlS;#f_S(0b`t|^u$u9)fhNaP(gA>F-&rV@o^Z&1&NpbAd{cbpaCU3z!h-| zKL}Y*Kmx>$j333QRO>4Da)FMeRDn%PJZgZi(iM5j+6glB_P`cKQ_>8bdOJe5S>nUY z5`1hv95Hc}nXja(!EMl0;qnah?$t=_Q+;A&_?7(G4V-bCYtnd`*xB~Zb9|z?Ms8^m zqI!s}s77{MA+5H0Nwhjgm@46Pb$04-w<)TmWs$Kf9b8okRSIEb$+Mh3s7!8k{8EFR&N;Lb1^9?m$|_d0E{bo<4paLgz}hP5i+ZaOEPPB$UqAQt%+8v7LJ6$vhpP2yVN@OXQ8YD0CJ{ZX!IiCi#K_Qh36#H^Eh4sBi3G4yTDS>F zSHQ>V8j}>cy%AJN)X7c>i+~R_nW$P7m@J@JqQOfD)vB2FcdD{N2KsWhRV~Jjl2T9Yl-T6Asy- z4pg;;5A6c@nrF&!HboLl*-ccr@`X!f%~MR(q*}y6C|o*ft1y<@a@e^Jn7y(ZLY9=G zWeQ^!kxcGigsPbhM|zQb;&Pgl<)l8G^9Y~hsb2N$xrO!M`VdDV7=Huf<^YBHQ6?KB8=Yg&@~BEqtonhlgJjHCuORTf#P z6VR8Yp-oVih3NxXE~hDlZH%Kwl$8Qij8m7oAR1GxDdPmQurf585}^@Nojl2fvS^ls zkcsgu8aqb*fzB(Ozi@Kltd>soL58hTPlT#s1+pq6{{Vw}(eor~0@KmTPdspO3rVXd zfSqavJ{&r4{S?QfEsBXT9Tv7BsVTkTEiD|iZ`M#kpZ0}!<0O%? zVK9>w>m^1O8Ael)yX+jE$Z+<3=1O|7wWg*is;57q81VY0@rT0{woM@}ByLMdPI`nD zBq~?q3@16YZP}sLD^i0kHn$2sRJb`w>4marVrs1w6sxIFsh1%#bfLa7sYom($)Nqu zSYfbhsi2({1+hkdz-pMaVjWLtD6++BrwXB<)|;lTQvKi!GsodZnnKv3kg{siHd;X@ z%MDEIls}{|O1YQ$Izr7bItJ{8u|*Ljc%`cblLpO72JtwCD7bMnsFaZ$!kp|}yQc{B zcY@h!Lx^Lne4SXZ)D-QUG})ohFQy&UpD2E?-Cv>>`ier7mlA>$r>NppK8|4-IbIQ} zGKL3)onA7LY|E(1#H(FK?t~=lm1aF6MiXuvY*8^Z88$@6RUAdT1R3V@FOikY%upv7 zWbc|dIWvfJcg0ea&c$M%(MUTcWwo)<*&M78N~Xf3|!vm z*f5q5q%N}{tv{TmlL?8+n3Z~d53W@GGYWRgslHZo#in?sDQQsV?$9L?Xw|=Adi%5v zkBq+y3mDHY%dW9VDi3IF5?Q<-Dj`eUNIPNKvo@UI>Ly~NEPSE6_(6K){{XQnDqfO; zY4nEqm&Mk0ibnaO(ovI{Ti3^UbjtLK8|Jc#cEvk3Sh+^jIjE;ARLS0`QG6Vm9ObO$ zInBay7zO8qHX4rIsNGKGV$myGQH!d&$0u&Fe%PMGQdV-(q>)qbnkgmeiZl35qbK3S zlr?>Uq(;}u(@8}htgbg;gv=1h^_(ZhNiJP=>f%tei+0g6>{%6!mVW&nwfT%+NL(Re zTBO^p$5mfMAi6_Is;1TDPE_=00SkWlB+R06HwH0{!gR%Zc=aQ(Wtw(PCkdCSF^nUr zWhNDu;wxcr`^D~zcc0H^G6g5Fjx;ooTa~gSW zq%vgF;nlNM_Jto49&C=zT@GpRK47L?RMM-yVDdH=W0>u5jzk%Jg=FR@tgyu%oqQ;_d&adkRo^3qQ zWQ7kBw7})>y`K83u+ILPc5VFrTgK)P^n5*L#LhFX}FcOj^ z)wa1ZY-H6wY#{TSWSLhX3Yuj{y-@11{SDg5_gLyg`Js4v(hYN7hi_C_HI{aYDAU_Z zIIMWI`43mFXPgggF+586g!V;x_JGDU8R{OWm2_;8rHomG)w*U&wTnn;OCh2QJ2FMQ z&GK_63T06wOn==Ld|Y{a%B~%rSToE_loui+1Uw zNxP!2kCXhre)8V01-m?TEa=Z|iivRS!pWH5JCs~I=)Y)XjCHAm%2z5Ub$1`aJ(9kH zWK#m?wRVMaALNvpQkj0qK$LWE(d3ZnIn^YcSp&vMC%xCq#6dYlU4>m=AF89e-?E5l9%p}VK$Q4bX+G>Rt?qc(uqhW zI%^@4w{qpr^J_}IoT=7!1C=fX1L;1wJSdwFU5qX)#xT6Rl|<)MeMJs;#&eX{F5 znk@Z>32@6+5lBw(=d#Te$!!ItQexn)W-`X>7_E?TGByc|>~M{Q*2P-OOEklJwU?XCh*ccQH3OTsid76IBVwo3qEeZ;+n>i&akeC!c2-Yt z$|pZMiJ4p#)>F|?U$;VGX%fb6!DTwWH3^h$<~Fv*SUiv4%H(G$IOa~1La($u>uGvo z&mGNHPRuK1j?9L_MY_%osn_)JI7cQg7@;K!ZTT;)(J@YH;~Gn;(mn#uCC(9i?^Tqg zUUg|LCG@h0lS#&mtm>w5YBYqw@+US{_~ona7;()n>5hG8Y-v@VJ1wi7zVUW`SdJkF zkA4v8zGm&}saVN1mqE#}iQx%l6niy}tPC7XZuZ~zKjD^Z^*@L5eL0u(m9nX#t7|W3 z=abe<)A5qVJ&$;KPe@;cYR$?YI#yXIT2C^^Ix3O*DqHLY=;uPcCp4pD(U#9Nt1OVo zm8Ys<)wrYkG)wkt8SOrFYtZI^Y%8Zar^Brwoje3vCS^~b=M_&7^bMXA6H6LbT@qTE zERpa><80j6KAf5*e`lP%wE9w;xtS_o@nTYQp@;dbiGJ|%UYhN#pwlGpS+XwNOJt>2 zsxpogOy2%r_K38Tq?;)>WR#CVGFg!l&GDHb%B4Tnk6ZpK^vlwA%p$_pNUZgTv#Xx9 zQ9;6*(uMBRn0gVx!oieeqkh(ybKhFOar5>~I#xqz(P25$EZK$$i-@xWtg=P#7OKas z^kJqw0NJ@Sm8TZUd!(6%3Jl)1RO*o4h9OE{yefJ{bbHVjM44>0X{52;tF#VHNoAVn z`a^e0F&Zf8Utz30jN;|ja>m-ux<~0&e6#x% zXOCrU_9i1#+P-gyntkO@P_wX>Cr(!C+}Y_3qSIG`JRoI}Gv@B`4%-a81u<#PZ$#aZ z=n|)<9+w(AYTiL-n`p+wye}IUG#$t68job7$2}yvBiR0lb6GFL8%;2@%FYU9kYg=O zt<04a*IyP~`AzK%qWezlm3ywsHx;Gp?b!BY!=NsL^nE9NHqt$(cWK_NO3vxqvypXA z-XRh;B8K}z#d3+BlUYq4%j_17n>(}Y+^MQ8@>YE4_6&UdRMI-9MShjt8gx-3)F-xf z(z=)^slGWkYLnDcCw7|u0PyM%`f2p=vD$F3tSoMhZ2Q?;M(+sqS(B8LYr<0(42h@h z4WSHpN~0Y;=PRBX(%bkV(?*>ebdl0-ZhwZ>F2u+YX+lSI=!&N4V)xU+Ijj3asA)H$ zeunxs*|}x1wlb#ENdre@BgEO2!4}QHQkNc;3s(^Nh{fWPMLN4c?XD4OPXNZ^7H@5V zro>CaGii*)LU^Q?P{$!f@wiSQ%~X-yQ}5;}9$y2H5&_zD*)Z1Uet!=GTy$N-ku+rNs*!dP+N1D>*FXpn4r28fuQ%1cJ zbit+M+#1iw3PeyfDl0Qn0Ka%)=h`lqSo?nV$XiL|y2?(ODTcCZRALvk#5-XQ9!jIB z%;i3s7~5qqXEvWqXA_NbX7$RIRI7^q(S#XoqmU4|MUfpdeBo5AjdXXwn%K!u>TR?0$xYb9Qw!eT-muI>>t zm~+pFQ1K$sRB=rh=|`efl~m5=78ZE@+9xg&Pf*7py)4U9_J?}6HrCYiptEf3wux+9 z(#YBMDn;ApQqrVMFF@QQj%ixkxU(8fGTj>Nvhxch!Ldl^7F(=itLRnNVekz`kF8fs zdt9kCdr2&_4V)IDctHleS$nkMD1Wp(`6r32ey3{7TO3nK{S@Uo2vveM^GRw;o;oHu zCCz2{s?q*?DDB!0(q}|lGT4qS1mbe#@;n5ZGH`$OMW^izEAPSCEL4syuADTy%UXD* zE0>BdMj^Yn%ACJuf#iEhY_w&ft9>??So~EylmW=RF$qTIq*0es^ixcNSKs(LCWvQmQ{onrpm@^a266jM$ zZ}t5sTgP^?Y~fmto1@i@?Ix8+`{T}@Jf*6S#+UgnlUvK&wfg9JD^6V|?1ql*aU|Uz ztkVWf8U9x_@O~DwZs}7oYB#iDjIy7EBTurHMM1pEQod}!W z==Vnr)0|bSl40PqTBYq7Ul?KJi8YgwRI|lrZJQMRVxEbIW($jtemC(mxl5f5TmF;w z(%o7j&TWeAr?V9NMlydFW?#)G*%Zk1iJr4)hNoxjv(C4xCZ&vWo4rYlIyH%Hpa=LU z+Z$G`N*}B{bdGv{!3U(}x=`qyp<6So*+d>%N9*-zr7muKdcCzM8oA*^@(i>6Un8Dq zQ>5ogg2-?rnlqG4WzDkdPNnB;WB&lAAx-XyR*$1sNG_Grbmy8wz-Z95YVzkQ86;U2 zuE7d2Q?8OWp36Hc%Li}f&l|aLbyTx1Bm_}brS4;PhS}duojThBBEmyt9bu-OOQ_w6 z>p!$%%JD6%s*7cOiie+q>ElK&R%vLKGlK9W%_A7Kd&6a;{{X?|X(mT%rjj&)Fqq2F zPJ|_l-70J{_j=9`baU3Wm!=J&Y(}!uyK2_I8j+hMZ?<7}PK>=Jty(y?he?VtP~`lW z^EFkc(aDrV+@FeHe$e@&Nmne7IWk1#p>VKpt3^iJoig7ud-|&DsnY2`m<`ZY#lAg}BMVUX-)^U-0(&A%k-fF4Xt7U77uZu<8cn}6A?dMU1tW(`cK zQF_VAK6ep9nBR0rO2ImM)}t2z!F*bULchE@t?z(Yu7Bu_ zNQu+?A{_S0PuaF`d7hQ$&sIJ{thF7Z;3iB(NJLNw2z zj)*22MVq)Rv16GWG8KaEOm^wyEmZct(S?&q0}rvJq2A`}_YPQ&?pktIbZLJ^%@x_+3l}EC?VR%R zt@}e?A+t70&7u6mWaZ4s-e)W-f4Drlzezca#$ay@X%#CgEG}wg$fT+Lp75)*eIvAQ zFmqWg-M^YrS}_oQX6c{ZDM~$P_Okx~(`FONAIryUZ@9O5~U%R)qAq4@QgU~A!woGY(^euW$Q&xaX~rc~jN|D1RV$m* z+y4LoaS`N?QQP}%KYwSZWtm%vjNLOgI(RMI;U=D6Kzz}e7Y<rx+(`bq5G| zFv&Gji1iOVTM22Uv&Si$yggnU1z@*DCyAPh0001bWkr<1^5zkUC8k=08OVBo<`^W% zBoREoW+gIqL!?U}c!-yVkoiy<*+LUpe%_4k#ZRkq)5RrgXT!wLP`l%Uu0vP zxde=jNR(DYqlinuFLb~e0(wHZnPLHmLWb!R4Ai)sA$S3p5lclOSY;{lhtAm#ohTz} zVyhy~v_ItveqS%bAUvwZ5+|X8Q&1j$npzjWZ{+ zDB?-*kuc5F(h{qp8?sSdFh;J>RJE}RhY-TcQ7DcGRO{go3uu|TR}C|m;l;R4hh%DP zm6Ed7LcmEKN{jvyxLlgeOX78Tzu^~HltxP^sSw{y(U$n*QY?wq5TkFQNq&k|wlf0h zS-Xc4l^d5+GHNJNky^W0S%te_A~GDgwD-b3AX}wUsT(Ni{UNN@iEOipAL7MdA6~fM z9P4H8XE(Gti&beT(Mc6hD5i5Y8otA$AhJPRTr(RWe$p{+u?Vsx&KPR8B{^vo&8ayF zP7O-S=Eu3zn76(mHIL@-t7egv4Ec1Eg ztF+D=OHn(+AyTRqs%T7I>jpc65{xsHNYU-2ErXm*ot1$dnd^KWv#=`l!zkrNO~hfQ zVwp=cBy(F}`6+Cd4_{M<6!g?2KhWi=ueuV$~ki z_FJpOD3Ty%5kX?q-g;}b2(1vU)z;oF+UoB8`91O%oIK9sbI$v`U$5uWd=JYMA7_SF zm|gHJ(|xF0p@z>m?xFh5=n0zlY6;s^va49}WWArz-U=I4+YM<${s=Dzn=4#aOQKg_ zz_e!r;KGH2&`f1w!<_JcXJoPBWD}Y9v~sRDp_Mu(ruWpeoY1w?aTN+r$15qCT&!Kq zL&}_7>Gkm z?pPLPo>r>2ph2pEe>@VS@t)ViaeC&k_B_s^xv!TmO}}8Wzv~e6z>g(bf8PbSOWR>J zCf@UWHcsEtFHvHX+~(G+L;`B{j|_^*JYQmbm_ivQRN%TNq+)0Gc}`c<{dfrGGmkW9YO%xY{*gi5J_B{5WGk_t4bFwxadeeO)wg%8y=)?g=>e3>(hB(v9Agtl^DOvlMFrP#{peW zvdwNbY_&&yl`;ZlmgKUME1m_pbddDnshz9R)EeaLAlb>;NpzuA-mF_$nm6}IN%SWA zGYsH+PHIcrR5xPKbWF=p_Fu*J;)MW9eAN%qSk(URxk(hc>2)@)sJ31y$y)Pbb#5)G zOP}mfE)M8o3$-H&pHYLR6~>pAG?m&MEZZ8NaKZ3=lOK}>*N_-8_2prl{>WuMXFy6u zIokkVyi?X2jur>Yq306Y$?3atT8DviO>@1pUb%CoC3zK_D}eeyg!&%Q5Z`i6UT4>D z^8O)$`4d5NnbK#Y!w293|8n=JjQR$fb5Q^JBD+9j2d!Iu`1x| zF67fjbB9`Pf#l$Q51J)Nj$Zu1#}!vkm@;yVuUW|}w`?ryzRCJ60SKzB7S3+Z?i^Kr z%kyUcw^)V~o!=|V;NSE7x4r68L_fQnF2idgf;isQ;_^1bp%J6=&HIRcAYN`>SoT$8 zN-o8Uqyqt}&u$<8Gxpg%SbP+F*&&8)uhji*fLz=r@?k(75xiB}C7KReb zo|!;uj-k-N2{5Bs*{ll@ol1d;A-oO=noJ(AqjLdmQG-f4?z)bBhau>Hbi9warI`re zR#8h{`OIh9hSNP=FD?NP4BQS;Gxp3kIEo>3ept?*I6gY0%BuYA|`S>=I@ zZCAuRM?I&lzfeK;xewXCgipPk{l?KIidq{Fjm}0^gz~&i?)zA26-HR+=ox*w%d4;N zd`0-i$rCZBL}dGHq@CUFHmzanW0s`I++%d{=Ypb%y?It8YzjD5^*`SmBOg!Bt;eT9 z!!=$p{V&tM^(~WtF9r<_q{FiPY}8)~6p!Tc9CS;}hNalLUiB?f)Rx!IMu>WIc+H4% zRyW^1-)QD6&H~I%1_V=j3M{M4f|n{I^7T2ukCm9!oWY|H-n@ulPDK{I$tp>gX{y!p zl(Bb7?1Qpi+P*3t(FiN}-XlZYdTSGB@n+0=!Li4B2R1czWCsQFt!aF_=dIx%6!f(H zB!~HjHCggnelp%WpI{&Q>X5b>wB<($^9`1NLILBwg&Z!@2oXQb6@OThXhzSO^VCFo6ZL*)F~oq7Gu~^r$=xTm~#9+L|PS<=GS}^wl3O!{5c2NFPNqU zFumJc59v3bvi{$Xu&Ms^h)cNk(s@|judUaMoe_y-{Z(R8>6>HWqSh)9OSl-6bYdG; zuXJDCcESZ=rUWL@Cib#S?YR`|&DAN{<#WpI?t1UKwf$9JJE~^eyWJ0v7fVVmZE-H< zfooD^NWC)8BM!GcJt8VSecE9|la~#npoJkNie_}aGJ?{i@Sz|`ERKcOK11V&UHOG)D%+bfEG^@2ts#1(uo zDzLsEm&4qf{%NCAteC}EKF_#0aNu>7ZbH;6x3#F$FJ`8lUlU0Cle3vRs?u7&^psNn zPoh>p_54AKxqqL4)N@&mM}lkOg1(wbK@#2p?hfxXYO~y@&&jjqtZt0thRb`Slotr$F@W5yg(V1?XnQ&3U`Qs3ws-#!

?9WFS`HTBDMpJQln{0ewb3xy)x>Pv*h@JouUEMmx=) zMK2*w*J8EDfSR}5+!&e@D_80z%(}<{U%?fCgX@w9ey66m@UOS((in*HvOo_n`a%Xj zR!T-SQN2G|5sMUCRr7mL<1=|*R3N6f#pHuQ%#fNfExejN6^P~+lQb<79Gx%0L`CJr z(jxk@Xv|6}fX~Nkm;#`#M#`>{sGR zApPUhO0)lC=)C{gT>m)Sb2_!EwYRoNh*^8nA_$2Q2@`{AE+wZYT>=7hZNyMgN z)oN>&2r5R6;!t~*qKZ0Sf5P*_eLt`J^Lf9oYg9KRo$UMgYv9DqJ0(lwW`YH2@f0t~ zj3AtFZ*b^!DeXmm!w)Ad=_9M&`wVivTf!5>~AbTBnD?!Xj85`Fo(^qu+Wc8FzAH(Dqyd~)RhF{%&Z#+-H(@Nk{g$+t$ zmE3~OKDYL_aC2NO=8q8FZ}p73rXwRPuOC$W_*(nmB)TnmVc;lj2G!l=kW?bG19PAMGyj z8+-_E&CgJ8w6Ad8c7BXLhZ*ho>t26e{LisH+M#6I*tOO^1$egZ^N$WK zupae#?}m7V<_sP6KuXdXK%ZikB>q|1p37!%tkeFPa>7{7^ygrK+vtA7;xEg<4)^*roqQAWAxyZ4;s|7qG zYZ)@=-}2}cw1+Aa@F69OW5OaN*qftNi6u!j>SZVOd%TGELjUCAhzTB7KV#a!qgHJ0 zjyXNWY$^1xl}*1vrwB+4txWra2J&6Uw)ZBJ-)z=1owEy!`Fucp8RguL1OS=u(L)n{M(C zSzyP#MSt)V9c;|oc-k`;^Z@02-`R&BHlz24$iQ?Mn~T)SqX(vUkb*pnpGu3(n)rqG zcH|Ryb=#L38WC(=(j3e^uJLG030aoOc!sh<(sm$CTaRt_cYyMcOU90wo^e|UMQSnkHA$gg^) z57A_+)=)yaM{uO(J(3e5aS@u^u$@EQUwhKV{|Z@#ysTja96CyesHOeg=WBSDIC~F5^s>`wwhT z!5nhfv89mg%Tca;^IfTi>^7?qSD9z+PxFaVlO0C+GqSjA#h6Gcev`XGqNn%KtMz&1 zoD^ItZnx}Tuq=B{c@7nB+NV;!$7Vn59X|GJH{Sz>Suvdl75QTg{X+GfeHumkJSr)- z-yPT7LnwvX(447k<6~X-oo*t$r>`RK!_q2A+?ld@Pv@Y_vs^KvX%51MPlk4`5^q<$ zZ!7A`>H95njRBPCmH$>bVWvzp-&O$u_>om`@;9)`2~&|;+%PiFLUYW#s#08^kjbTH zH{!<3O@CIhI%ISZ1B$Za_OwqTiCSHh+dlLtH+A6V-tKV1%YRGVe4%Z}{65Cofa0C@ z?z7kWU9HU zywN;srFiL6VcEI2trL}^cBYFK#)SrM*%p?@QD8I2eKrv*1yte<4SkY|wxdR3pTmgvX(NL8u}cKTkKf@MI>X@ z*KdN&>VPE{9%hfb*yo`MVulR3Cm9NU6#|X7%@eM~O<^&$kNtqXkAB_&(7Qx>>M~7X zYL1h@|Aj*MidkFyJvrk{#B{GB%VcqsdR8Q~EVW(Gu=d?(+2J^V_u4e*mYOqSJ5vY7 zLJ*rOqmU8jVAfk(Yvm?WqM81J-x|`>Bgg5APA;stBkpW%hE;H_)U&ndNpclyjzOnB zQ##xf^VYaBr}0Z1i8djU+RI|#G?9wCRWpQ2d&EjL_q$nG8i{8&SZeBJ;dnGD&EUyA zIJa{H^)@I88wA^p;r8FM)lb;DnR6gQ#)C+Gw~*@6xLc~ub{R+mZ{7Fh3fl8aMa?i) zPL-(2hyV1xsw$Gp{U5YP@Hf@aP~@9&nHUz%*RE}C_?*h4lJGQXntANi9N-SB?0zii zsQe)ob7_zeK|ft=#SLa&&wHo;SqcvYH1roOwL|2~K#_EtJ}EQ&j~eyCzZ5ba;}^$- z;KF8dqGq?j2b|HWbMK<6ifzKcT5mG6Qe^&o!nt~9>?~!{t_h@`>=Th1C}^B6^HT0kn0(~3 za!r--v+n$%jwH4B;Z2qi0{;K@7URS?61^a-TIgzx&8vz{bCAI2QU1#1mdUc@Z}?2* z9<+w2`(K?OJGaCZkV=Qm*wBxG4w{1Z!;nqQ5R{nm6yY;?V%>M`IDKfHimcX(n1M&W zA+mSnxeEB@ZRkzTD4aiXUIo>QN3KQK$PsrlyDn@UNldq+a%~6!(*q-Mm+5h{jx;A} zN>XWZc2E8KfHNZ{O|T$_L#cjRbU8~viP^TYWK_v>W^^pJD9Sse(6afrOp~FdRsrqS zv7e0a(EdP74R^1~%TYSFM1HmkT2e|jo>vpV|8^^$zW~g}I2s8{%yL|OV=MDg+1VB{ z6GmBkywlye{oTyjh*hq%Ezm1O)9j%)j+w?OYdlbV`|gEYR&C_0m0@vKo@xvlI^lwD zbgV$X-{7+JW)|)pYs82&xr8}IJ>ln^|#-niJ+2hw+&kRfzl8>2bM^-@bCUYaXrkGzSTx6!l!X^ zs^eVxbYw3758sAPfzE_i`6zvXoQ*#Rav2S2ih72$3X2d{Rv?D&>^k47+32gMDg^cC zq*Y&OH^-ICtv9MpZw=&8#K9Z7N97*($a?!8RY^{aQ^^grVIQE%N;D>s;8!oTBo@bp z99_yQ6~(`mbB;bt@bG?FV5^M_>Df%^o>iLWsKo>;hOaTu@`c$Swbq+~wKp+RCq!pJ znc#pROQJIsy}^OXAJbjMRzRt_q>{L7qv75l{x5iU;8lftXT?PYxmDP*%8DWdNlYy- zqU7dCS>t=gDiL3m?zWF9C9G(Da)gmMdO^!EFF&6qbl69OeA!t zctzHrw5&dxR}m0c_7oP@j{{J(+op88 zYV0Q)lAUK9z794E(o2E76a{2m&&Z-c@YUCgRKhdAxOpjF;3=!zcR8$$B$m((GZ7bI zUWF2r%0jy=?rY|zbK{@o!V0X6X1w`p%oMT|ElXyt#blWTrYG=zp0TP&QoO!JbMjiY zisc{cWq+HE{}xGxI{xV#-A*ouP%X+)th4xE6>3Fx)eQmvb^Y6CL#o1vWF6~G_rkap z|Fr8Aoyym&H}+M)5sA`EN`|tfZvw{*aAh3;TUL3MfnAG$I|IgXMlOSIR0>pcRc)rQ zd;<=azb+H>$-H_;*KbdLdWbaYPEdee5+f}H73fVF`S(Ab%6pZrA@WE?uQnZDH#M0o z3V!_dlJiqtx*Opsrc^ILDyu9v+ofzg=kw!v=%u3_zAYi-km=~0H3l(Z3(aj)lSpe3 zLn`!ajcHADHvz_U-c+dPK)pucwY?rxLK>xFR3idAPCBF8vy#u*eFz3w=|FQo(_54l z2e$FYEF<%xBXYP6;TV|yak@pllOIt!+w}EE(*z&GdF^uA?i89^PRZG{zc?PQWCK6r ze)!`<8s;(%C;mBVLXdscM-Ttm}$XV;nZiolP=So zda{$T0mUy=m!~Wu-G;8;F&5(PDp9cOw@*`vSon10yoNU8(@}J3B`G1+|Gb4s3U{8- z<|loliOoyf0L6;Y%AeGsuO_T}*A<&b(hTNrjXq1zz)cYv}0+Oc`Q;1s7nz3i9{`M7sm6>3>dzp6*i+5oQ7 zjUFc)3{94WN!CPRbb<1nY;~^{p~b66;_utw@=AHu?L1q1!4{|R>G@R+i9o}yiXAa5 zBBBIBsdzPTL&|T=SD!YQucG_mh31|I+D z5hb^O=B0>CiRcd5RdY*axFjn&Xv{=5zGi``Hq>|JkKA0TL^p1I*n5%Zwea&rVe{Hq zu7f4vsTv;5a=C0uI9UH@R7^5nQ)YqmX)mMLAH4gaM0m}B@QkiAChoz%NvG0^gsT~$ zfB*8>JL^1#RVNjjT;!->o>G8QEWm=KJ+rgr*N6yT6|<`oeT3_ZW{#_#N)Y*=Or|trLDifQ9LT!aEn=?z&c^RR zNxe`4XP)r{a;r_R)fhLF7*8`Fms~-E4DH}74$3cO{pOKoE)y@TM&fKmWan4M}{PtDaY%Ri+z{N8a7J z_IB?Q!B`bC3KC5kJ?nGz`GHLz<3V1XAoxHZIMFpNkc zHRZ)`y|Q#0C!D2#snt9FYQ3}3-4|K=PLec2eu8yRaF2G+YHZLEY_fc)DlCZMp#5)J%IK#@=_+oAOk(`&==o+rXFvIjW*C&*yXDTz?^ZA}J*H^r zM~V*+xh+s_&(_j0(^v8$-w2Y|%W;H1=GA>Eg!R2Q9jK|AI9J!!+sAXpUJT=yDX+`n z7%Nea@H*ky+r8^uRmUSXYTYoPn(-JSn^kikcW$hDmJMJ;d~`S~$@Y-zP3f&qcs|Kwo$w4wK1Ov- z0Y$LCV&pXTOaucoGK19XH0T1UUK!PBKZhS}eNP?pdhc7gUCe9@Q7~@%hshR2tzSL4 zdWm!ViJSFwB1uFJ=m8$M`4eI<~J%LY4;pBr2#Pg-N^*8uFabZ4gvFRc+@ zUHd{yr)l7t(jicjlOzH-t< zWz{EPX=sl{Hky07Eey*Fa#EVwU>5GUMrXH(Ic5EQigC#oHOn_Ku#n9z3j&#S-r2cX zhExi@JJ3D1bBiWhQ}ixVbc0?Fwa*v6)1~dlJI~AsH(AW6soDwNPWwK|E>n5I{M=hh{PnB}Q?CoFRoMDoR}c_DvH;5|4<5hcVtT ztt2T&WWnfRX#z^_)p8(_YtZl}az9DhFzd}QVx1QPw??mM{Gs&E~GY=3R9ox9o>Cpo*lfZ;ER97K2-$;9IWc zK~DaCpH&GBpAi!dYr6>>x@pKUXeAi|+Rpq$YQOl?>my#&lh@xs`SUk_D@*VyVtQ0{ z)ztRgXjV2)Q&)&ey;p{13=6P078)EZX(CxI%;V@X?B~(dE#D~h*hXcGW3X}}$Jm?k z+c}Oei2n{((#I}qG?DneFHYcOzxVY;Q0H&R<)YX4H~=;zd-*<7q67h z0>t8zCMD|H?MceEH3SZOH%T_E{j=4KOY8vLy}XJLUuEw1AVu_hf%>}{R0uO6J0@og zHS#74XCIZ!-%zjngxq5e(BEb2HWB~Qn~#bt$sKgLqaf{INd;Nejo!sI`h3g-_6td7 z1JS%jYP!Lhn7jZcDB+kKf!_94?Uc z+9ae0qi-oS;6yh$+B)ujx0V#kplS+^3cU}RQhC>#0MYN9){eGWeM;@AZoL7o>WZ~> z9@du8#<<^=ar@F@0H-^k6h_DEXnS2X3pBgj<$-G6hq>-`rM?-Q zU9bXAlgs?}vX{m7HuuWM?0yb0UpfkqGz}KwawfkN7H-`w`!Vnirv8!p$ugq5G}L_m zrL;k`T&|8n5RSt1La=PdHk;vm`f6LQD6~)0A1IS@e`RFlY+A+P6ngtKq;6f|tC_D# zE?YYoBW3nfUuNT)el_%k+Oul;UM+1qM>aA)#*%@H-0NvypDDlUSjY3<6-D^BH-C!g zq}hdKquQ~bD&P54Xy}Ji$$==(jEGVO_>=dq-MUm~T$?f?MMtx+_BC}Wsk=bYk|*m2 zTLx3r3So(#`KL!>U>K?&hs!2Xg1~(}pACCVD*`ueN-8a?Y-Y8=jvmfQ@<9gmhlk_f z7yTN(B-t&C#H`N)>E}O7_+EXY4^?|-WvD%xL$6{l4N?;~rCWtQY}|8L$!wM^eHsu< z!*7~?SZ}hcUA2~P(O;(K8^LN>%8pwH$6xalMrCdq9fP9@o#?PpHecCh$amKBWGe&} z2$f%R+Me}(3E7KARoQd&s)Jwk55C_}!`PIcFMt~5u4_6}k?Z5iE-E=SjaDx1erwYo z5oXE=eqpA7mjF}CJxI|a#ZqgEsK%m(q}3XZZl4qupL_9UZ`54r0LukV?M}4Crf@O{ zdvqO3TwkPSWLltrHfSowd#bg|M}&S+ z%~EcZ?WW|3*HE*iu|RmT45%r1a!lcQf{~h}2gT5VTfZhLn@$xjlBCbvfUvt}xi<-B zF8kDBb^lyW^pr8+&~QB`OI92~uB%3e>W&C(OWAtv}T| za7D(zz`Rz+mzOub2*iI9S(o(aZEg=e&GA`ojkg|6fGRm%VL+6aQ|6S>{2;&TN0p*pI?#9toH1U$vIgqjGqx`fqC%%E= ziDGQwJdNkvYyAQ}m42L1T5+r?XQenNL zG{=|!jE0e{9b9u!@^iBI_S6y6EiNeB3&Ya8o%$Vw8T1R;b6)NFF=3y5B3=?OZO!44 zVF=Hz(0aDL{H!gLNn3SrdXMo>emx69U91ffRx-3I)kw!_rSB%&N;ISG^3j?0)+!Lm zyt>w${RsITCbT#N{-tLFomL{~jl`0@wA;+9=EP4H)Hf2-Et$j1J&O{>|Ua>Kw zx8JqMLaqMddYk@F46v3L^txdXWO{l6=J2f*O=YePo|x(v4YO-)JEWE84*cKn2r8qxS~maT2lE!M z*Q~$ZIQd!sf%*@0+&#mGC$J0WWeX*iSDGX;6}S5TGAK?!^al=^SUJSk9S?*>LfE5M zK#Aq$GK^^uyZdzko*aP|MisMN*USPq?^fLG5v@_>6k%VM)@x@v zeAW;z%Vv=PWy*-D+mT69rDXXiv*ipwKvDoEc@>69m@rid03_$%_!S$W$ze5)d@b-3 zYJBMi>dq>*s=py$?=o7#T?s8=UJl?lwl`dTG`_n?2c^~@Qv<;YE6Z=jvnOap+_kn3 zyzE$Y%?Ij*#Adz;FWb;Ber&pX}<;k{i(j3GuU&F$QHV z9ypiBLBo;u?`;b@NTAE9P^AIMD_sxNWATy;lb$WL>RX*(^g<@M1~e|VY_dz|b{$*S z^U|6)63M4~_XiO2#9jr&Su}a%HZUy~f8_kFUH0m)7tU4eX@O@9;BmavKLMU%36`xg zbvGgKvLP?IefSPMb0O3iPrxxaH@x_!_S!D1}#+pd4 z+fC)&b3*PcHqkQ^LwENjLu$rn=r*z$6yq;B8-Uy$PH)Y_;6KCCqjeMbFCD2_Rl7EO z);Xjs@q^|{4WTMk`gy_gwscB58j@bddr_Mu_V&>E@>A)8JeB?h74Et*iyX$Q;!X~k zD+VP)y)Y-2yr%4aQXQxA)@76DCILscEyZ7$5YI5t_)zvtyw(gW587J<#ydHv&l;V3 z@iLHAYhHQJwZR-iNh=5KeYH{voN+b}Dwmgh`GFa2U%6~%LbB}ncjJK()17E?BKERW zPf{)v#=jcSRl)sl%sgETBGEc*kfFr;rk=I>OqhSvy{cCUL8@)QXOtPBpZy+l%w1Xm zsa;!Qqqb6}S4Ja-<-|vi35lOC2k6@w!H0BL1E=w4Et4_c+cW5>5S}Nvf$5UZ<%3Z4 zA0qzggx$=F4PR1*hq;7#b{vZNS2Pk#?4b|!qJucnAbPhojDj;Z?5_?po+`LoC5SG8 z$xYZ}10AEdz@a@??u}aTR)C{Lh;kzV1ExsFIgTd?RRu`)LLiypNbOd$&(T$x9fZ%% zTC0+?K-LKODI!HvmOfEmxbbMI^+~$At7tYi4Ezrdu)@83UaV(7PpHR=-dkV*Z2#|y z^v+t{L=1j&revGq9l73~G4LX0P4VE1G1cGP@HMN+Nz`^L|N5v{J8&jI;gD|#skBX3 zNC{k~2RxRJTxN}r?9mW=)}YeEU68ROe)NN9{Wy>kqhwKlxcKo)tNDReg3QHo`-f}6 z`E2s8KtxRfChnlUq4jx1!x>q5n%b(qK7eO*Ilir@&8t#3MQ*hB!f3L(yW7amPEFpr z@E-4p1-9*35R?VD@r zuJrli87~vn6f>0tVOLy0T9~YEN*=p#w$a}OEXUFD=Fxz=jQ^}3GqJ0@lh`r8_HHw~ zCe2^j=uxa-Sh0$F1$qVY^LO;Lm~2(ZCfV^;=8AxBub%DfZ=PP;Pz5AExAwF9jpaGI z`7;bWlx6Zzsf3xy+U1H|IUjQ9_x6Q|*bCXZ4DPw|!n_@np+JSJi+^p1qG9L@jiR(V zTLG`vu`Go%{QM#=^Oc72a?fj2Z`RbNm-Vt)4Iljc_1~52SuE&-v!AMMcBzVrX!M9T z7r)?nOS1O3+|O5;stTYCvmw$mIH=1}GX6}EGPK^>ukQbW=)8=r_$t`n_6$mN#-%>X zBlV}#26F`q8F+*dRDh$=?!e%!4=!j=dIs1ELeBi--ZCL=k=N2PuCyIJpbCZXO`>20 zO{`0t=jrC1>l3DJ!S-DJyQ4Vep7Lrp))~$NhHp)Fh$$RVr$sRcSrt<@x9Iuu)dgUa zy?LRNyL>et*yCCyH>yC+0lb07w|6}mKh;=_q`N|XcSMiU=Em|LoU@w^0&ac64&4fp zDJQkuwl@eiA1>KFO7h!s&L#GK%@F-z0@aW&DM=Eq7c=_V5UyZG+)VtiVH+{)$iO*o#B!^O;m z%kNb41`F28PfLC2eZo+@V1IPyzl-bv&1@x4UuaL;Rjal|T~gUx)KU7iB3UYCKcAyY z3Umj=ZDhGtmpC?$5Rp&S1tuH1xzGi^_FzPZZ_OQ9eDiTwMfo~~tRLfwlb&0; zMlS!(vU=@ifd&}l23|b3WqS|#LAYd86?U0x1EwC%a=T}e|29V99Uf*o$jdIMO1ulm zQKjX0Q(1mHHtF{9^r<+w$YzDfiN{(71Y{_3gO}pq9&Lgj4A67$t@5a6n3U)gF%W*7& zq8_2|?{#V;q5j@1uDiqy+R5Uz8EczcMKaDHJ4%`LDu#zXrzVJ$bZ1Lwpibnsi^pJU z4SCHv<+#VTV7>=2LZH;bc6H)oP3`RZI8E#YqqS!Cr#lWx;>LA9$=hbCv5R8vE@yoL zN}O?&GUE7RL-TU@rmIkpN9kJNv4{nM&b1e$g@|FxF4^63bX6Fh#iJ#>n5%Mb% zfN4pyR83B1`XwuJU%`05ixA6Ll3g9Zi~WM zAGt3LYrZ~opdWsP%{PoxPUCOsv1}-M@gc6#dqg}Ujm)n+y~XWn zSp5KIrIbV3@9uG562JcXf0&uW@=Th@o{`kM<1AMR6Gh4#K2zpTXL;T7P6H>1J*owkof9I5fq8VdIq&Xf)~V50OF7GThY{ zEwN@yX|39J;T3lSZGLR~QJ8x=9NLm#~7ti z+<8+d^NYUBCbPu(vUM9;@6YyUn0!kKdm%YjgIgXfcV51BP0{|{qjz-8T(a?pM^4V7 zMO_$+7fB}5{E%ItmDyIefKA}{-oaEgmu;ejdG=s)_-1zg82zdI!m7AOL*(yEbG;0H zK=p}+V~}Zsg@@g8Y%lDplI(|#Bt6r@C?5Yp!-NzP@a`oQeA7RZ5)LTy$PV8eJTaRY z1FuF4p163%SkChV)IVD3uUg<|Glo}YV2f-LDoJ!V0*GJtJ5T-2`%8qy~io*Mq-9GBp1GciXlh%5;d|DuVcwkmZWlNFw z+SZ@cU;h)XY*+8BD!)D1Jh!~Yg{GNpm0XNJb`E^!R4`&Q9Xho2*tymo z*V5GM41fOKx%;lk?9G#!0=6^F%AXk_B;puB(8!gMPC(9*-)yDesdpU9=Ct!N8tQ8h~@jO`fb&Z0yQ^eOHwv3dO z*FZ?OI3V#K#Nu~$V3%CCgR&u^{wPoIYLdWo?voX;rP=m?JPlsR9Wa(-MQsRkEwN~| zny$j7p%vZA>xs6mG6^$}yIK5`EQTikyYla-viQZ{gxLfwL0wXSMwYyJ6SyEXvc|H6 z7r01%pST|xSAJ05Di*_)FO6>TC%EF==5EMN4ya)g9VI#ew<}^R+wC@V&+cb;!hDc| zl!HdIedAPTL@s})+UGqcFLfK#k^)-9@+>UZb7AA= z?Mx$m*ul-+FV7}G@$+K-*>ZAhxEFeV4^s0`xB@MAm)QXV=)2j!|L!>7&Z;5C@a9Jk z^XAn(tBJmH$^aG~DXdZ^d7&r(DBzjhV`}Y#L zf1Y+cV$yL#`X9LT&WY75j524Lgt5AN^C$WMGub9?wJ`w6c6C99+pD#si<|+!R~lpk zr(Go2F;TG?POFu-7yZz#NgCQX$X^y5c<1|bSl&~@?1qOiHNC7FL~3M5n)idURDa>+ zS8T`f3>zMh$^ngev;>kOEjy>W%GseR=P--lftZgQmHYCi-NLK#cT?)B)c&2P{R6Eq zchPohs6~)BiXL!WA(jB<)VL+)v2nlT58%*OD=XhsF}`)}@}z>Vd;Ce0v64x$eevIw zfe;DL*_DgisJ=LFiBCJTl*=ZOl^*ea z1Z)lWlgpEb_pP6XH&r;|+|&JQs+M=m=XnQqGb&zJ$<hFZ^^ z_hJ>Sa#1~_6h_;CEq(5(i zAs(x8#~t434U8uLUGa8A7@cXS?RB>xE2Sg*6An|p3P;vFhwFBXC4?vq9>}%ZfBh+K z>t;w3cs@NUVOxNy%pxIurNIi=65FLrFTmt0D_W&kW{0q+w2jA0W~^P1S2bIExdz2+ zy24IjKt*egRMg#H-Nj)T=rjaiC?+D^CiaaTmzCULwbb}5mo~a41fm)}4>aM(?Ja*C zy6M3CDB4IS7A5$S$k(Z-)o19l{`sds_6kqVb3TW)uyiG7@6}{YvBy6{6hvS`Upmow zTxZ;tC`Rc9n4`-nw3%`F;L<(5s&#AVqo&_s$PXL0#`@@0#Z=lBMDKD+CCw5w+LL9l z-sqaoPIP^9NR&{>YYGUvy;9Os-8oaf!{)#k(Z~O~gdTs1dF2--O=VsV!Zzsky5q@D z99Nm6cSRc}Ls|y@GL*L7OucH=sq)0Y@e9} zG-)^cwGddM z`DV&gXD&~h?02Vj1MBKv=zL0v5!jHb7-KV++rL9PAez3#2fwl7P8Nx-B3C4elU2+) zw40pKZ;1ROQq~2(&+qT?$_ACdYd=GqH8cno55SraTi>V}lEOa^*>_rcV2jO|0sfN|Bz@B8sOvzHpDkLC{^g|UWO#*t{sKA zdK8Pfs9bCC@Q14QV={glo?I?LNTBqDvQGX7#w^+&H>6mNYuhC*Ska2r6&T03v=83y z_}jkId>zGeuP$fVKEpQuU2$ANb-{+4TFVhn7DllVzVAWy1EhKe?sVZc3qf{%q0}5b z=$|xh?Bra}R}`8y04Ou>vizO&>*{)`4~Lm{@S=nJVZ1WO}-#zb1{DPDJUXwECYP`V;8Ju86b_x4r`?tmr4x&vgSZwTa zaBYIeViTChaD>kNfr(i_#M5j=jKUPKPPNo|XhKxNH2vS@N3gwH#w)u95hhgD-E2ug z+20($lFn~C7SB+zV#RYATnaMjxM^&9Z?(YjJAW>8iDWg;X)nVZ(+SrbQ!J|}?!lv6 zT9UX|a$L7feE`+GbT}CS`)xw^`-Lauj9IEuE#{gA1?lFpg!S z=+8HcH|s63+}~a&TRflgpmI(Mm}=+ERLd9s(zBW}HpRSiX#=~=Ugj1~0$g&Sn5u6d zy%t$o+XCqb?F*V{?F8Ps-5PJ5{x)F-T4XV<4ud@X=P7%DuVcB9YGu^9J6y$} zWBVgTZ0H$xn_nV{?lE7R0htg!6Wm$u6lN0?udH0#-Di-xU!seE7}pd@-<8F}#cZeC z^$^40%;Rk3k@Dgf$}4cb(p*#XlW2j0e_A83WCYm z5k))h3W1JP3bLmQh6(m^8T|^ejB$?bC*_IGgA0`n0Mu3a1}jfB-{^hWpm3@nA^|FU zZEcK~+07aR2p>{cNIcTcujr9^6+jm)N&E2hEZd)KP<#egF`S;g8DHg8G$m7y5xBu ziI{|LfWjHAKW+}i>HC=XJj7$}snmYI)#wGjfU$cDG+`RKFt5ZFj5d=IM!XhQ(TYI- zn1*raqK)eF3*URu*H)p}uM7$udBt@@L~w!PyP`2o&V)rCHi>Z<(7q*AK?-s+ehFv% zZdxYx@6op%#OL(`U}E4zT|bWTi;OBUxc-KhONwy%7W5)Mb98GwDXvW^ndS%#2&T}* z38*Xr%h!;X#)J%|Bt}QpTYXB*F@AGJ)!ZUJN9NfpP>;XbAe>@pER{=}GZr;<;i% zw>55zPPST31K9d?O>B|jx+K5F$rX=xItZE4W~;kL_0y;p7L~TUm1jETGxz$buUJE31Cu7rds-BPhL+^i z^`T97oyXteOy)o8^Q*X2q+NjNfdXkiKbDI7Ui>cqO}WsXT3DxQ<`zi=ws!bY9Ya3T z1PU?Zr=}z23d%I@+&|nm!tAUT?57F6Rl}{XZ{}1#K#xLYlHN{lihhNKcjY-1iaOSK z2_sCqr#chM7JIToWA~z8il5)Rh3A#=%G`dB!11=}|91uI@Ka?Lm7C1)qV}iGrpdp> z@9HbBKHFiN8I?mrXFTc@;2oQ^aHC#>1$MZue%FZJhCnaPg~wQahatVx13|@7Hpiju z>ZqH_I#0{3e=p6%X71$WXZzSCtGY_Rs~b8aet=1?w2vw5?E8p(^Xsy*P;Q|b#npq0fl(P+QNcmi3?6j~9e*i~sOFX;RbP@w)? ziYd{S5p|;@M&vzNiIVm)(Fn=W{&l>|XN_}t1W!k7IHm^uRu+2!SNb{An-H_wlgdYsu-P1-PY;VI8kq`EGoe;HOgyKEfa z*Lcuz)=lTA@yazarF>wL@2&8WORX4t+SZ*BkL~FyoyhL?Q68#^`?;nE0MJ~_?>tfi zE7;3~wh9Y+;#CoqCs+-DaFAsEahhIbbA?wcdm%z4x!{3wSgx@xPsz`PAEkOy_bC?d zYLoX+Au>o7I(*#Yg#uT%cTtBLWXFa^kB|7;l@-&*_64tGg{KyWc~my$bf?@^F5w7v ztQl<~cJR}ECqpd;K-g^R^BAT4_S}Zh0V1CgL}`;&jAxV`S}VBzit-bWm0f1rX8Y#g z+`v=-yZ@+v-d@OWf|=^lZH9hhQ7T|4RVZg$$>u2t4%gvG=fYt(oNgLcFN!dtvm9nj zV?dWN4@qK}{1Jo30}ip*nRExlmO*-HqacEOQ`N^!wVI{MwG=)&^rh`dO*`Kf+-W~5 z80x_PU1fZ36ZAn1c=6Au%!eO%`QXVQsqyK_e`q*o(=`$Ty4IU*KsN7jVR~mSV=e|B ziS_DObOeu7y{I;mpUPRQ6pPh~8X56@tP@1rFS0FXeT6BZi!DjmR`7AS1PVgAr0(DtE zR@TR}2S~5GlRz(%8ZyjBNV{X=nQY(!=YB7Izf(AWTHm{sH)1oAzZb?gtnd>`-U1bN z-SVmLo@{)u85e$C8{mV28!Vdxv@sZ!#@kN6pvEh8wBP+iG&2#2qkPjedX zDHdK;o0a;=dPnO^P!9d?3YErfvc#m=1bcSOu*=$EIs0({u`$YrFqCHOHJ%s964-p} z+u(zN)-Fl0Tt(=dMeSpn>8a!gjl@%Uy0dOR*hW5{S_t^HD^a3ABl;4JxTS&2UJ0cy z!(df4-+3s%>iLZQh^rDiSC!lhXB5-P*jQvu8Nsz|{FgTH=Bwb9lQR`>J(=)^#A*QN zb_uBB6K(c`N@nMlz=Ou)=#pH_;iIPJ*XDQ0o}kACsJ{$Vu4)g%R*o5>KJ#qD9P zb)UNa0$RZ0asYPcPfIGlER1vv3gvzlEie}?u=}#ZqVl)mOJZU`8ayI5>VD&y5WnxC znXBX}Wr;c|S+a)S2$Lo*M^$?0r7**d=Vka0k=wQVRatGgxv0>3fGX;~fiUx45UMWiUHRCQM&SV&S1>UByvsxcb>u&8%8dA2c}R@Ur=G9veMMRe*312rGXa!qSX z?$A^x4u0JoSj+ONsJSqc`;ov0WzA0rvfR?>N=RXN*C<6->ik`f^YUPMUT+RK)9IOX zGB^!cZ;?@-oE=F1sb?aFJfy^I!J83Z^#L-oas_+e+t`f9jFiQ#%U~iht)$&zYdKfZtr}<% znw?3ko;}S1^D~jARFE~mAQlRlL^uTCl;xV@Q9Oo$9JM{^<7oKn{_}Z`6=rs)PRU8C-nEMsG&OT*&nhhPJkqF zp!2^4p7FM`cWmUd-v0A(mx1N#7noXR0yg-6iua86nBWsIOO{sNKK3dJ3xx)i?{yd* zJ9Thc@BcDJ8L_LIY$so7b9M#hm1hm382Z2~B{*JN45}Mstg_E#Ild&wdZk6~b%1K{ zd=qYIQLIWKyH;vwdq5LDxV*s0zH#rin(Ap$s>-|M>U`aG_pt>}4+69{>Hg#L@AR?7 zt^CIgbyV1dg~*3@Nu zE28mnIFnli>g~|NmWm^`pYmLVp9#W#|E(`7nA1GD>s=|IWdaC+%2Op6LwV#SyU+a< zIgMz!;fkCSLkepudRtWo2Zj>#+#2+7hLBG~N%8}ksHNeKhXsFbGPyn%|bkbv<-y8`9fQ@rsaN10#W%=NJDl)0hCD7jZ;z8apXDnEdif^Sr?ENRjvT zx#Fpz1*oRv$I8SATz`Uj>{epUTUK@?JM^u3OuGLkdeO@fm*mK$1vj{b#Y%ZdVMB6K z5VKvx4mlTbXqo7T!ivb9y@>xIAD6Yf(l?7UQ+qhhmZc7Yau7X+M?1rm>x|Vi)uA-* zdr$E%`!dq|u%WJWBN*b(%}46JcZ8Q3kmesi z`ivV;{oG-fUVA1WK-^fITOVuYqcQAi}g2v8qa#L8tP*RoNE`43^>6 z2NO-Uwi6zw}Nfk)!ib%6gaEwM#tv)RQl7Dtu{--j{Qd=0+L8Bblfe{y(qAWU@VbTQGj~`ykILWz^J<%GjA_S8<1cs$b^cXIN#O;qbk?w&v_v=GW zkP`~LUPCV%`Yu8f>v0*6u4v`^^y<~mPE=AkvpKEi=mEdJk~7d3IsoS%z4Zxn@^J=q z^T+Xf&~K~r#XSdm$C`|_uX8CDB*sTWFbd1=bua+w^L`C~DXgBIt#a797*$O)(8T|q zHvUXN2vXcIO7B~BZbH5ot=>_vcMnE024rk%^vX(Dbu1pw8QuAmrwG129puj65Q2BK z+y^H+xplrWUaf9@S)$im^%K+f&(rS2dS_zS!w0n9X_gIo^hf3BwZVgFFRa6lAa^wl z-9$S+=r`?YihB(OpKE(`?O*5ES8c*1Nj7y7-{SYo8P^1z&|;_C?oZ->q>A~9HS!JK z+yh$j-|Dp|us+sS;xLc(PUGX8%S zxhA9ANv8)oTF>iRc55g8-S2rdLB^Qv``Bpb*7aJ+h2>>IxntEIi%GI5Q4cwULv*$nQ49G_25p7sjn6iP>^^O}o}S1ngy)^vPW_0gtkPev^3cW^+egYg}F5;@@v+Epxz@^H``(rSxo>d&XcZMi~ ze(8`mF`0_P#Q3&u>eH9P-TJSio-qT%RJO-2{R`mTa)pS_5WTwnaDo6R_CyicA zLd|_WzqP|M9y79+_--9?m#<|})D~7aR~H@}W81p$KL{OiuWx82xiz>(0oRSdb*+Zj z+)csc1W1fBt!=$HTPJqdWIkJ>9c{U2jwW_&^XG z$ZCS~=8G9ANhuvyzYGAnOs>M+Rg{?;KXjc}0NK2F90Ko)WNAb#V2e z`PXb-MoWer`-c~&?_!xUC-+^O#w@hJK6%6WLEyjL@@$Ju04h!E0l*4eWnzpDaUnOI zdv`P0tTBYw3olQkcfm+p-XU-2DOLn+y-eQO$tSZ&+M9PbIbjh@MsW?UQWPaJt z1&@i$y7vpKsZ&KQzfF@1IUdL&s>;;tU6^M!=l7R)yG6bJD9O;ccbEg1udGf)NzWt7 z^5EmgelfKjb6-JkR)u6(bnOPCakaaMn zf3`wWv+hG*={)q&%&p9vS|Y@*F;8=HrqM3zr%4X}NQ<4b(*((C>8(amz^udBtT!4Q zXgIyH`EBl^u$fbRL%yLpsSJkzM7A&}+@AiNQ~HB}b^#QDZ+22%o;7 zkkwj;%|B7V62GmX3KZzDKdX4cBoN6KF6^qBrWhR__miab zyw_|*gt6Gq3y-(O;$<$Gcc|Wz%3;BFpRCGNTRpipX@bWaD)-y#yg;j?YwFrF5lse6@`{{UsSARqG~mPFYJPO|dh z<}8aYRPeq>Km&jWML)Q|xrq62GS|8V$Bg3xrYhJYQI)WUz4R2t!LQ%x{_8>+p=6gzOXnxn8S?ZMg(B-1N$<|a{}91atl(@-@; z$yx_gR$7?-c_ifj-=#?prSCjijYC!kzeAV=;_F9)t)Fm%cN}d&o6Q=F6$w4KFzKRCNtCs zeOp%PHHO#uYi$-mF9!%vx%%!G)YJ-xdW#1&3M3~XIEx{QqR*pS17=fNc?Ybb2PykE zx2PM@riZkjqjKu;_uW3XT6+-u4~o)mD$KTYWTp|C4@d! zkl*%&$Z%DXxW34bjRUNp4oNl;Ey^~l@|gDCZ7M}+6%XCGDH1MN0U!iQ>7tTYDs-B{aZ)i=IHekh|(dd~S8HseIk8R|yS@@KTGz~p%$LK_maEBw9Nc@1fTDykOm1WJdj7WCoa+!0ikaT{%y&9rX2Xk zurf_rjn`qlNzF>->Dhg%47avO6$9Gy^LejGb<;CnFF_z6r?fS%;K4Vd8iXzJgGV6O z&J&4Otn#4s@WpG!#LR}=VX!)~rDab^%FITeOH24~c$-v{V0t4{kED1$uTg)ojK8JI z7HyVATyy$!{uA1Sr48iP$(l;t`lSIUjtFtT9kl;!V{(DpiGN(?FHb}!hPs^Je@zlL zZ??)QI+c#t$Ghk$s7K(Yp8t>N>B0X&f6>iL>;`=nZ>~V}kgN2SrM*Rd-`9{QitNk> zmcUS5_g9DkYo7)omTJ(Gnu$T6bVFB1sBy!M9FrP7f~vgfCKV}1&7@{7?wv_yk9>TS zv$C_RIa=i_j9oPNu%Gjcn?Aoomeye#;ak=*6;u$R< z93tx#^X>MOQZ{_-i!vT~&nob8t-GvW|8Ew10yYSY=gQ4Ne)ib8mRVdKDW%_mA0v+R z!R5|hb(A0CYF~}NzBLQUP$LcIzWpbK{ITq`wQwzrm(mQRFnKk;kQ$Dt+ACn8mKFu{ zIF$9Jp1t^zQ_rvY90*Qs|HHhdxJ7-^XOfvdID2suD{P#cVeRkbLQ)$l2>195Nq#QF z0iMXS5DIT(gYk~D^-+$M)A+J@-smM-qRz)d({w8R9r_f)M3SqDdJXIdQ(&DO3IM4V zFU__$kYT{JXY!VI^K+yHJ?Af2c+V z&CEmHcU{N@S%-qvS8$ar#Tnj?J?#0lSQROPjyS>9oqYN7?{E7Zh0>C}1f?c=c_+K( z1U$Yvw4IvOn)u_R0l%@!%f6Ev-ij$?L{f1J(QK8CB(-ZK;V)EBZ5;c=QU2u_S?1Br zn{LkyU;BS|;w05ahyS_$I|kF_cZrw>qRA<@xp*nrzqK);CTr+Gj5v!UW8UXkZgCKI~GS%r;bz6v@<3CBaj zEdO2d2$0NctD8X-uG`GvJm$8q?R`Z~rP06Oo8;mEr*2f5}$g)f1%l2GeL`fQ9 zqCqpTvaTJgb1YNAH6j%c80Ho)F`ocQm2O>Id^5##MTojBW_HnHnr5Lz?lf1QF16;B z;H&}{hVJDmbiEBLoE%PgVu|DX{Ph{Yg4cjwB8b}9h|DtCZJOr}N48tuO{#hHT4<(0 zJucU-9?JOnUMT6#kpZl`Gj+2mIZczMf_Y_UYw&Srj;7lbSP#&J_d?Hhbtoe|ngHK@_nX^ZJEw1ezA_O4m7T?wA@PTKZxY zUX*8$>e221UvnWGX}r|+p%e$E?N98dkY_QoY881k{PKqFzMG^Z_5SL>mJO_FRk1xJ zShsUuod9uAvEWo$0yNUMQ=|m%Aj%YV@)0OvI;E^j+^h~~4)NlBRpB*kok?B6wMlXT zZX?VeG0_Ip#5GNnl^pY%(}6r0<bew-pFN|MC1%>897WzE?W`PKf4~Nrocq8Eczt) z=H}T5$}NNZb^_(HbXt@`#UJ$3MB|0F5ePKJT5M@Mg`2XjP~3c}&I|~xaKY8`iKQA9 zeR1;_e-zE%IWXVg*8!Hxx!VMZzfg7@S`L5cL!~<196iy{^%nZEXQKZ($}Rlndcr#k zoj-j+*i*1-_==haUrVb<=x&o$oW7`*fN+}hY+8qcW_VPok()HpWd%@nw>bS-;|Jpu z*;x@QABb`B-My@Y#e0WwI$w86Mh_)t7kh(F3m|Dy4>LD;$}k5sNbGiis=k8~=&<)b zVHIK2Gr7Y+hP>lf6-3dNp)3G1g6fy5UR_l$zu zT`@ihl4dP~5{oxHX8IYWiMJ=Odz5ZyPv!KS3Qwo~{rV);uxr@sLqM?|1mUrTmdZ7w z2K;^J`)Asjt}+^gIqod=4KeUVGsS=tjPj%Bg>Tofy1t5us|M_>XnlHl*{DVQw8M_0 zi1WhRr|Rxja^GzPE7t~VOt3}AC)Mhmr;jhFJP3(KmQ>t2fnBvyV7J0c%y?PBZy-*y zCbQ#}I|3Kn>VU@0l#~uVY-!*PjW^y8?EeO!tQ~*a%=$S9MJ(o)#PPxcjgu*KLk;Q4 z{+%G_uDhyEG1_0szdzOp!Z>nv)FkM|R9KZ(nFis-8`Srl+9QF|Z3`wR_}ul&>lWsJhQ5BzJY` zbst9A4nnabb$p@74RRD`SL5{hwb4W^fM9kToO13wb)K=!7%I^R@PCWGxd0Mb;;mk9 zwvobYr~;Tt(Xn#9A3w*H758L0{lfHP?N1gKpi>r)ZtLCZH2cX$0IoR}Cdo7b9p%E5 zZNC7ve#e|=d_G7>aLB3nC0O@h9ftkR!)gb~0|fV!ADj`XivpwZxRhx@pHz=DgL$5Q z?rG`Ccbn8}O5oC&Rkv2+h9JuVt8`gA=LrOzT$!uDHv=x1m57nUK~_cvg5xCF9Nx^D zzyjj+pS&q-%}fp79$ZPQT}=zTQ5i3iu%QUU^>xL8>z&}oUf~3IR;n0Yek)*4MNMd%VBEF z!Z7^3@<*UnvQ98MraZ@!aq7I7yU(s`xwP?Y5`uO)M+_%yCV(rqIMqM4- zneS1ky5kl4)HxPgEtjTlJ3IWhy0tEuPbwiw3|2q!!X+0Rs`QMhGn`m7EE$6MF+(C` z2n>$FtPLR|U+F<9eH0-DDWh>Lp}sA)XzL!2C8xx)^)*Umig@391y6%EN$iLrc#&9D zN1Oxy{oa&2e2dqAJ?fr@(R9nu?g>9aZ*6D=IR3H({>L1sDJ3CX?iKO;UW`B|woDU0 zLZNCFa^}RZ?EEuh7d&VpdQcjmCTkNj&+gVBsJ%t@!A{wi?Rb5V#^}3E7+sh??ubCS zbMM7;pafPK7e>Q3If9a}4Sv@IdC+rv*>AKw;rWu^KxCLLTSe@CS^-FIx9^4OXQ=mDA%)Ysc$s+5ozk3fit~fo7X`&T(y_(?vOQA8ddZr@|^eJbbz-@ARe>6od zI4D5H_A~rO2`ksjwX$L$w4WME;(oj|aVTr!gS^8hl+&gJ`o+xkpsog@ku|Mj^|lZv zH)378e(kcPM^253jgyC?iHMAJ^K>QOh>7kQ6?#(2A-$a9DYw&k@HvCw`ON(BfC3*< z)EA||6Azr$lBE3$olLTk%o>)q?tN%YkVnl#SMD!#5p zyuE!3G4X^`Y|%lNda3D!bmj>2R7VO8D4Os4A%0M;vWQF`T^U50*zH{DCjSb{ z>ivZYtx^pM=?T&o#JhPSwFmMQmYUe0!b#EJ2j$=XsR#mhyXh!G z$UK_+AJ14VGEex#d$*XHjcv7ntO8w;y$vYCEHp0d@} z>J?D;jxFIIZdtEpaC0u##B)&ssT@GFjCxA-cfV+0i%{c-tRH{!h54p;1pcv5&BT;y zz?)}6TTo?6PvUcmxn{;zu%h?WI!pUL=EVHG!t;(}u*PN4hSg%q%#1DIHc}khW5z8e zKTjC<&rnb)s(PDu*KG&XfH`jmeJ^C`VxuTJqD($L%;Xzb*||Z?%>D0D$0c(5?c>yR z{}GpAQO*YwLMP15@JHikO_<64r+L^;Ac74Z5{DqpFp*e9XX(ic4p08dkg1XCP&t8`8FcC_B=@W`yqqAq=rbL>Jhl3Mhf zjnL?+09L4TsnlH_vH*-LxXb1$IR@IFJqP%tI!rNDdc=rFd}I4*Xzl+pG4p%0R6-_s zfR0%#vn_k!EW+cc#OdGfLJ;V&P(H{lu7n^%X9j4LHBYaU$#Vaz3xnS+(~_miicRz_ zG^Kka?D+~B_9hVOKfkmZ!!>e*?T{99YSxNmYt`7MRsHmPJUf_D>Q{t1Sq`{y1ad=O zFLD)+)d{H~`-}yVn>&ZE+qhdI-qv96r_s=m#cdFFi*KfJF(_N+3s4^;Q7yxgF$5Z_ zV9iK39qDjXAl{1WBRCCxgvMDmo3D4{G7UDVpswd6y0$rCK3T_Q&hGJ-Ywoe~CU#bL z-+EBF27gV8wGkvqdyvgcOKQ3SnYpQYEqi79XS+yc{lITr$i)Am;rU5PWB${EW_Dz|*8;uF%i5*SqY7>ejaV0Op(b1NW0nE$PM`4 zf|?PrW2Fiq;YvwxO=cm0$lm+wt(}OaN{_GIk8azfALadJ@4@Rqqodr$WywM#K?ugV zamZEqaA$pXafrGsOz;1}e9>1{nX9bk4dALZS7BY56>`|(f80X~awW=0MqIUuz*I{a z^PvvRc;SY5-K~y9Z#j*?I)V>J_x2Ks2c5aBAcxu*Auo?$E%Z*WZl?yLYt~dT&@%i);yjF`JXE`86T>R%%a0AUmxmixFFANg`UB+ zm%x}lw{`xk-O2u(LFX{%q04}wmBtUXoL-42hw5;-jo=s05g`$U#fsAq>7Ac;*e@*E zMp>vPCZz`{C*+~0^`Pp;x@Zdw#vH@%G2X_GQGNzYDax{dS^m`^`$qdI{*5xL(ZK4B zNb6TMEcsGOwqA)T|8&UO7}a{a<)t_N8j&>d5sy8K>Yn8+bvor6HE+b5?Z?SO>(*vb z+4VGw^TMH>JL)`w9Ed&^I9GbBB8rRQz|TQ?6G{X%#I7(-6b7NyX|S`z(}4XP98z4cU*TEPnz3 zqIQB4{*SWl=F~B57Ci8YBV*ZBM?P-~C7WBVGSl3=bsE$n`$b~#(fOlD_M)>dA2y#r zYD3F1f0*9IceSagFgU+!gqJCEUWqA=Zcr_#<(6?<;9dEU zLHc9K!#w(-JxKlW@*+iXh~nf{6gwUG`WYmB7^kTBL`{oIi&nRD?nU2v#1Z1+U+EnqRuB35 zOi@~gp*vm4^uZEdwT46UOB{EE63sa zKUDKs_>Av6{r!*ZxFy)~-hkrd&gJ1QgX9sXGYcl4SXueVy!}?RfYg7N+&BKa6do$v z(M!#pjD^2IgmpLuO3j)CoCwDYkHr}VeuJ)NC3;n;RpsLv3j9272fB^_E%x7~eMwHq z|1O~&^)aUgf*N*!giswZK5J#?D^J9P7Yv*$V{2{O`EL|AYn_)}9sv>|Dm zN-;aMk7dGT4Q9zgIlQo8PU~1g+@ms8NVlG^d0p`6W$x8@JP}gwozjgG# zhMJQ#i?qHX68?F@$pvx`2^W{s9@vXNfUia8C9V!@NB^b6dF7!WMSx@kwziP9|JZ?)*$7}94a=Q+PN22`mN2L!+Y#oq!>g& zyUJmqt;cLP81**LBaAMN`0HJj34(Utyt;x5-u+gx^?qyk@NUjbv(Tq%Sk7k@T=+=$ zDjq}a?3`|`@k{(C-I7n>;%R7o?GiZ4kYeY48r(Q|raeh$^mBkdy-&;prk@qj&u^_N z2$$LoxFk{zCXdt0FPpv};P~gALt~B{iYEE>2CxKGlJK}&B?K-_(zh&ozs4n(|F{1k z{z&hylRK~?2+G&ovOm#Moi3`xaum(pwPSeMM*J;ZA`? zBTqYK~nt+zp%aNWtxoGA7{*YvVJe z;Dub5%7Q@KO4v?!xnmVe20NhVC)d=CM$feCa$*2C^Sr7kw<$gBK;AVD=BBLyj9JX) zKLbt=-vwiy9@$z{OOW=&J8#cLygABBr-z842%Mc8L*L}1<6u*HxhpsG-xf1Q=4}ywQbmo9(TNj*xQ$eDJ>}(CdHULL?dPP6s9cGUrHwH@NVoDW zx}^FWPn;^{Z1tI|O#Ou6Ag?XB2KIcN9nZTZesm_#UUdgCLDlyR)QL2*(3S*>P-Hgh zK#P(~>%-OF3Te2y#o0Q~ zw|a6+^PZQnU~IlBcDrRnhu(FWoVUa#Lu%C(YXl!`(w>;?*qhB9 z*Ad^A0n9vX;IbJ1Qmg+iDeA&*E&2TX${4X1v@&*GbSbhRC9N7Pu=0(T@XIko@wK9^ z4+1kptRhWJFCG$Ii(2ghN}2PNY1*QS z=G2DkEJ|nMZx!pSK1{2P6ZT+C+eWoLaftof_wj{-1t?Tw*d&`V{8=?q8EfLzE@u++ zS`)MaVNf$b`PO(J>j~5Sw{3+=xDt2DNgoA+ZFm5MyCF0Gbxmvv4-$<9S)N}HjJue* zdsRMdU#8sbr^fkZ!Z~M_N>O9P^*j1JDcs&=`rN)9^^L}~+}8b3^LbMl_4MMGJcNl) zlG0-GILW!(+LcY5!b+Wrgj@T^2PVXfPF}|3>hQYb+|>!O3yv+GHu<^Oz|!wF zRWf$Ct<}eU)r~PAgjnT>@s0gc`$M8QTgUp2{iex9-O;jt!2ip2%m%R>l-p=3@rZ8^ z>Ao#u{60urU+JdtHv0fAto!F*BoCUsnwwx5hFwEL*T8`pSFCdTGa^v@5Nl2`P{=|; z`)Cz!bPggtB}ScIgeHf5PMiZOWg@0)c*>yGMaXYAP4v}bj@n;nkv#r{4qyIwalzW; zpMh4nd2!tK6>J4oY1XBteGKWAX%&CT4OU`ya-Ze=KJ6cgCSXAG&#)8)nVILdF=_?{ z@6ONTL~DMFk4Hqm@3X6Q!^|?Nli%#(*yzXNDn75-Vmw5M>b1KmK7;&WE(Ij|bSAS~Rl~1#^nXALDjzfP$=KU`ftrs=!YX;1!5P@n&G=Xj587I( zlotk1VnI1l z%Dn#|=MzTUrb(Uo`UTH~2iII%qvhD4m~RhKu74HpBNU&aF7A=)b&>0}eE~|~!dvN- zLd{yl)Sx6sR(LK0pID!{Y~_wYZV-HVUh$4Nc@&$sl0-dn2bYSR|Mfo7j^Lkj75if* zNBE@HXrG}VHq@|&+=BToaq)N-jo>zu`|>YMuu0wJAdHCLJWyh#X%XP~le*E`~8-LjGD$&WQPUAtqEP%XH>V| zljN;Q5utY>%DkUaj{I}n<~f$egQTj5zj$)=S3Z1TmZF`6b5MN8a7(wiI->!eFn{~b z?n(6_!)N`#;SE`89!kd7 zM;U%QGZq-vtQI`)JC(AT-n7u=i9Y|sXg6tHaxNo)8&t4zrIhL_vtX%;23n8^+0jWe zl6|}`EB>c!-7w`0$eqf7Ai6S&Ag|Q~$?;OE-@RKgmo>QwZHjH~1Zo*d^)c#H4K;^7S+Teg+&j)hb%?jwSI~UQ>pLjfm?a59WuO zpWHwpcrB+G+ZU=~s|H;xLkoVW=L!FD-~I0O>G%rKeSgwXEGT5q)J~<&k|`z`m-QKu z+tvLtQ_R2cQCTUqlw*==Kc&!8VBkGdiX`-#cWtRc$^iLaKj78en$)Z8p2{T9OFKtd zLt(Rb?ztpAtUKfj(~>pCvC!GB`_|^c(>(&8F_{0gLnMefu~C9lWtYv;qFhL`1Ln^r z6C?xFy$fsTqewUgTzOEn!(>4#HPx=+o2;lo)7`|NeG)G@nP;w4x@>#>+N2si0=1$z zAXJLTO%o-j8yVKMsM7DUWO3Py96~Ezv5-Io;e)Q+!Iqkrfbd~OLY!Ik45L+jG!nXc z<;CQ2xx&58q}nt&eGy{idLj`1Al1Q(N=AN>|0p;)8`xdre~)Eq5>DUO3js?m&jPEa zEiSJR%Mb1R@7!v_t>{oM5bLwqJR`$)mwBrv45ss;bf=6_u}8OkJ_I)z>_*DE?ENpG zL9ABCd6Li&t!70?ZZAp&9Jiaqy4=3w>#8q4G=Rv@e0ZBk6MNy7kC@3+H}hc1qiSgpYyPLrdUL~$6lwLB zKuH9P%Xu-IrSE1})mDIkR_EH=z zXp*wkis(m-+(P0LuA1uR#~Ik6+L!||*`{}cE$jai^4d}ZmSTsb2W$8Ez(lf9>`_c$ zcxm)t?mJD3=$HTt=^LiHCYXgKnlFE!#MORiyuaf zj2e0EaeNi&WmVwq#`kwk*N8RM0jW7{vo0W$TOX5Mi%_d-Ap_2jE$!Z3H-cN(gQiE+ zFAAORt=V|a>@TvnmTz9)Dep&L+}!B^#aK3mS_-QnQ`>A+53|l9ZL^17YM61XFX4>b z(IuO=)8Afy-JLXRCK+O&{&a8^rJ7JWu-J9)!~9sJc)3R z3`yz9l^UXkgp|d_d)yCXzNS@NUH$#b5!urGze^#`cRZAP?A|jEku#^fNYQB-XsK@s zmNO;M5Z??|@z!(GN`|w#NV~xZ)=TGX@$bEZEd3_CZw$q^lGc)j50w*uUa#P}GmwBv z_&HnTPTD@@FEl#vl?zEF$8?2b(7gY{3M=I}#vGD{pF7!%>{;0sNtDHOm{2Arz%C?Qk zx~meU@79M2_|Am#;pT4Zomihd5s50Iv4EOhr7e^lq(vTCDEc!tIrxWk`&jC0ES;}8 zsuT}*S%M$w!j5FvKF7j)6zpgg0?fM!pd`il(1G&dpc^v)w~mr|-WxSJ-(d5DWQYl$ zq(tebfuTD*RzG-5r?epTFj|+4```d_^ZHh8qpP*UhN!7o;0^7fneYufJoMz6;PTXe zm!jcS-tDjFr-9=AKyNA0hWEJ8&-6(S=IH&BV+6VMPkAN zt{$uPBu1z^B_|6k7WZ7rKPs&axjs_i6yol^kS5Zktyc<7JscfoS}Fj~=czxcS>z7Z zr}kSlU={tQq#iG%{t+TX6eVv?&zT|y=R7UZo{XGxj2E7~f7+>>ZP<(ud7jE}7OGxmiseOt}@jP{*sfO{{n=U?nvjCV2@%M8k!wsa~#e9Q%_}uWK#h zd|Om}MQ^%y2{GG=^*29mbq;zc+X8Sz9AJZsK|j=c1Z@+!N}#4iYQl#-6*-RcMgjr=t4*$fV*>S4Xdxj7`#@58M4qCtsv1yPcTEJ6=dV}x3 zOGvv>r-d89f|*~cn?3Dw6A#s9*NIP?94A+zA0!;bkiu9sNa@jpb+$-NwU9dfIt7M$ zQ8JJPA2jYYUbe8FGSAKx@h}2tvWI4dW6Lb=9lvf;fDA4NAY!A-Ns_NdL3LRLtY(?N zilUhI<%`r_^wGDdoHevr$K4N2&Jz_`-PFpVq>E+ zUA^porB}?QS4@gSG<(5x%#U>XG8$D`r#iw8krp}S`P?XCgF(1ar zzRu#+{80~~xkAN+$ zr^PxM6eXSnW(?t*e$P1swuN_8SxI-6h-vUPHK%a}?u6<5^%8aWb0BiO@|_I>+;j-? zOiMO|eb;hynu@&MhF$Z=%v40C9DK3PyQ-1Jbm!=`Penvb4OeaEU z{AS}=N)Tw4@XXu_&($4nXDs-!?;<)RJI^v3#_g@>EAk7M??t&Nre!>kRoNEk6gwpY zGxR@1)h4+wAf_gMKq}tB(&|jKr+-J*{C-%V@Jnw->M;rb4%!`+Gss`LHa*9xJoDlk z9vM(}Q!!5>A#@VOk@&0i?ilVHuSp!Adfh3HHTQO!cjrCk3;H}9CT6*)He%+{qR)>A zq_k9fEL!Ec3jIiKz^5qxmth>G{Dj$`Snq?d!}wyMR@sC_o3eg-}_|?%14)}CjUUe z5_(%_$#QhB&q#5ubqeRjMxy@Y0c%(EG{%kmFPSj1lj^z=U)KT9=OaO6b;f|@gBL_| z^}HhCrLGY0V9w0LmvkR~K#d+&R54Fm8LsXt4Tza!_&&j8mZ-KjyyM_asF!N&rXfU3 zrX$sFf6D)OCe&CTQ_g|q&ZU=k`%gXL>>VKfGxX)lv0yImmlIhaMww?^3p5D)%0!6# zaTUY;H)-}KOHwy4YR|mJPA6OX`|=EwfK)jo3mRJ0tiY2*mNP3HE8T{g{V$J7ALQh5 z9mBw(G9L!wKhp}fa0dTf@~RFj{q8Z_9C5$Xc)b6f5Jl6A1shes;6xHFGiI;7WYOH* zrA@uK(^jZZFitJ3%Y@`YZVkCS&22>w{oqQBs4|{yx78i8^0&Vs>32x4!@eP0oa{}% zM7C=!6udmN4VU(C^E1zRXZg+_z^`$z(gPOdSMm$ekoc7v{xZdyd2AG}p$ z+kR=7X7Ks9^eRAfL4pz0^+@q7?0LwLZd^iAZ`j{ zY8+M@PwzkDdl*V$c@dS+)HQX!@Zhh|S3po=UUg_0?#x-Bgjgt(RY!Xs5QO|Z#W{ON zs^YHghTZRc+6#`DXQX+76E(-|T){H6!;E`ko2#Q@;b#?D-G?DP`6GxDSgd*%L5F?( zrd@@RE39;2oxl52*fa4LkLnrMI1&;gp1hBlPTt)j{alLYbi7pSw~&y2k!Pji?0rE&1{I(5@CBnYcYq3p;z(7YxHOmb$Eq1uAg76Fp27e z5Z>pAg(j6vDm7FS!fIq{s}y<6Pk5&WoLbbb#7;nekI#I5-lSA}yw;%LLZkB(%$BNu zBGL%Tw-KFtv$_W_U9_ z*B(fh3jG3#K_E+T#vce<0g`1)zcT$6G7A>WxG#R+ER~*H zJe2DeC6Q8e;zhIZ6IP>ADAFU6l0hlF_etcv6Pdi9WF{R%K* zBQxiGzyjtvfPY4L7jBBac=7{R4MN1C6VePcuwiJy1_rAS&h=JD5{p@Y(osMM&yw(baWwbMbUP!e0mjKY zso+P-3MTI!EiX~pfV!kvlSgg8PM^c1th!PxEYsRA#z_z*p`GXtfKPFETYl$L5ZBZz zK|VVyFNXu;`(=usS1@e*Zzb-ys!AH>iAIRK!B!Q`P{@$B2g%f;Phd7}S(K7VO) zHOB74RSB2SYZCPe?of=yBi{Kp;e)wzd19JsHn3R}N7V;(K+`Nu@`y!YV{S0~Ymab} z{UfsvXJ6~Y|GQ+Ql*W9*h0AL673q`bJ36oV}5I)z^)ikgU!E6$10zgv>`gum=HBa5=jHh!+a^jS*y6U8#c zPIXCh$XZR*hGKT*;G;YKLAW&84gN*e9+%U{jI2dsIe!GZFMJO;+gAR?WQAXD`c{x| zft{Mjfo6ALJ2dK#1qB=(Qxv&)w*I3d>!J}3{SqD!o$BzgoI-9(e<2oauOwP(=91EE zI5hWR{TkU)#BIEGrM;}SkD@ZqeT~tRo);8XKOxY4B2e@$MiK%}$dQPB3;ZkWHf~EZ zp?qtl7@W$|K1lmNiq6BI&HeAg=XXxErKmlN8bNHaS9@B5M6AS$StB9D9yQx@)QVLj z2{CJhgiwSQEj4RzTC25dwpO*OoX7Jw-1qCgKi|*y{l2cx!S+`rjvh4*d3Do@pm`G% zKqA15fl%|=M`?gu1daL|m-H%J2QZ$9bMp+wEmb;&7LwFAt!4^nyT%=KnH14zM@mbe z(Zz<#8ZZB(x*yvPwSbNitkJ9m2lv|_lXfXcK*qLV zUGwZxtOIoIYXall!WWTQBglS&f@_$V(g?%VYtG^1612=VlpQfUigK@${GBkAH{FGUskC+;*^ zVO1zh_Hwlsp@vwho8~2?Lb`ac=CA~hmLHoMIfAtj>j!U3?DY|r6t+3gq-eCTw>y)& zWWA5Icu%Du!_Uw%$&v4AG~Cylb&herM)Pxdr*vVRj|jiG{gr8&$rw zXpWbEE~P<}LEp4;1-4PVFM*CC23>9MFjKRNNiJUCP&9vynM%xyaR)W00=)cQf|a?t z+ayTjhO=@VJi63*BF>t{>%Tt+jq4c()OOkMVFrIumiQ6Fn+AutT-{G0rIi(KeE*Ad z<60jMh;0B)eGI-XSYxk#2L{4qyfOSU&bopOYk3G=a`WRzE$MeGQJW=?U(;{ZhU_yQ zwEQ$!6ssanCg5{8Xm9SC6225vn~i^JFL~|Fb0a6S#q@6o2Y?IT@(TB(ri}$4FAp4WblXEesjJ#LIb&(CYaifrqWI z*LkD&)b#x&iCfhssnOzc*#p8=pA`orDfjvZG4~dcx17Hxylmqq-X1K3Z*WUxdc7NY zqTxx>2?&}>9&vBJ|Hh+_)#3R3RN!~D{X@D(HYWDsJCN@CdzS-+*!M)~*2X=R5+s_$R z{rVx3KlE5*gk1gFE3X&%r-k!R{gXxMAv=p6fYwoJ8}3k0O^1{k>-C|PNU_~x4D-gm znM)xW8-G?dD<&EY(W{huxA+-R!r!_1{D(Mo0yj{VAx$3^e!=nb*+nK{|loPW62R}c2 zANn^Pp-$fhlRlqicsO;&zf(`4t8tgMVfxM0| z{$yLRQxA32d8zhT)!CRw1utmsx^_Ixa&}L=8sJU|*bm!j`@Jnw4u_Wx+yQH`&~s_9 zys?fjw=dP#!iE^gg$l?nfI{w8MX(ySP>qiY_>l;^v<$MD!+3d|_i%RH@iATC?x{!P zX6EkXW(BDx<^k<6v!6|g+HxmOW+J1*!0NAz0}B@l!_02tWyFyf0Qy=v)t%_~QgqGiW3`~V!Q!6P0sAx^g{|$Z(SE*)tI$rcW&0KaNX{QUUSru9 zfvY=n6cp37@tq}`5rdIXd4L(yDzbW4C?Y7y^wVCBM2jK`2OuPf!!M1kA=b7v| zhNi?Dd^vM*SVE5h$T4JDZHO+KIv%VHWmYvsA)#8I&wi#Cdv$?`1?%RL{zlS!k(v{wVLPx3?!s`;I9o1lqZaeC6Z6eVZY?pff^7pB ztR;gDY{vzhxhnH*37a_6CB*&oKaaxjhhC*Qpd zrXP5pq$etFot4)_ZgSx5LI3^nmaXriB(K2uH}l@e41%VB;BA%5i{g{Cz~gfjl2ZYE zbU|rF9*Nj{wH9Tsx|#0rc?|K?D*f36z2JyzBUYJl@_pKJRz8=kLiYOx<4lqdI2^_; z%48WVJrtHW%CjwcP8k;T1jo=E-I{VOFfp{iEpYkVkjh;*HE^Dhyj_L4bX^qL$FNn? zxXqk3eE@2CcR0_W(LHoz6xJ!>ThPR1B6o3x<-*gF9u;DDfM)h-__Dvv2}o-xBUoHe z7Q;6gwMoA;_4J7r$vTxBp-T3vXl2yxN1LqFAa^%0mu#V8qilG6uEGS+j~pb`7kqeI zM+6sG!LiNX?8LVB6)ctf2JH9Cn{Ob^{Yff^WVuOa(#z=X4Z(KN+rM2odAD!?k z?PjKzc^ZQG_qXz|@?g(ybM{*hBT$hrs7_`=hc~4l@>Z!n zLJRP+OYuzPQt7xB+jJXzq8k`z;`*SY|Gz&D6OGu(oMJjfi32p(T$66tiZipfr)FWj zloi%*{P0Kx+aC{gMMjD4JJp*QtBwPZ1{)qo7JVuL1(SGPsiq2-XLT`BLPDT!LHLpJ zf0uh%dR{~T;oy^JuTNq@^wXXn7A<=JR+Sceuu|@I>hmR3r?NMObv6y~SVs3&ttkcf zu|3c-!SzV+v>(tC5}Au%+`75+qH7np#9SB+LhDJg$AFR2+id^JkRS4<8kp)j{(cC7 zOR=S$%H!`ytlk98HNu$Kbrl|4i00kstXgcp$bkgEy;G zOX&v*hnM{fTDAZHS5PCAsZsjTGZZjY$h4*3Z%aQ}y1d|F+!Cus7*W{Uz$lv&)o-uI z7CH;Jf@i$YnweFTP$Did*|4MWm4@s+eKTBy+)~NL1SnI{-N2Uqxxe@}DEeVg#%+pP zZMV0o<>1eRmD`eTmDYyL>>ql&IE?J>^U<=vNQQ!Yu%CS|pkYp?t6=RDN&f=P;7-Ug zzgP>%NZq^d`jS^G()%SulOD_r5-26SfIy7E{_|H3yPd7A>$yspz7^f2sc9kWke^xi zqzC2}#3dVj2U97$T>t$s5B`F)>YEw6B02^?s2CtZUhg9;oYl=5?^Xd9C25e#{7DX_ zCB-#J&IC_`^y4lAd8@$dsc%vDg54N|txBeLO#cy8u;zdl`ZhV^{%sYw?uPD>nK>_Y zK=Irk%q`kNsT(Qclv6Aiyxga)xfxs=rfg+leYTwQSCSgo?>o*(N#(EC6&#lr)IgHM zx%n|nA97bl44n@!Qud{IDm0tpsCXU5J%cC|V*{q}%dA`KKceKcvSkP7Pn_!0#WEXQ z6A9gwqS=aX_`!q}Sio!-EKyJI#cd5!xt3~9rKHRbpjoj8gBs{(?@bx|33$yHc3q`a z?>ERowU~^<43tH|G)^qtYUc*;G)dJ~Y~mNgZ*tw=s)wGk7NjcaM!Ov{7MDQqTJD2w z-c=QwxR#|MuTt)oGk4R_z;iAKA>I1!vH2sVwFRNZUW)7-BwXA8~h zR?yP$yzr~9Xpf43v9C%lB-5f%3_33JU7Eu3@ib9R{*9*+VNFzmWPa0G@(hvyVrXc! zoV?-u{TBu5UEN7Vbt{I1Pxkb!x@W$Bk_Y&IGn}6YYl+-h^KRX{Y^hwkKj#^TUS&_V zA<-XMiY32^{P#zN;ITa(hYH-7BG-;Xn3z2l@qIO}6-&Gx`?=J{RjRGju%nuExt{FA zE&k~0Rqa)2x6q3F*sy?~nz_n8GPdJWJQn%pD$@V`aVN+@NHb6=Z-AU#X%{L*%~Vqw zIE|AkR4zBSHEo4sj(W~wUjjSAL(m)%7-FbHjOWex^4FrKaGlNfa?NI++IQo&gh-zD z#$zqNV29d9DtIw#7Pm?=h?J6?7XjuEIbUw#DY#Xy(~7^_v+~!B1?rFIx!;UshL%qH1CuiCbx1%v~x{-|v*gpQmR{M!;&kB##`ImlQ z=%lm+L{ukn-hU$Q?dUC&r!vsz*_LNsRSpWxLqN4VFUO~)%MuXoG6QZOtR<_w_@zS! z!8g~|Vrm}FT8>=(N1JiOq@e>EiMRGyW-A);yJ%+-1@5sX&rjZ@@x4=n_<-$ z0FjzM*Ghe*Q=HjHEg{g~%1boIl&%v7JUOL$jE;hbM%MHu#=c87{=VhnJLLo{y}%#} zXt7q1rOF2Rb{x_vqE#LZ;->PR=GW#xA zfmkuuWu!FuS*$Q?bIj_eCyj;@oS47v0|B~`h@fFX(c=Wo!=qX4Mf0KG8{Rw`Q8pF> zIB74}`i?%oJ22Bv+V6Q#qTH_+Qh_5ODZyUc@stBI-EXq_U^unHHoBH-#E?G3y6u~O-Kub#} zVG)nAarsZf{2K?6o@LE1B3hQR8eb7#=tlyiQT`-g)m}Q=$lHYJ!5BC?w9Np*z%bl8 zHQ-Tk>D%yiNwBe|+~t$dTYhT%p@)nbO8xJ_YH}#XNkT|=sr;(R*lwgONnEnMij#c! z`)z?3ezmuq=qX)hA0`=?zuzDb1utg?qr00=YdLhBpE4hjVk2t zfGxjh%>FRlb0%=_IdInpW$dN7d}B>R?=98k4%p<5DFMvdq}2@u_+pv6D`t|3!((yJ z8VkiOlf0p_cQAe3^MElWcw~!>!!I@T;O*hU$UKohMy24ES(_oB6I55 zJYbm-E4vMiK@p{wjp}+-J=Y9*)hRG~5cK6$>x0m=|NbZ|yBqvF?_09$!f?pz0nYs8 zH!mrIt(3?P`lEiiMOlwL$qQS?L0IPH(>u`2xh98>-hkF*skswFNXMF_$M~RJpD8fZ z+zJ~FdoU)YJ_I|my^g^Fyip*_BxtJqTrC;-9HuAw@wE|4i;eN3Rkl*+ zcYHLJEBH`WP?T230-Eml2ib1#;4uv`oQyD0`32-w)|+f;v0Nvm7YWa+4lN66VI1*` ztmcZ!#;y!L))k3E64`=$hpIYI9bZU?R}{z{oBPHu^bRRGB4||xv>%cWv?0&0w;}hI z(AFVfbIboFzK5?&DQf9{wsT?rkxCHA2T^^jo&SUGh z0T0MHh2=9P()Xssjyt{^hLEs^98X0?Z(~H;^xLtLVQh}kuHT^Z)7zDbUY|GngEf^V zfMxtC;!W~}d4m)o-btS$Icj_H<0e zhSX-uB<;A~{deDugF|E*#zZy3Ye`-4gq{!AXFXFSy#0GnJT;nil>K2o!SNl}kp|YuN~^s}*9wZ4 z&5{e}fj!kVFP@|P0<3=|7T2&A>{Z4Ww9xI55%&n$;+T*zHA$)ZKG~u|m#Iyp+|KSU zMRIIZwbQ@6SolF|4X*v2w%2qlRn(k4VSdOfZ6mkDT9PG@MaLaqsLhhNW+fa%om@PJRv17E2NJ%3fleU@cBD%!Zs_REgCVFV_2 zXjQAfl`FabiDzHTwy}6Y8{cX;8l?b|8OZjp7JPq`S#W25K%l}>Sw|n>N&iqjWUH)$ zo@JVQwoTotN;`E+I#FN_|vB zv-0L0=w8a>VVT1o1T9ciYr+aY3&)m!XL38eu?I=Ppi_iAW$wCgo;9R1e|!U*enhnH zxZiAuyIKaX*EYb|JX>i!c@sO z-eJJ|SI^|X4~QR7`!1x=+sxiJ1e_C27rC97a18dD9%&m#kIU=8YA!WLZ3y@I$_WJz z8XM6^A9k+{_FAZ&9I1m8o}h;s1*SG)L*mtB1U1@O)N0f3*(7-ro~ba?nlUoV(Yc^Ks%2a0=;n>6LpF zk@C>x)^K_}O5*K%JI6N<6*6gy@#`cXcG-aPzCe6R+uzfrxPk3-jN4u-oN*{;^eV(? z85=s18~EBp!1uj>&Y8M1L%wOuUW-9iTwZf{m-C94O(-F(vC+yhRKDO%-jH>E`MziT za@XBfv|+ZEJISZiX1<^$ybB;}vfhm0IVoLS-(yjF$-^7!l@w$?Z&eSV+V!_;_sBXr zzf6A2z*6Ctl5e7*jc`=&y>CCgsQ*|pmyC4s0n#%14yAeHJbgvw=o>3})#3rI#hR3t zRZ0so_DF+IZVrV4kWHI(`@MFinJL)&o|^eyH`wWjF-M+sN8D7%cNhtO=m!0UBH9}y zd#TRY-m`zX!$qrzFTS%C9#n%J*}7iUxyLBLRZ-rKTsV~ATKqi%i#w-mZ|D9?L`qL=WZ`87o)M-i zf$WgrP}jMZYKQ1Qt9}-B=sT2c2lMk+2Wyy4RRX%L!ToY*#MzZ+WxJ-6JDM*ihyTur=A#jW!$&LKt5O*k@`VLgdxgBx|Gtu~!ovz!n3x;*J> z;@6-wt7l^)Re8JO{EEL{9RbOK6(qRSd+&oHrkYP}7NEyjo~ z@Hd3c`65H31P1;ZoJX;m-|(TTTv8O2LGR~m$7tBMHrM2OC35;4>>PXL#TmVRJXKt7 zx3>B4;S6Lz7x1mWeMgV*QG%vgG3V7Cp)3V=9R$RPhU|OMtY&KJ86D#ntW)(HOvx|d zSKD6KsgR|q^udM$LPBG2jC@h%_D5aE?JPXyFgKzRJ*eFLa0W>N6#E@QIyr)tm%N7# z?{tasL$_OxRa2TG*ee^GpBguEmVTXFuwvcTpKYK3QW^Va*Wpa(%<>_mv(>;@) zGD};Mu6mJ_ldt0YrlR4+?VS1kL)kN^{bXdDg?n0MBEl9w!CXvTV>9qMKSi1 zB&@n9Tg>&tT(i{>kxo$#4@x4Y`^aXu^yIc;lcx{(R$TIx9S5D}wS44nmbc=xqEvIV zEn%Zq)iU#!ip5@Q2nrH5m_DM_kn-Oj@u#7Z6(N|$KgFKRr?7#1r9Ps!xxuuMjHWQ= z69RMHEh>z77(c*oBVc*pq^@D za^xM35irvBpXd|{<*C9|!8*9HrNyr$M(D?nuI=Go9k|A>AM%PUpbA`uJCFUV66c1jx+&$<@5ZONqpcT)%M$^i+Dg-rhei^Q+ zsbwb?*ol|7?2TOG^?ZaTd)GP|DZss-zI4ToZ~Qn=8N!X7a-u_A6p5uaMc1*-$}nsE zNld14QCiIj{k`jfjlE4_1A&6k?6SM{*dMK)7qr|g*HaQH6Qdz%AEhg9tyi#Zx7i~> z9x5MS5H-Z)0Y<=DfWLbtYfrim zc~dh*Jr6_Y)E8Cxskpr3)eAw%NG%CanIdt zK=}*SAB4Rw;yrutI&MgUz&FGW7or+=SM{zcefb*Vburu&=Ch!cY@S;CGVk@0dA(5x zre+r)x1WK`?J|`ckSjvBwJJipT7({)m-%l_2w)!womI#PKH)!Jlf)TofHh!PW3z`fZXtSQn z%85n4Y?>$aO&}h(?-mW#EdCpcH%B^6RD&JgxL+@C$um^WrfOZ}G~4W!kF4WghaW(EB?e&&&5f0QJfxo1Y8cZqM6i2U`5ofoGJ%ivGCRe zaC>jx7Gwid;1hDy9-1$ws3qY)^j6JIwlMZuAuDb+6qrYRb)u12L^7EAEw!g;a%eLV z_|ZL=emcpb+eCA?7g$riO}gn={fO^-no30OfP>;(%e3iy_gA*g?AMX*(@o)_9`a&% zVv+ZDt&SGxYxcKsOV#Y%t9#vM_^3d!X%Lsqz~KAEUEu54TS@T8#sDo_?iMrfsKpeS zr|DruwWyre=U24X$|FCZVk0Q^rZ6CTBgHy&Qw%6vN0*%AkM0gjP?JT>{z$&ETt*U| z4cfXIW(imvUOm#gTur;N5qYhtyLoT!@Z?s!W=~a<^Vt#7+Xz>_FTokq-zZd`1RG#8eR?Z>4G}bj-wiN zVYV9P;C>`vzoJ*MN69g4IM*){d{Cd8oAi3GU}Yw^Ifs4^lwR=En-A(Kr<^iV^Y6K4 ze3d^Xm!iWs8Lwr9Y$fUXmjhq!|Mi|y5vM=-l-E=(O|{ABy>lbHR2avQO)4{F1!cUy zAJwYb{`CaB+eDBqJT%vjWzP@d?Ztr_W=j*qdRM;Uz+lFI@w1@w2XbVNt{i4+In*?< zPt+Ek7QsR{t{ze1wAe5%0Pm$*uVM9haUN4@TtXiJC++spc*Wc63htmz~$!+K01Ko%^_XVDZ zuJ@CgxclCx53odi|Xf6Vueff<~S~e*8p4 z>BvG$a5i@X*E;VmbleT0;{4gV49ni)GXfs2J`faf(q+x zhM$*flrcI)l92nPhc5SnNX2d8MqH1$b`Wv)!Au%@!g9MUWuA>WR6X}ggO;F}656Zm z1Y@%t%dD*qQU>Kken=x+#8>&LV_WwxDuWh9hGo|h!KB&c40x(vrn<&W_%OZx_O6L5 z{lN=T`G?LbpWb_w3Nk1S`}$<>8zY6-ubHzs8g{N*3i*+af#s(1ifE*wQ+}iO3fzqI z&6$2w6I^#qFFe~u6R?kusVfb~=9+WUE|bn&pn9uiLv_>#fxFLZWz?Oh9o&Rq00) zImfx65wT`~=nStIhVPx^gFizm7%e~X=7f5=3ja<%bG@xxNb&<^U^s!$KnG8xH9pAkz=Z6H(*?#3O#Jlbymu;g zB+g=UYiCHiF&AN0_}gxE{f*>_p=B32Mv0u)$a0lSc25)}w1eN^n0XlPId*mG^Z&_r znIu{M0?(za9^^&`J(YemV!{5br&q=Io@(p+)gBGD3CZ+_T(M+}h154zDP01k>Ct*u zDW7kuRpg>OJzgaN7i`tK@BefvPEye{VvklhjGtr)7)-W0z*{;H@;9MOvbk@xIjT@& zN%Se@qug$rP3N8DfTLtpkFTNYyZUhetiGuUeWINHON{xm_yhNUB41;;IfG=d72Jf` z4be42yB*JN_SEPucYJu9Hs&M|mr_ye5N|4}RDa0L%duE~60gBgdO?ZIx)U+wS(Yfs z_1y7HtYG?iO(7rOn5yzb?Ql(eYADD_!pdozF##Oe%N)5)trajDTDT!`u-}jky65&f zB-34M^Cx^8oR*LeGj4Q2#Jbg`hvpud>D*o>udUC;Mo-a5IFJjZHe?sMHS?b9GkkQ{XnvCC6zyuct-f+6}bz@lb`SRhUb?QqV_y-fu zDfMBrf1yO{E#MK3pm>?9v|Nk8HillS`o#{&0_93Ket`PGKJixT-i7uQF*ub-u4ZTh0+;_Q}sc~{r)V!=!X}b*Op{it#^IgX%dS~t~oZI#FCOBZm*|Ih-d@1dlpr)Gp z-WLL6mzreF$WLA`4HK7<&1Kpfw? zv!x&GDl!ghn#_$7XdVOZ;$_9pVEG4ET{i$c@icB)Zj@B4(JQ0wOWjE(EaS;*)=KscXIA>}k82_IN{=!{U~LK6NXPs`j2r45a>&c4N#C~BSu`XC zpKFs8I5M5Gs%6suj!&8#@Qgh;nCC|*JgL{OQhn|q;waOjoK#zv;F5pmwD${<+dRH2MH$AU*43Xv04R|hDb-(tAPHA(xoRF58M|L?R>B{4f0PCLKBlyjY%+pUn**@CU z`C3vt1<=a=CJj4pZ)zr$}WIuALIEs*pQFj#9wLDJqNJBeD8=>r0{%m;IK;G!m#6**07 zK^wt>>e3B4_AphLr!;paVR<+3dVQeTFA`*cx)uJ#1f$nz=3!v?kzIv)XeI4|O)%n2 z{Px^%>&+075;2ookuWnT(H-FJb*}mx5K=ZiQvWh(z6~kXxMhl+D-zlnwf>t*O*T^Y zkz_wc*oH*%>Z=Iq`_uJ3KZs>*bF|hohm4z=2h){1zYfgJrAZI5Y9VLZg=m_2yzlJW zNRhIxn$E2;6E7b6)`-WJdaY*P((J%mBgPBD95PoU-FaDsJHj8!kSQ+_Wnx7K zHN{?#p_ca7J~2KB&jqjSuFdmO&@ZkAJ1DT4_!L)cbaIKzmZ-s%YEGiHOi7am;QJ&xp_et#2bj{QIE;xZnn=C|11T3>o={V;#&<|})J z`hBcW8Fkns69SCflu63~avh@g|3Y9|B@gx`K6n2v7OlW|XCM-{U5zK=S5H*H&oj!#^1Ea zc!_d|QhpfqArm(kfB3A3_-WsGX<3Aun(YxQO_EGtxY2Ms=_w5L`@wgF7t;-3c z&pLKOqCeF8u~8>$+VJXxcWHjh2FFvfO3@kfyr#-yfP6SJh8yM85Qq_|V6w zQqKEu8MLl*MiD91s_kKeM}^U;ksp_tqixB}zF}FBg3@<3_x5f-RGtxzeqQo4)-($< zCoeS&D|RgF!?>L@-ue7SZ~57WF-X$lN8Asy2ge@{oYb0`?1sGF7V1*eH*(q1b%Dv) zpGY9^2F(+6p<10-ZGTI$Q|wSKpBrxx@pJN<8f<4Ea$b8r&63nwVtpVSh%ipJ8B1EH zZy+?&&iulOOYr0N5h2}ze#D2A(BLfj7Ye9o@3duOMidM zK(xp~mn7D_{BYq{H z#=6>aKF$vHIv34@FIhTfI$jzX*i1EL7jh2Yd1ci0fmdncLM0@mD4Q;-3?Bo~%mkw` z5(`(wJ1K0!H)duJr<+?wy#vw3gYe7{S!az(=7aUfOl?u^U@s!Aup zikQicRKIch`zHDb(w? zfVE~bP7Tk6+DKXWafX9`n?RGCSH&upO2r}R95{ZS-Ze(xaZZ2I`o;bG2R6!+(*u)W zkd6BIOz($RU7RlV)rM_rcjpIW6WpvFa<1JSe;M*@lTp&+@QRbheI%(O6- zmb`K7uDz8?f4*|3^B2ur^U=hnQ22FhWU4S- zLL-p*cGDE6!+3&{OvDCPq$#Z+9()28Kuj4e&Y9+Q8P zOE}vo_E9}2ae8@|NRMNkjju*y`4N*^r*ZV1s}FYBwon`#@z5OMK?ZJe^U(|XfRH(j zPa=kM_QcyY)mkk!>Qx&Ylw{}r!*45~iKxeLll#5`{cLbg8X-StdlHP0w3pSuh6u-B zh@u)t1k`iv2dWJ=++oWo#bHa*}&#r5R%UFy4LvU9ZV#~$a>WXc${kk7Y$zPgy5E6~`# zL39=T#BHKG`*)>f^hW+$GeUpEPZUFRyQ(N8Ly! ze%pZsNKI{aWRI(N?$v9_lFE)UF$m(Xwz3Hu$Im^k%R}me175c)n1UsTg$3Tvt5bGV zB#J20vX+5CfqX^d-$&DFF%9`uU!BxmR`+it%DeCh2W@wj`B-betO)fe-+E2#pRrsa z1F4Rf2&iL^ly~N)oBsLR8keDO`gXk!r`tOsi!w3GQ7EO{H>QJ>W`m!tpJ=f~F2<%& zAjqJvvwB`lviweeh>_;jRQZPdY5d+)Wv>6?PHXilJA676f*)jELhu8DKq&R8MvtD1 zBPku7Z^|tr(%C?lG|ko>`|EeH*0A(q`(wRE1b-C1Nh@9P1pli^=IgDw20kW@X@?bl z{Yj5-u)*1!FEgq3l~jzvjMaOsqy{y%a;1bgr&z-jSw;7Z0#YpQsytt4Wo1*w80273 zvd_=`;Ndb%g)dQF7r<80h%q5pKeSrh)so_LqkO!|=(JTDKPtkbS$Mlao{C8Dy$q_e z$IwUpW*(0^LePFnHvjfdOVN~XiG|c7r{!)FM(QNacxx&9u|X6vUk7-}euFS!S z@e1GgkzbLmejm{c7<4jui<*}wsL}m+Aj>M+iI>y zgHEo{f0Vo z`C`|VtN!V=YS*YrpF*dq`nmmaQ;H#c_a&UpO_@M<&)jxl`d zyYYH|OusKH!h0yHiKpaPVSZsBuzdwfSc!R4Fgl^wuW9iSaxOv5N~ZWG=a^)!jD6<6 z$E$k`A*PF^g36-hcJeA-Y7!spK2 zh}bw8tI|RSQ_w*M_-CUFzBcoJkQwe3e1*`*=zGE<5#o$)5UQkxk8QeEs=WOhkD+zQ zKA(pzo#_z0oXP>Be+g1JB29& zhmzk)R>|9#LgAtD0KJmFgM-=kjwq?&Jr@a&uP zB)_8aoO0b7no0*~2<*NWE0(wum+0BU&eEmLD^4_W+yW&Jo=_UYp{`YK#WmH5agoIb z?bOQEZ$`L`6a2CD(RrM($JX_fib&&<>ax@l%X6(MVf=5Up=CRofVdIY#Czn|a#hER z>Qm(>(&r*yqqj0ChoB$N>bCS4*w-bsNKtbJKZ+&YSrZdKDXm8>9GDAUAKnIZTvSjy z0@gl6Mp^8uij;GkMHl@Mk#o-ZocoeRg76eg&lqjuca!TPI8Y!z%`J_p>HCzN2lFtr zlNWyO$Fw^Y#q9TDZKRO=?Hhth#7CnE70FhnTPf=))_@hRBch%3i_AtUJmsx*kZP~B zc&75i9MPbsAp_6_?vz%S`=EUlxmCJO?65lV-sI%7lxly9A!H3XR}SWV7+6$(qc(q-QF@jW5V4^KDv*LWO_BYS^G zCMjFwI+I{pg_T?ND&y9rKanps$G9VZP;#M5d@0`@k=%$$#hbh2?UE9Y3>le))2Y9* zf0GzgVkYwFPWMCP#bD*CM~|Y-L^hi+7yk}qYQEn5Dfq^=!sw?ukGG5W7<#ErJyTXW zS8w-b_OQgLO9**TO<^zO)UOLR7nU{6i<#YpdUoEgpBD~yI4IqEVgZ+`wwLNC^i`0T zIyaOK9b36SQNpP2qv3OhAHFU+UvB>U0X@K5cTj8KMCU`N14J`0QSD0FB~b+T?$MHE z1I#PsH3e)noS-Hr>-w5Jwc7iShn{yud7#i^kIrfBskOAYQ0X1SU>$cK_2jb44sERRsSEy`}S>Esq9(VuI<`H*)I3u-s|FCE8J_3 zvLpH>d*v?IHN$mruaQ|+Wrl0y8X+T!5JD13-=BZsobx!3&*$}iy`N8GdpXmS_=}YB zn*3tx)J(N-d4ydQTYV`1;*Ed(k1W(XLWn%ok5UcxNE&D2xRmd0ksG+EM(;dgF=_d~ zb9e?@$s49f_qX$iPsd9;aJ7)7@1J4?vuE=4&`SdQPwxbMne~&S0UX+Nu0o13gPWGU z$afn1ta@s|#`j*CWmqfcY@JBFi}+rlQ~(FB5#}U?8Nmrt()a4J2>9imVOaU`Ry z%`~ooF75HNshV`$n1c=Pv39OZ+E^%@C<)4+pJ70bDw{W=fF9#>uPk+ChWNkGZmc)+ zr~}P>?3v}974~Im1i7;fgPVXGzCugZt^i;zs)C!p0xrO?&GV{TxPpoWY{36(8G7DRggSZFf=};Z;yp+91^UW4@AMl!*eN-KF>}IVS0bwlstJ_(!m1V`u>GaRo z3v2GFX`rtSxgx*sj1~F5q!>b}o)RN9afKnYG9^+=*bKB#R@c%%WvZ@zt9(OMHnyRc zs!u>BCEpTYF2jAMsY#|&ie|SOmt_cbz8oKmJ*dAe$M^Rs9L{jmDi z-1q98HxGVhzOjtu@Jr1;oWdu@cn7Do(hhxxWNV786ggYmGo~l>CDuCq5obI?7}4PE zvA-lvs+xk%#n#6R76igQp1^hNdhZ-23DsV*iFkeUOGNh9$8nz*>SS8HDf7fmT0_u$ zv1LT;`A>vOtoZE`RF#g+?8$9U^U^Cy4NQe6(rS}jL=+XTff*~evkzN02;#gU_Tx3f z2|1cl^Hko(d%jRBa9>ntzm^n`bR+*|1Sh1dQ@CYftiZ*S&4*NZQm~T5j`m zKeY#u$@!UGHs_ILw3z?S8BEj))c0mN?C29U^EW{+@y|`5p}D;-V`(SG%IcARA(9KK%$vLuf0!$xj0%Ha>KtgMtE z;e2r;ADr_NHNu$W{ng44#+~t>5N?&G!>qoKm$(>Qdunao3gkv;*lZ*NX#+Lb-G;N9 zq3f>)HCtP_{(EW5CV`<8ybQj8{iZ?5HkZ$1%!^DU6)qTj`@XGTrXx9<*TAex&Vf{S z^;PfUaTUbg=S|DPOWd=lX`H+n-CJ3@5xx6@_Sle%-VTu%Q^1Co$h-S1dXm)=)lsX1 zc`x%`>RQmo!A3G5CV=qa5mY!+6#{np8^mXOwjf?#s|AUmyA)mpx9;Ck@krFOBXiB z9XH0S5pz8BJGMF4OO&V{-cXTMQ*+j0p707gYyo@?r^`7qiSfH2j*7DV*Cr`_+w>F@w402bq-?7{uBquN#5sOfRpZD#ZdFF?9F?$p`P0wvvY3EhyD zOC)4|&O>xrmzGWK-CX2D*R)iBqyt#WEoD*9@*AKwei+QuHG4nA0%NqzvXHMRoWxz*Lb2OohOJoP@vr6G8} zs9}~&Lj9sMdC*(Ru+gJ3RXa09B%1SabGLjTS2L!xwGj}az#o?1#IFllo<>cmhMc@RG487w zL?N#F|MTCuKoNl=aX^ZoZTy4Y&})Gh3#x?(&EnyoWjxPcga=`9;Qr^}@x6TCEYjAd z(*E;E%;~rQ{{Bq{U*Gw<2J~l#Su0E~?Wd0;ogxRY0k`p3l z4tyC6l&T8A`-W5O?dK_X?5j8*8OI=4xD-WDnpmmKz7s`E;##Qvi%0OpiM6Qx*)zI_L zz(6ik%~g*=_V5~HBECAKsOg>DjWI_{bIbbe#k|oY-4M60F86v*ZY|D`t$s2|Z|?Q` z8@+>y)11HjGO=WXST-MVvqt#7!&>@kv|E}=1q{tMAem<0z}5NUeZQ;$qBAbiHr`Zd zAb{cc3QWFkW{f`-ODfMK=MK5ao-vrwWnU)kaoPSwBgG2SO{;$XBLkN0zNaMt^*R5Y zvp0JfhdPqTwm#qu;1Rp6MRiywaVwR`gV^*}*k>cnj3F)_`plZzT(Z&B{}#Q_RyGYv z^jz)Uk}&dZ@mEtft4~VS(jlUw6E4Gh(g^@nqJu-l!ga^U<=^&>h*=GphQS%O*~uU?`$%)wAc{_Jle%(B_Zp;aQyb;Nrl3)YHP}ea zoZR6lLXC0vho|W)4ZG=b);O`_H)P$>S(|@w9wQtM77!Gv8nKivW(ASj*}E$1`?Q2( z#oy1iDFo22#nrUnDg7GovwtcY0gE=T;v&Au0S$fq7dCx0^#|2vj;qiDv%@l_5uG!& zQkA;D;w=8ll&AbAYftqQjTwl=YliztEwM{sbddfj*Q#`e{Xn>m&sO?*Go7~wo!9qc zl?*C>s!4o0PUDe9#H{Y*mX$K9=dm4qc?us1DVk022a684DWbV>%x`ky`?bb$2oKgd?spL5a$|B**d{roP&E`}5b& z4sN|n=Dru>>kD_xjQTbz|RD>Z|XPzwYfrjDw0-5#C#)gYYnyPegVyq!8L9!7-{c%X%^^elr;S7vY@+%^I+M)v zxGMHfehDjypEP9FJw5rA8zbRY{pHZPEER1)Py1&(IiOD(^i5XD z+2Bo+-ARwdm|E54%Wb+Yu0n>rO{3hXr#w|v4*qQbw>fh3w?<;K{KewtW3^fs^sd+F z5r9~iqZM>|p-?1=VIR%dW_hNlSX?}Ib6^c3DDAabFtR9@`oLyxMU>|QknA6#PCPLW z)*ww>{hH|-|J>N#RZJ+fG$Ivw+|v)N`^wKbVOQbT!n#r2iPacMap>N1t5EkFCqHtZ z8g^DK$#)tQ`xb!Z*a*Q(3CdH9|2tRNfrx^FLCVR6d+QwB5Ot^Z)7)dpcUny*MWLF9El^pS$&bz1~ zse06S&7lfCJ2<01was>wT1)#zGEb@ZD z?ejnD@Og`tDMqye@KXWv47xd+yP;*t8%@v5g2N#(pF)ep=OsM5zBIjzJEGrtJPs0^ zM5!7YzGbT%+c-8MSNn=SX|48NHHAPa`uiB2(2dFVo*XHYIF&|pl}iOBtRLC1{?p|# z!RK?nF&9uD!)^7@uV zQ~!_t4T;$Z-jEykOjeYbG6JsNL(d5NGA7FT=&T<*PRO(v)B;t|v_M>IARZ<~vmle& z5$SD+hY6gz52sqXV>F^xaTlXsvO;nQPnEnbBWquH{U!2bvNjM?rM9;JUC|5z-+raU zR(v%Id8@1?U4E|(tA*~GeN^S$7#RDm@7jvKp}{4WZh>;39D!Q;nwu>?Y_{!t+Te79 z>9kF%@u6wLCP@Be!_7;>_Pg=YT4V0H)L&+Z3F8KkLip~W1M7uBG}&yy@3x$9hNtY; zR}8zM#mUVqexJafE$g!Y^jerXce;W@lpobZl`a0}2hQ{|eWjtW=BynC1SVkutTyGY zUcIxERi^`e8UN?TajA`9s|_nU2V4O$`fYk6Y$EQdmpy`(^UTzTvE|h3L`FOkDLU^z z{v$yNYH_cF_q5$NL?a5@8@p;#wKUsyzl|#9{Igi+Zn%lFG!;k_T~1D|uEnXpB9`UM z{%TpV9pCi%+zx&CP`2kzxwZRZd5-4Nn4s*`G;XTbu^g#^WN;fRw`pZb6wB=Y1+Q|v zmihUYvxCxl=J;8s7VSP@<-C3siLbF9Pw&-PJ^-jb3abxG^?ku+-K<^&w=FAN*FgNB+14oux9BNU}X zx**pFuPCWuDq50-GremUJ!J3i$MRRpPY={MPj13LH;)PbGMPN%b_IRad6ZSeoMbec ze2_n+oN3DdwlWc&MRI7#O?YyzXW?8pXRzG*cGB&j-#XM<6h3AxVsx|km7#|?}-Hb z`A6Ky$J~@eF$b-QjT)tH2*$Hlqwyx`^s^YN_c57s<;!2`TX}c&et{@Vh+4>4s+Le{ z6^Ehy)zteDDFLK#@VI z;_sO#DW5bd)BzoGW>u(AH8f}f+RIu^LK!g0wiy!u5pdyG@tXX?sn#CAo_QwBLL%zk zg31y&oGTC}skY#viMgb<<%#;M&^isag2d-2m0%-=&`9-&J!6l*Kc>e5_d{A%1h3BQ zQa(SJ{!YuSVi)@AZ*d)SSWqzwHw{iOW2n)SNY<9HG={1Ullo$hur@NgI$vB39=N?Z zxX$#*N?#^OvQ)PHtVUeTDS8`WaT>n^{*<&gYZ?0BjKcEp&zmRtaVsak2syNO%0Wok z5$48#G)=3gKOlq#&)>>|dN(1c{+tKZbEt1xK;jt~=)GNqSS<7J?v4^Qb9IzxRI2dU z!jjN7m8aCod}mXioGZl(2yF<}erH+6MJ#OcdY(S^9%;O)dEW4NCqwW^3+eoBm(0~8 z-@O-$rQ_bn&!e-={|R~EaZTJlzt6rmS39UaEkHps$^>Ik;VT(Rwtx0Dvpm+N$);|| zZh|!KFsBmLrXH~YE9_k!?rV^7e3vK}L<;XqUh9^Js?u}XDHeH?&mpZ&O z6nk&Pr<`84n`x5wCqIl!E}TtE&5SXOQnNJIMeo%pS^=S*tOBo723nbtLA<+ec7th0 zv2Hg6M^(7dGjm$p5q;PfK2=Q`kMNT)Wp&3=8t z96ZYh*On^R9h@xFq}0uxE=N^pSv=#cux-qfBaH_99;x|;R*cqdz5lWG8x-8Mn_ZT$ zVO83(@7Tb{Fb+jmKee0VslaKfX6t0YWAQOPPv`#TN6az7*l<8@o%f8Ez7Hc$($X^6 zszc}C2Zaw`qf_9oNkiK?XrlA!|FdZ@oO>k#+Q{i#vq{Mket9P+xn%1mxZ<}kX4e~3 zySQ@HP5AGez?}}wo!^fgAJWzI8kw_rk}s@~jgWe+{{~CbQBGec9OBMc;lkB=uBi-Z zHfFuoXAuo~?Bl-SexKEh@>9D$DxcVQW4S2o*ULeMonJ5BuU-`+3z)}s|wT2h*Wwd1hEtaH^7DsLyeX2Lw(Um~Hi$;l$xlL($1_3{zY zmEkNY%b!nHDzQUB)!ig`)4LT3posn_dGmcdpKP>xI@Fp8Zqa>Z@!qvrBEnSo1n4l3 zZwKIV8kddy^k+e`3gwrY79_;l%@t$tHDzM#N0P{K8Q1AXh-_NI{@8eGk8Nw9|KlOm zp^C70Rq}P5cW++d*R=t^#B@< zK;)}YVIQx&e+I!<0M1r$qjXx^gQmc5Uh7^gUN2O`qMrThbRcSl{7~eR4p&HRFBdyA z-|!|U)sCjzvyA-m@WmlkyscaAXMrQ=k*be#>70{%)bS9_9m~U2*?-fpdhve;Zr*`; zz=RnFDauYx?krBv{4P*d0q_(UbiVbaAxB$3)3JO=d+A2rPMPEGx56S8!U32$RRw@4 zR5g|TXym_mI+P4ZE>Rj1x*{0yAC`!#c>pfee#4SgcLp|sY4epO+8u;X9{QC2d z0H?ulGu^oBUWFj4f;Y$fhyy+^@WZA*p|2Yje?~7>xS9WUg7dXqII5}}C;DV`&+B;I zAFJ$Zg^Oyh8SsSeuYtQ(Stt?HVJz&c$VWK%2M|=Y`dEOA7on)cygS!r zbv$HlNzw;TXqkf$1A~1!c6EnFaiW7w(c5kuHaJT}@|2eCqJn2C$6VjUx4-PBmbx1L zWopwgRu9Z3huQzm zN#nAFAycs@SKV8g9BoElwwh(e)?CvxVn4MUmj6xw;2NnwdesW?ba~my>d2~Mf{&Gp zflT%E@cPp++j-;q;MZ6{7(F1Pt+pm+HpCJ$g-LuX{U!&42!Tj5PUzG%7mwzOlQkp`S7~3LK+qZQ;J}v&0z$3(j zP3o1r9Xui@9HrE;HO{rrcZ)5?#UEd;el*Mc@0_fI9k1%pjkxRj0PuoR1P~c|foIt| zZR1xmr%AaopSwaDuj<6+{k5#{jNd|5PRt+Rh~{lSNC5+<%m!|&PssC4VvdGbuW`%x zMb6iTrdNZHp2)WtE(x;8Ox^!*Yp-ImpP{HIXnVKZv0|Gw9rbHn>2X>`u4N2HkVX~P z;gnqi0F-qe_^FzkV>pw5MKaKyxn#@7cY6*}B(<909zqF%_~ewgpv5LRA*c;M@J$c=r(*j!dFiGcZY`D?}E26kGMOZo|c9tpb%HH5^HR}Q(ao-f@G z_g6jAgsQ)NE%b7eZ0t4VSaH%L_#oG3;r{-kzo+k#L@6}0Z@jEN-M%XD6#%V9YU^30 zy;X^8mV(+=WW#|BJHq<*U})8^%ckDwYGQVjoiO7|FW|_+Yy*eO0$Us0AqpvR-Jad2 znm;d;L7}-qm9q7xCWnnDdUc7Ub$+TaI7uRTe^zU)U>akv{@cg_EIfJIj=qmumP509 z``A=QnQU36d-Bne6<*D1wbGVxU!qElk5md|2R7$iZVl_Fh6dbOR9SMo+V$%mrN%}D z=}XwQ)3(i5#JV*=m)^H<_1&o4!Y6PnwU7xz3a-|xwORP-P)&dFAoZc=UrD@L!?X7) zLxiwHl0Y3}UWL;_0%LN|vPA-RR8Mo)>m^QRbT+V1%B788133c~p0M%Z^{m8x_xe=c zgHPP!=QM_)zWPs=GF`=WuUD%I!id`eJ@ty{Orf-^TRcuvnmWoxboRP{`zWjhTCH`n~#)|4>r|e zscEUFCC>_dBHaGhkmHik+|BbBl7_y2nr9}eFK!z_4o=hKIVX4cLN*Rl^{CNR5T(xMV>E=X0Xg&q1xZfk z*Vt^c)T+Cb9y8f_TV-=)vT1^I6p9!xHSVX(LHuNJ5w*3uUhwJ5==6A_6YA)z70z&E=s8QOU5-I z)^^g??7Mnb!qo}HjKR_&VZet#kiq+Y=1iyC!$QODs$i)QGX|V4>&hm7<&`@25}THK zCt)PNgQjsGHvTKg1Bs?ehb;k8Nvcy^Yxbaz;SYpW&OC4Tr!~_3v6h(yN^=Lk;}^>d zClurvS8vm=_2<;ULt~yw=&!5#Lmw{dY59MgGb0?4%%B?S>shDtDle6#8js&olT*Vq zPPY2alH#U-z=Z$p1d6;K8-vz~St%OG{08PaX%>Eeld9ve8uq}2XCrbiXs?gh5HCuipJD2Elg};o9m|K1rhO;)^a>UkHcKm zPEDP|bb)7O&H!2m*`HIexGCQGeDgvF(3e8#92L57MjP2MvfBNP!g7@7uVIhy(9KSpHfi=u)gOCZ(0d4fQ5eS&{<8tDC1B_xFzt3C5II0rnPe#Nq? z8}e^nU7JENilHdyXXiCspI^}G1Ezwzxzjzp0>)?B8n{?l7b@eLCFF446zgE1{J=Ov zaisVif}zDeOp}r}85y=Tn;StLKk93&xtEnuF-S2>D%<9mDsJ9yrBT(lL6WcQ3hu+0 z8m3J3#I!0Evxl;}`qf$&xysiv78Zvay*05UhYv{Y?;bE2WnWC@m;>sySS3W)%(>06 z9@d`>uZwuqVJA5;7=axVJl%cFOyjPc8#QNnI7y}?LWdLEeBo?g$RUQdZhdL zTJrr_zO?*RIT76OMj(C~K^~sH{03OvY8O=Xy!4}DjqPxvi* zBiO+6e`sbL)~-y>ZpwD8x4D5X{!w?4&GDynNOe&4r-C^`#o+ZG`K!0>3zl#f<}S!Y z(CqSMgw*s7UZvsZ<^JwkeSaXZx^yT(vc!RK(Iwl$=kIt~(sUTPWe}N{DT<0-k!*zu z0afJJAqAnSf0Ly%D}9y6FVwyk^}H_Wb8>#uw9G|*XrKqKK*$`2SLeui-gvfsDf)Ca zCY65Vub7KEuNA83Li;k9Q43W)*nxY0(CQ^dls!FUkr>-@&0gC<0_cOnWbsMA9MuG` zY4Q2z#@L>m*&jTUFuM#Htp!2nxY>r?5h5As&F0_snm=ro#*-07#LSlL{Ys=iF{pi> zu2U8hssN;h?AwNES3>?3sSwgZBu1LTS)Dt6lITFwW&YuwA+&uHZlhqNpN%d#v#1DW zGwm(GCoASletMV7pEA=SCHqmcA=$7VTzX|c@;nE!Cp@}k{du8*3Zj9`oO!3$kP7~) zol3<(`abV&@Lx8vTbOl%%xgr1$V|TK>d|#Qnr-lTI;nerd-pwMq6PNzeb4<=4mXQ< zi$?WD2GaYdAgP}-WS7!fr5z3m%=H_wAH~_DJ~zW!6G|QFns{d~FIT4x4aYvd^d>K*gM`w@LHp+ zT4gUxI;dWF6R+tSYN>>FBwzrODqdI}&tGS2@C74nEb4kKp(}c(9Q{V|!4@I z@u%f7YjOhKC#|;zb(D7RzCZ9#Mv^ zQ)S|(c#b(WwcDifI@yJt+Gx8TMI*MBLQ1E^bwJ$t!rJu;#aeKMDm?IiajW9K4O~7S zkDzC81M--8*#ESf6t4$c%8PRT6*K$CDQJ%tlt^$ufVQapZ}@O}?_ zqH6vd#J-+ey4Ow27+-g3+;IKYwISP*vF#svzY-(3$`6dg9mf9XFxmR@*E(qK8Tq~8 zu!}Eb^NxJ}`&(6i+~3>}kE+s&3X1?f8d`g{ah$&(7DkNA=(~AwRtq1oB-@~L{|v%{ zp%zL~;U;nN7%Ioqj;x1(cL9X|QL&>Rr|UXhFZC%cEtCg&|2Ps8W3g{il~q{7MJB$O z(6G}Q^5j*X<=tw+``X3P*S2Lqo?L~9i42p0pk1J%hFz}9!vq55Dq#%vMQbZFMwWBx zK;;J`meLw9oW*4rK9a9Xkxd6qaN-sOrJhO35h6B30qiP&PEoZSVW(n#6Xrqo$1tYg zEr+I9P5~;h>Fx5ML$E>+Hs*}ezmYii+mt!En#IOETn8)xszj@V&*N?zs2DhL)w8~p z{?y7dCjD^YzjIddg+kNLR4q@(0VND`Th>#EQojD%+qtJ*#!EzIWxO)p5{Re5316O< zo>KV5HP-L1u0~rxVIF+O$%~p&?&S)a*=v_JMTdmX(ylbUC*^|>F4AXNI|GB{(1>iPSh2v$(o*+a+nj;ifpD|w z*y~aR>OCV5SyT9dp$6J(L!kGh)Hu>#q`>S9%*=;7fGCM&(H!4>m%Sk^i2Wu^I=4dh z&AeP5&T|;QTE|zcGu2^aa%_4oO<_RxiY=*)Pdz+$>!`eSnwk^_P9M7ezVb zkfDB=9JfuoRK2c2EA>)t5`cI0?>&{HSw~rvpTFaX9?nbi;)Js_EgGF4KY!1cSZv+6NczTueW2ROff_G==KPpT2#;k7CgwhL16m{U?Z{!ta0m z8X_iF_v*{!a5RHF4Fips9O9K zUR1DO72G58u6PqHFOmI1&IQm7$pOigTl1%`0;z6ms(1A~ZYI_WCOomz40(ejbbJ5L z!el5Uww~9BDA~xZf)R`_SJWn)yk!?ezbXf$d7fLR^o|rWd8I>WE_q!?W(`NBb{sXp zk>WB_ad(#dgkd;dg;5wxkm0|7l~a4z4*z_m#R*U{m2EE8XeX(K9(;T~a{~r+70JCG zFj@K7;?A(j`j3dg(DLEHAGJkWi@qLX6inWdL$5a2y3 zuRN=2Cj3XJK4iq>{gJ6zEyTzU-*@E^`NVgNkfP<_c)!StAyD4;+%rc{eE-xbH9UB> zy`a=L>sk3&vyiV74E!~qxYRR7{N3Iwb9o2(94yX6Bb>~Y-K~?hUH#gt3zQoE8CQBz z`g%Zo?V+-Ry>GR`(tZJO_a7mSv9+KY{~y}4EgB?aM% z1hXM>t1MvH5_~tYdcv1*N?Fjb4Jr$@hf{-QK1$px2BRo}P@KFrT_9cO)5$HV(iNb| z+`%%T(%`|i|&Pz7!Zh)k3im@NX*S{lx}&= zwKlj^F~=PchaU_oq!p6TD}MCQWu-7^IoIlOm$$c|mcJya(QIVUsSP5>bB0ZstfNQ` z%3vA?=t>v`e~G(=!F@1sQ@e#tOR3ft;yT9GlKElIGw@ROS0O#!hJ!7RL$7b|Xmqb6 zRX9CaJJ~PV*!O(jkbu6_|H2}I23^Gvy**>*_sSkwp;vrWb(12D8;5ZT4h@P_yjf;W z?=*W7&Q)P>Rkjlp&`o&Q`$HNRt!EY1F$EYt%{!Evt|n!Y&gAy)Hlu4R0{()}7qc~i zK1i3smK*Fjg(#dvGePXi4uJ;K58ow5W@$815JHITw-tC~!uX20PpeR^jTtRPBO_0q zT+q2nm|*m0Vtyz}sgVT#oeq}@oUHtN2))>n6lhwa`j^+&=)G=tTA@*<^m&u05ZbMgoSa<=bpwD5MuTQGs*ZNcHmb z*HWzJgjf0w+Rc_ZZK_w3CM3*iyhFX2laACtmv93m&lrt#MhrDo6#tTWc&2F`_e>@; zc%AZj2J;h)BK;)!wj*n~&p3oE5gPVu1HnFlmknjavqq3DHQUClv4od?Ey48nZSo|P zbz9u`HuVOEsUKyLKU5de#yoa7^)TI)KPl6m?rVH$>NiCs?V8n|)R13+G|jC}tW_fe zntZ7|MRJt#xzHF*(t&xXh#H;rUU{3X+~(fgpAkMy*YTH3F17uEy!z%!+Dv+#yc4U* z{vqTrDI#<{r^l&O()_os&tl{g!`vYmKy&xs;iT&U=Y^2nZ<|%M8;4Dy2wB4F`ST-^*I^3RCq~uv-qR{y~a}GgmiR z*T+4Hd|Aq!jO@=P-T!{}oFM zQ{_@ZfWc>1H>876E!5Rp2csYBQy>@|&mDOM1j0hmDVc7Mth0xU=f1(vBFO*Foo_T3 zZ=2n;T|$SE3FBogr>;Ux90lYb-T^?Q&_DohJ3m zf-mo3n#72LRq{U5YK`0MN-@7dgUKkW^M;B*iIXYQTq(NGuaDS%_5l?5Cyv;ri7$H4 zg5B3}4dMwoAEjpsDWl`2k00sCkN1^5R&rrC4G)EBF!42Y$Y%xoXkkhvV9lNoTM6Bz*%?C<(BNRAEa*w%MWkUP4+ZS6f{yHz<`sksP zMq}IEz_)fwXHb$m-Fn=u1&fY;IOA^C$QUC)&0oqF+}B}ypE^Eq!h4O0+}0nHUo19y zK!^Hu@!Qs!A`Wi$hloAg#D=YIXLd_c)1WN!$y6ZlzjI>G`+9icR<@}GNQfRJN$_`{ zoKU(ll{HqNx8T-t79WNreOB%R{otZBp>P7)#F6_X(?JBhDbIUYL_82PN(jUAA{>|^ z%sIzXk-2A?C4M4~$h=N>>5$nZHmjJVAvu@PHPoG8htH`6v)mJO@#8dCWu{{Z%`~KD z>syv{Yk`-3es@`-DbMvdw%TS(FT>D1+mbYuZS@hYqgqNlU!RuLUdsbmd-s8jIZHd% zH_qRO<5QL6MmNUyGhvdj`Fg#O9gUlx8LBpEzBEP6;pur(Bj7wzJ~}^WjblinUZsJ1 z42p0r9og7FwWHc(jb+{KNhw5(Gz$#lD+>IuI<4U?sN48$AiKMbx2lsNs8Il2CGQ4w znT?^SLDkgZYttY}A`phM_vM4Sif0UwEiIGemoL_Y&C}Ge`vu*9uxqav)Fn_pmg zsW|Q_a>JjWGO)bU1V34oMXe*vT)>!)^(Bpv)8YTlnI8W2N9Wi!-$105j#vjDA12h? z1WvF9FfZrdaaYadnG|gA_X58=sP|Le$|C7EHddLEx(RcseiJv8GhX%p{thPnqx_EB zH%UK4D!cS4B@0lc6_X(JX4e(i-csDOX&*O+>NM4YYl4SAEsZlnp{XZjx5q#^h7XTd zH|7Lm08IaTo8Q{yynuyE7T)F0)Qh~n1pGyJXLXSh_Djc(cSD2T>+-cSyme?n zzfqH!&Mm*%;|3F}LK=7+zWUEc+tO>xV1k>gP`6<=nUpBgcedmWq@s@nJ5|tnXPV3K!cwf^8>j;Z<$yH)rOW=vYl?U{??{++1xIcA=zYFg;y2x?q zi3`ty&r46qP-_Y=+@a`vGsw1RCVv{+qO35q!DM1sqDB6a?8Lx9pJ$-Qs(5G^%htSN zCJ`P(y@u?oH7i(Oxs@MwvmiBl3U+_+s~raUguiT++cod$j|$j9?qmtWVNqpFHJ9@3 zdYh|4Cq5fg$T=6IFZQxhQ-O(EM4QdCc7Efqd7N?&_TCO>*A`8zXo~Q?Fait69hMJr zLnq6wN8@+^mhoa<-ePdWAzvM3jOj&`O~??;Nv(M9^rnsA@E-t1+84}7o-R{&(up^? z2@d#tzP%XfFmfIITA%A1>(owWM=x{3=@}o~VSy!=hu$de%p$*^0x(SDbpnREemm4z z5qdZtO|Jy?JqHi{cMezmWE6J#wrP8cL>735)r;;l*&LY4qtJhu9r|Lne$*h5tK=Ni zMVQou2P$5s&n&t|qjiunjTfoY$S?hU9nPx$ko z*4Y)bP?#@tJ-5TyP&{wrQuLTppt#r5f5lSpq&l_JaU!PdiZpUIOTBiXp~ZqIH=>Zw zxc?w_&)N#)U!EaSxzYupaP|HGd`f5@YeyKB)2{ZoJ^nYUu~X6N_hj`}7Mc_YyA4;K z<7?BEJZ@vrEwYA^WcNG;_7B;lNZSIT>0(UX0fn@3)SR3pP;TU-G3ELC6|Y4e2tHMA z005<%j@Ft2W4dO4Oc8=}l8uW+>Fhu{t2n}%BN?9NfpDPc82j^=I|%r_E@I3IbCpRi zJVEFi>?LiQs^;GI+32JOjfRC3Us2#mD>Q6jq8(9OBFwtW+=&TighsZh0dLTe`xdi6zxJ;K z(g;28TfPZ7W1~~12leehWd~8IVMT1%F}CpNjc0Fv!*9#?CO-k4mGx>)9`EU1(57+o zjLg$w{yE{VLT2NauxlGu+s#i=eXryLOeSN}m~R>(#uGXJYfRt^Dri9&Yt`w<0l;cG znHi<;Z9WcdSC`QC5!j>G9fKObzyDE1)keo$QLBn9`fDa(j=KJS8i(02xGGwv8Ar3a?k^CSjCli;hd_IZ_xmh89_wA*j=WN4_?cC*-gIz3*$2y`+~60I ziLKE~_|Q!znw(SsF0(!eR;(%X+xIyf`vYurlTvS#27UMl2qkTuCx+z*`lKou*|kbp zmR9t0g;*<_m0c{Yy;57@mM?kS^V6O*^0BD&LjujKQl+CiZF~FiNVmrh^J0Kjwz3ppptRCYTP=mUO}YwzNHtdGXHc-(e|HW`hS%=3>Zcf66)-@O2>V-L7 zwf1|5s61;_<|o7+N0OQX(JeTj1v9Li=DX};NP=qhBp)Wpn|2Z^{KQsh|`k9 zsxS$Kj;x{ahfU2ITu@0C_?|3D!2Rq4I1ZWdONXRvK`IpDKH*}|~em-lRZuvnEq)y7bHZ~2G0G@*MX z1QXP%%NL$|MYxk=QP$I}agJ^`1>&2a?z^A99JOT>xGOwf`ITspw;C*HA?fP~D()tC zUjjIRirr;BDXwZB=n7ff$FkR%JS6OX1k~ADgx_XfsQ9&}eO%9rhDvu!%vN3n*@#Nh zUWz(S(5}0+N}LN`Iy?gyZe;qXhsEPQVoKk!5YouJIY#a$N%X^{e&__=Y@&@na2X_5 zg#pR|YoDEM95Y>KTha_v-7KZJ4yk)-ul(S=hJkY9BSqngdK5u5NQw5)$G%j`GzHY< zN95sbI+z-6bjd*ue%YAtI!eFo^O5!Hk0fEF)p5pORKiqqfr~ymugk*RH@r9sBu|dX z`O7&?mP2q4q*W-o-P1cm2{!K6xU`|_Cx(kEQ6|zK_r;n~61h6fht0w!dCZZU?a<{j zE*6La)wTR#k<;Asg?bp|CIfP96dfKajnPMf)pzF9abW1t_;4w81*+;UeYV!uSPnOY z$z_^5rjkzY#3u6MVv=b*s{Z<&|id%AhQfF$GRepISJ;am;BoCX#@nHT2 z_bD%`FnKko)(*B)(##B#X~4R+T~Rci7#{lS{)Ww%G%w>9fc*VLpei=AMbh_E1>bC_ zsu<*hhL0Ulju@G&!909gt??rNd0`Fn-$A=mAQ5;+H_A*kM&l5&ebtPg)7?cWT!X!r z`~-qWZ#oCF)nimhhtIG^6W=emlY$HD=NLQK9`)Gq9i$A&Kq1{K^q97}7S!%-YMXkq z)5hm+45rOwHg$;MIZ(6p;@CGjKw^9yuPA+DOdSri5>}Z@*OB*Dz?|KiOo3T3LD4X9 zd8(A+y@|SBx(k4DB7wN{OLp%jsiV67R0iUX(j(3>gniK8QAHi1R=iv%T{nkX`o^3q zm-DB2VYZyvJKtOwu0 zZni=C%d||vtwOk`+}j+(3~Ro;h(VfkoNvTG4ZO{Q$wIMZRsL`fRkZ~9Eosk7dAIhh zatj}%cf)zYezyV0VVZPQz9s!D=a`xgEa9ddp{4mj8>VXgNAsRySl!{VCpIKiY-i#?2~>dSJcM%ody*{7!TdJic7h~wmJx&NG7@tW za6edtzaJ2IaX~T{U$Fs-DM9mt^E-39c5k!^VqX|H)SP4*Cn~<2UQ1jJK@67q9$lb*VuL3*!deLNq z%H8k3T4lS_ukqg*x=7umhOv6Bm#QnPfBlRm+niJC*vsd%qdWIHEGsaQG{M$?a7qxV z3pZX?CE}Gj%991h1ilj_Vr4yLfK#&1ETzk@yKHE z@;LAR2H^sbzda~H4KpfTRbbH1Qebv*h&OH2ogO1t5r$EpQ$rtIf`sjKqFkef1 zh@-3;iO)(0y>;PPpsc*{#pp@%mdu#!3!2_2?g=T?t5blyW+_9$jnaPt&Q7_-h*$^r zdF8b4@sxCnVflP?1a0|gf|mw`wcf4e{jX>6?C^^eq(Mhw8Y_#vKqEzFuO8~1|Gb^N zrFt&Eb(>v##ev{yg$T#QKi7=7Shq6FQ&9&|0RD*IzG>c2tK#`Vs?;si1H*CZb)C7o zZ?VolG5YPV*K?gT%^i+Iv<0<9;aWh)<888zHZ?YMR3)4qHlbB?+1i~ikQ-j8;$)r> zDMG|K0+MGqmiaYLKZ-eO{jE(gCr4!twf8hGJwXpd9Gj zsmHCzT@N4ns6d7U2PbT?-5jX0KikDzx-Sn5iR4$rEnNojt@BO8Ww~kC&Y_vJ&#!9U zZWG>MS3W%FID772w*8+I5(m1_$*?o2{w_S(Id#vsm$iO4WnPt4eAH)e#5dP4|Jov9 z5xpVraMj_Ck!mh~pNuZywL2ffK}SE(`ku{e<#MB=#3iBj3r|RggJ$VhlwHVf2?`Fg zytP0cG}a^}IY-MXrUX_lh?Be+l&5j!%n-Ta`9U*1c~gaB!_Da|HWQi4lk=X<>Vt@( z(c_t0myK)dk0n&VRd0fnDt#zS>nwRw;4p5fdAL*o~kh+(E8?{}phv044C2 zd8PjAW-A~oF{GLUk1P*BvMB+w#S3oz$|wEW$M|x}HaCqJ;`Dy#X=wf}UP8G1W=44H zMu3iz^b=p>Nz9gzL#X59#lh_g2(^i{P>8FG{&Qb35Hp|?z+0fXIJv68LqD3a%ov_y z`$n^hm#=j(R5at_iO2mdPs&`-B%170<3^URz=X72Zeq?4C9ZWz4uHn>2f6=!4ED2n z9pY?_4u4=!Av-(dDwygV0rWd`RCmBDL))EKl>jHBKTGmd=M-}iDrWfyzVN?l{Rla{HR3RQ$( z6CqTt`)P-M3bKtI;D?L)ST{wuA1ZfrGf^G7*vTpNL+lX7YhStWJXryz&~2JmrfXU6 z2plc@ccTcPz$qzb-@S7OoVx&Gm{+Fc@Z9{Y2vhW;Z<}yyy##|>LrFr=0rThm(WQg2 zFp)>vtOu~@P1M%Jlk$0hWS3~>+J={bYa;@)mlRNg6tJkSUNoN$-8wggiKh#dEP0~3nA%cThEW9IqF&QVaLPOi>idYu#_+IlgIR&o60oootoE1{&F=aH;G5W1sR zMVfrlH+*+2qp#rP6w`x8RHx2bh0zoH12gEr+v0hiQd=sMfdEH+b-zm#60b3*AEld}9s%%lr$keZ8i_k`Le>f;&15tL%TuJ#wc|l zYX{hT3Sx>pFQS93cQgm#i76T%=3izH4Ca84LayhJr1ed6td+B4KUEJVENU>InVtM0 zkrO?`+0O^FL1PiZT;>l8XV*1`nsQE{)o*6@5|(OX><9kjHZmbar9TPmb-2LF8SE!L zmX(x2HI>t*wmzdgaVSTBp-j2-hd|ccWfT${?s9{s6xVaHK=s8ICD4`t;4S@N$e+6Q zTa%~-3V0EM;0HUvD%8oV_~cAn{{HD4;1{&OFTgh8QK0val>HC6Pi| z*z4F&4+CX%Z)=sco(;+=85RLDe?Htud1pbF)s@xZ6gD%$3ARb+&3)CRRGr-b^J!$6 zULGh-^592(PmMxwJKkKsy1};Nh>g8_pHh?dzB@X&xH*<#k(^@wLhh&&TK2{O5!k8z zV}ZBKrlH&JsOUs}5e%65o3$qK@@`O^x?-1#Der%0dW3x{I?-Ot>bI3O77c{rxD$O7q%DmSs z%}rx?|0=c&ER?@{AMDF|>Hj{g_$K{-6_cPYPh_#eamm7|2uvS5%Pwr+8$b9If6?mW zQ$=1(-Taa@oc8w`gv=D#uCl&Aq0FXNO^h)!|2H)J*zRU#?!;-IM4^Ea$y?Rz01

djwJvmB!+W<|58MLQ?O^5*k3w(`j2&+1Y` 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Π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�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

^pVbHw^c|mkCB#j-#%Sb8FMJZt8 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

ClCl+Y9@zhdxLk89))4lT(YjPm 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

+^>F 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 response.json()); + console.log(response); +} + +loadCourses(); \ No newline at end of file diff --git a/public/scripts/loadCourse.js b/public/scripts/loadCourse.js new file mode 100644 index 0000000..0cb3e17 --- /dev/null +++ b/public/scripts/loadCourse.js @@ -0,0 +1,18 @@ +function loadCourse() { + let url = window.location.href; + let id = url.split("/")[url.split("/").length - 1]; + + const xhttp = new XMLHttpRequest(); + xhttp.onload = function() { + let course = JSON.parse(this.response); + document.getElementById("title").innerHTML = `${course.department} ${course.id}`; + document.getElementById("crsID").innerHTML = `${course.department} ${course.id}`; + document.getElementById("crsName").innerHTML = course.name; + document.getElementById("crsDes").innerHTML = course.description; + document.getElementById("crsCredits").innerHTML = course.credits; + } + xhttp.open("GET", `/api/course/${id}`); + xhttp.send(); +} + +loadCourse(); \ No newline at end of file

2E9N0ePwQQ!PJGl(ni9gUU038cPEz@>Ncap-^= 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%0Dd(=mibY9)Vh);7M{?R6fqdh@$mDNCPy(7^hH#r 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�RwpK1$Fk>FSpvu_iiKSi-- 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%0Dl5 z5&10FhFg)uFF(f%Epp-*y-e_V)TibH4!p;4YyoC5fO+17O8GoW^t4C>7HXp4***}h zEtTY@b;j~}%atKA2n`a~_iQM4>9M~7MMfcIG#>aaLr!2p>)veWJ7|pbJch3l!BrfF_ zb8M3Wi5EM)Se|d(zi=zz)rjg45o-=xQ$Vlba?KbgJuntJN$<=(K;~CsKl^x`K5)lA zUv4+{T7?{T&ipiMd6GO0=&L3tmN$;yh^stzqXDE-vDX6nBbu%OqZR+IQrryLvIKSG z`K@?@?{$hxgk{O;>1*=EcpH5jmB!n0%ti31`xsAr;nlhx;6$pT8Wcky-#YGOn;q@R zvbYJGZNWbH$<^W`Rf3RP%wyXl)s1E*x6oz3dNGRJS2l~+A8k}3aBAVV4GVZ6!J$3V zq8eY(4zS)EV0hSh%A4E-f1Ai&$IrBZ(@EXCO*~0DWQ#bkWj*^Laiv7c|7BAS=XII( z*-e{%kn2j*t$R7WxUE>UKz30Nm$V*NUc9C6y#A@9JVf5Te)_)AI(aXuqK{Tx(wm#f zG%498`uL;!<@wx%xB1H?>MK((o2CVE)~b<1jsZqImuJ&Cx6YB{|E1}#jB9GTgXVCq zi5al=D>?nkZk8MOT`!445-0NHa2l-2k5EmJc=g~CbV!(>V)D8FmE@}XZLRAFX^xrQ z`;#J*JDe@2rr*aHL{CLDK3WFcGAXv(pY1)6$%f$140}|u zDWPuX_SC~^*~@znresfVf|oi+dqf!$U@tL?(`xS!ASv3sgY&f2h3Y-`_ef|k!@Zh< zFEXnGzgmjLQk-=6ov-xzJuq5QRBd?bGNWzbT{uQK(b8&5LCm~Y+G|oGg6nVZmv(v3 z>6mYS*hEUY9c^eh_^q&yM<&gR5e5SgOPMsb&QI7s#6Avc+za$F)cN2A`kd%)E!dPy zKvZZvspfR`9vfi?TB6M3JA@{DTTDviCxXktN!}G6!q&2>bJD5Vmknuzxjqq8u69L& z3sYm{b9d`2@s`+}qRFzRJ4&fa?Cr8x@zXu_Bk`dsYl)U&1DUb#e11Z$*$q(Jj5BBN z&vEMu3aWpK*0Zn5c#Y#XKs^vqV^`)Xh?R&fHePEc1Z|Y{0oOG)mK+ zTox@W#mL!iuaJ6sHk2J`{_@@NFQXxOvje>|RhHq_G1#^t@px4t^8+WW=pS@2=fa*)aR2dLxM zjpMmn7EkvLC_mX%ULa)02(kxhFH@DBkuuTC?@+68l56ePZxT&|{Ix&4GA4XaZ6{g1 zqz$IPV#d`QwoT|}kg8jx=XGsdF!qmJxA6tPH=$P@k@V zh05hrwbl*79$O1D5lZeRi1_fN0Ro7bFXt~QOVfx$^gQ@$xd4ATydoir=u+IsFYyS)eyW^T)by#j!#IavGcSoF(OK*f5*(A#B5(PleDY$IKzjY37ibVNTglgvu$y#2m`8 z2<21}N;-Uf|A5zTuj{(quIKY{f80@%wy)N9SR-BPF(oB+xg)qmkaZYZV;`k+V_2T4=sE$IQP6j>P38s z)zw8EY8a@by+AQzm@ZnfrZ|N+tT7M95~8BX~n#?K?nSsHA>Vud2X> zt0uPO-03@JGqX?ErwU;K^58*AHM9X>=cpDq7P_4Db`Og2?q7eU-0poRnp*292APB? zD?pTrN*Y2gQ|lTZn!H(9xoml3Ykv02B9i}d5A4_b?d?fxCH@qId$kpfz|$kYVijXD z=u-!(YF}KbU_;J1WbGJl#AX00lJk@jl#@!uB0aRA3^7pUm7lGXxVsnCE5E}ToeqNw)d!r!o;}OnN z;UspYhL;<@Cv|V&Uh~jgdn@<{$G=nBqddg`d*5E28l`%(&^!i|n3vdyzu3f!#5A=3 zHyOCw$qfMF&p4Y)!juiTIwDl;&i@R+)MsRB%5_@DT-Wb($gnn{K$NBlv}%=8>z?UQ z5$i^3$bo+fKCTGk5P0^{m&s#kr;TCq$?szoD)Dq=`lJtTuV6uEz|P%W`VLH;ArgaM z-lIK&SlyVg$_FT-x0ns-tSv#y>Y2cruL9SlSu#Db@7=KkuFC5iXfoD5?|N`v!lkkX z%)e9eIC4YJP%M*)Xw91O)unG-H#MMkS`}AWcW=RZex0m15P7N8t*_o4)07#Pr?nfr zvP=jbt|QmMoHxD|$V=UY)el z^|D4+U$n&!9GTwUn(NllmQMBCl9&rx>I{C@`jbWl2+p?wiUTJB|FI7mpS5V1)KD8+ zu5(jNm|*lOxf>#q9przc|2`!Y|%O5ZE@3P zLM<6@hmrMwqmCBNAIDWyC9l={0av1|$}@e?@(mT1qK`XmSO%2co*;kqLlg9)hh4sM zi}bvq$gCTR(=k?`_6}j}@S7qg8#(LS*;U?wqrE6*NOE&d!Y5iJR?<=iI_Es%myx`4 z#^j33i*(yzFZsACO-!q!Hm!Eq>A6$sK*^^qCnz+d{+Fz-Sr}8~Zkxwq!uh-ro&AJ2 z3sXu}7`z5Ts(F!TO`HENB3(T|fLZ7A)U>apPB|{Hm*!9Q56&#|QfgB_KU(o@i;ZxM z7EYgMh^2Bs`E`rTS4Zu-m%E?-61n^KNn*;wB3>L*Ts!OydI?GJ%@ng#H z6cRf1osx%uJncAZ_C~8UJqEuf;Ejds4&nfPO&mJ!d6j%Mto-P&+!p~LzXxN$JjNx_mo0IB9p(@;=pm?9Hllb zd>7noL07Q;cM9ohei2R90|J{g!^?RW?s8a{8edX>$~jv{JgWr0xIM}+*;FWa^6iH5 z6N-fFJ^4jzK})7vWJK6m>gXdip7Ie_8p$A^6MQEs%&2VrFnQ&AszAF{D? z^7-#d*Jj%}o|QVA;k1H1+QMsH;(H`b1EP+LpqdN!Te^`WQAnWb22yQ&7>6p7-}gs_y)AFtCgX_ zWjg#}DaWBk72@Uwe|pp>Q;GB85_rX=;OWL68*-WMvbDWPe4AD(mdOeRK!swUvbv&) z@n()LH#j5I;*|&z#7SgZsToAH@G`xHPV!}%Y6;hbfzYsV~oy%(&;_dnYI=8eUiKzkwR zj_=|5*iF_@-JqFmeHD45J(#bw3oQ{GAb&SIBa-rEjdA%|3BzXaaVzZtS|)*X>B=+W z0Yc!nPC`!W^Tj!(rAM(U3lT~Z`*}ff35_|d^UtLSeC3^9D=d4K>Vj2J5-~ujcnmGC z*{;aaY9fILtWDWBVtwp`0PRNpTGOA}T@>MNh>?)v67{~y>V7{iKtWolp~&zKi0V1yu4MTF<;U^eF3yxt z)zEHWEk)dZq%2HUTz8wzZR{ca*^2rds}#nsdqY(H;(S%S?re}8rK=^8!%Ch~G@xX< zGP0c&xn%~=*p*O!m98J0TS_-~myEt~?MnMMJvNz0cwAG$^r?Lz6WlC>Ng8_D9_}Xt#DZKCqueHo|6V;eX;XpJSsX9Ck zWbrVNmhZlz1IB83wn2J-r)242Cy3nc=mLv2#|GRwK1l;IJn~$NTSKPf`;#Am+g-zTl-fC%{yi8p1ilRzk*ZEvBft%Uu|{(Gt-7^V?q4r_N;s=mL77k z6|wd0aTNA3v;eUi5uoToNjN7^lWAPSm{lvuDYmG7_+a!3YNJIeI3!yWR3}BJZuSAs z#^3Y)5YLX8P>1P2*e6iBt*{ z72}Gj_%&Y1*jKfN#C+B1;A)G;@2Sf?BD$uecd*b2BsL>8_Z(s~IL3!st#|a6TwQgN zspKVzrD3Nq8^6Gei~-pYp~#d~1>2lgjUij0adC%foiBWL`-kJyD0OG@wG_2z=UhM~%!Q=zHeH4w z4~dDT@;8`JYJtQ<#S*YCNBilF0=@iY)hBrDnj^^9P~RFn<#BDkLqTKldLhUg8*z4{ z_oOi1#9eEKtmn#GbMbzucze;~lACJ+yKtcFS9ZNnxTaK1m1MoLiy0n1&8HxNNU z0EJ&|iAssCRbe-#r-2mbTxMB6%@KnjkBUgA#y~szw)?f;&zLTk>j>dRUswX^PsfWC zbqOPc+}Ve_pV+XmjQ&N2EgN_u+XD z?7i|W_lmo(zI?kBZFLbpKy8^KzhX?KG<0}NbVtaX6m>>nh83NyO4Sfw>=LRH!w4Yo zLoCxTkW_sBIw>ku5?(tf&r|ldTo6&iUosx*DEA3{i#3UC~IcQC$oz&aCmj*jZsO_jO$> zfc^KE2!LTHddpqU-cei|_N5cN0jc?Eh;5j&mpUltDeAOw26j(;k6E!<|99%6F8(O5 z4BrtNbu$`qWk~BLatpGWtqKHn3I?e#J$$YuC1*J9ChhY-k-vd8D6W|elK zPN%xisDc}!=AJEzowrT3{3HdDYbu0rYtFg?fW5CnY^=G7OK}?lxe!KYfc#<6g@2rJu_DSB}f`7BNiDDFERcA54Z--1S;;#;+I`fjwVb*`ifIxHLBL__4pYH{ zeJPlGC5pfiRKzdZIeao-7SrJt;v!M?>X7x~$~$6NsyKg zrwwsAl96F}uoI>4OO{EMW#OTrzbyZ{P?PU+x?O0Af!dZ+`VR$dU$xZGN_ULM(6Ccj z!JLZ7u%7g0v#~+pj3)O*uepxItew2e8BC$jcFCpU;VVf3gW7j#dWcE#Nt$=aT9);_ zgU-2TryU(t#3IN2kH%p&QS4=n2^cB4+D;g~A*lHjeox(3HvAJlgbh+EJEe!(J`ngb zDG=jS9N|7qyJ0PxqWpca;?{jpEn_{u@$pT(vZxVZyFd(e>`}-Zo1Wn7>(f59t5nM3 zbWSbjvZJ%V!m*Nc^z4tjN{y8@0Ug1}6&}u71vyhhNAku)hcxq`7AsXezing%4|-7xWq%lMYd$aeVSCXrk_8zHGUQLSf~)V^uZ7-^)mGJsIi=X-7@z@;Q# zJNj?V6G<_v#Rl^)yRLf64EHlat>)+mv-s)MpCbTkfD>~{7gu*sQpcabRsN=k1A8#a zBq=z|3$G?UQhaW{bH60EptvTx0tvuR+( z**R0Rm+6?7%G6u0vCE)ZF| zF6fy(d!ngX2_oo34d^+mccorEf36L0rDP#|Xj-x-c~f1d%2m8{e00@P2^4B9)Ru2M zoK!Lr6xeS29NBo9u7xXUg`_3@NKK8*taGkZB`e!Ht=E|^_}Iu6Trah91AHjpRV@1s zXTKm_YUvw3!`hG9FKfA*<(S=fyt43>%-_yvcQ$$wjSQQN@ytBTv@?K$EF-co)5Y3R zW++@-_07j#;m+5^t}4EQdn^(yKX1Z6@Q9HfthT-R*|wRihpm1%{W0!nK(@?utsayI zOd-3cKa91m;P&`7p2xIAH4|?Hlgt7hHC*1h{9DTXaf=W(Vt1cg!*&GEL-B`RrJY?$ z;na=X>~#^$k$LNhNe8!uzP;9y=YmyYFK*P*ceTiRG8i)`Ol=@>puiYHCfn`a}6%Lgk}oqfc3&z6ePVogTD zqPpV?)gNm*OIc{&_o4EA!n`-J_^hrLNM@Z1r`0G`7Wiuw7RxxiCv5^D(O+MTS~#y* zsBCJl9NYbPViR^J+w7Csq?L$zC{^o0=G3P#cx@p^`5T^z6MouHk?{GROz?Eu&BCg; z@;pEFHu(oQJBQM%vLcX;pp>oW0=5=5r;&$wR$L7l$KvfAZy`pN!P-QeuEXyHf zWry&_WyD=t>u(hF=CG}SNWrn>;F~h3-Jlp@fNk9>VqFraK2YI&&rY_I)X30~`wtdQ z@%nH3C?EGm9Uk}=5oeFOQyf$~{W&r{d7DLzs=Jy}ZB^8yWq&cDG0h<`d{ogjIX4d3 zWn6TA$aYiD#CGp&{#5Rp(rmn|ga=VcBh+D zTX3DAKf5qihzed4>D%C9tp={2La5PGKa+_u8A!&1tQF3}#JgrkYRTUo_xlc@aSXVyEg@S39*cBG(mgdDDhEFx_9RnN%b z6<}i=Pa`~~xD4ufX+kdq=o==UH#EldIi@XMUZ0e(c&AgGtP>?Wf$bkeWQ^Ax8=4*h zgu;pB2*d&|37|s1%k8kS>Op_ZslsasetjeoBCqtw zxO=S4k~l7`RM8oa%j;3Q!k^~&L}iHN#OiZAs(zN5J;ul}e4cKz+BB_Y-xS7on4>>u zw3*Q7te%W~sp16Vk#&Gn9pd7=5L+MK^a@IOpwShIGv20}vfz)xs$E4ocxyni&jVL{ zs24EBc0`lcCa197?z_fhzqyMo!Qa&OSG(6okyP4j;`*(Q?DR?M0}KYGuqQL&nQ{3A z>!L=X_gl(GA&-?pPU)hi9WF7)I-$3Ok|Gi-G;(sF*J+TF%L)|J42*4>E5T&M-7giW zZ^s-^r0W!9-%`n?ys>9as`v}+G~cLzGjjDm4S-v@Jr-GwOP>%w;VXy%6Co44=|i^^ z^L9157-!WD88R9Zeuq}q?Dx5@zR5GX%cyOkzdg}yrc1Lri}uzIuTx+0wBU(k`BN`5 zfOp*^+g`iP_Dw#k-nj&0t)i-_J(qbW8hUhTISf$)df~bx36j`nxktCyW+ur&hgK#m^R>g{#1+m zs0haWJC)Qiw(}*M-PNS}E9%kPkttP5#oc7D#_kM)z5R# z2C!xC{MAh?L&Si}=RC$Y`+5WVF{^}$bx|ACQklbToCPuM>;c;vOP4O5k;^otq?~+s zNhxOw@GY=S3nKR9nb#Wep0aQA?Wy;l=GXfqY%_1FiIjgby%*$yu9JoQajJ>(&sWd9 zgY6iU`&389h+2s&1&o8pxUDIY z7n(@q8b!iyzd#iy+A~}UdMV$i7_3kHM7M91k^1KB&@3RF*xu}u!B|JZe|64NP z?rhVk@b45~IM`}LId@)M?%yeZbIC09^OPNIV$&1W_C@W}lkexhgf5KQ+Ex&PHTbTJ zI#@irnX+_MsKnL-$NmE=TCaAyaTXqoL^rN;N2?L8OVWks$mS(53a!Be0IxW!YxU_l z`YXqsBAWb1SVI~p-)m$B$k9RhZ+`-W0+t0RJ&DdlKG15P#fNpOk8jjkfqUVTLSd&smj`3yFR%gaJD^aA-Cw&4?76+>a$REI z=Fg8P#(2v*lSiA6d5g6I%Mo#<^&(DWkiUDfQ6wtj^*Zt`5ub)(4*?_yJzNq&#%nF2boHkS(M zEHt=E1L3o<64%FB3O-_unxRN>!QPvz3mTk`hyEEr$b!sV+r26x%uSPMeQ-yq!s+$? zzf+myCM&}~^&oMHP^f9hA+S!eZM##bmAs@yYO{?5>k1j~%y-oU`^F^A7M z*&FWjQoFfY0~Rk`NJk}8CA$5ubuI7voj|IX;RAPf4@SBzxz&EE08dT~#IP&$-eunv zX4QI8TnzAUMw{qxYMgFfPTVc`G$76AIkp z&;36y`-;J=0~*~z0o<;qgFOH6=WKG$FNW0@fq;g)5Ha51(t_6Zajn6cferw-M|PN6 zk;0K+Xd@!w?mj?tc4XJu*_t%|I1);5*ba~1t+(^XHBLq{eyLd3963M9tfqZV~Isz6gOO&4_=e*gkDXp8k{1 z7-f`EDrVh7f8x}`E{+d9Gx1MP+! z5q!;&QRmZ&%JKpp({uzd_L+9dOT%h+NGEYp&_^}+a`Pg;>B>H-=gq8`lCq=gN$0@^ z=mn)h^ijJ8D?PvDR+J`?Zep+YLKb43q^6NK9LDC!E@UzBX83N_;tKa{9f(sWx}0}C za~=&bu^m=2*;|--5w;8_OlrG4ZyJMViqEDr0#tt5l9I!USM7{Zho<(x4&m?>x7E#S zs41|ivPg!-ll=A&)v}*DpF2!%R@{iZEL7d*mZi>V>c7UCVimox^sc_iib%}eQ2U;8 zab{9O0Z*ynv$)?c7KK_D@{*ZTy_44w(O@UoRv2CtGJ?Q<=z?8z!G&r67;3)zHJs`C zpJX|R-Y%4K=UE!Kv+UVYrU>@tWYh%DF;>E@AIB`rDwX_C$fhu!r z9;+4O!kWkp{4n}SE&z9=Xg`j;2T+~u&a-|eNc%$6xrs{U8y=-ig)=hrs@8;JeTZMv zasF4vS&51$D{!FwI4SuSNo(PH$gQ<(fC?Vm3`!_y{j~*C4F9h9H9g|4!+^B%`nz{_3$MH_z8BU6PC@+}z4Ljx&}jY+}-6Jje^e z1NEODsyjZ^=|@mS&^#XzDQdTb6fe)!skK3NDuVY9P~ps8%rRy3^b8AOj?=P(KSf^A zxBtd*1Xr(1Qt}s;Ly)x{r+rUO5)esoD7k7m9{s{g6EDZZ!3(})4ucnK>B35qhpFBs zwe<}pgRf@T2WIk}-oR;J+2{g8&H~#Ttn|5>wA5e*ZB_LX!aw~vtu6T8Rjj@B;1N)p9BY9t= z5_6EG>HfEg7K4N?t8&?3pFrKUETN#sc?1a)%vlF4UE}kB)H_5@^`$)8usyQtk8esS zOiG}GOL8=*p)K;QAJuyJ<-jhpV6gvKvQC`p0~!dQz}GYgRhkUv0kkgj`OC!KYEznj zF5T`2JqT{6e!Cc+N^vMR5AbuiD;Ya6oB*6eW;o6bOMwP4-F4VM{VjJT)`$5ozGzjR zcSdWb6u1kZ{S;PON{gZwb>5-=73KFt#NT(#xElt4j|!MqVt*%8 ziv>7j4&Tljt~I+fuJ(|mocDMbpoG!k=TgL=`s@cval35augm!cnY7^UP`#Fg!wWgZL5X2! zg9&gbzEOPeIx?Jkdo#e=LDTQLl;xcnrtO#(D=sla7n+=kNg5D#J@p?;+^@7@H?$I0dETc;U_e5TE;ayN4e6J}RYNS|AkpsG;y zbTFjf5;3S2FJ2jopBlQ0)$m9jLFynbljN%s&{BCsCG=u_gHEYpWkzbCsfBljNe@?7 z5l>yq-K0JbI^>0)Uj0$PYC%Z-76@GK9!J7(D4%m?wg=j#1g|Oo*nRT1)TBme?jON1MM8(nCfsb2B>(-H z572x&?P0q|h`m{3CDo;**@ZkbjRp-UNj*3q6QXa|Ngdp{QIb8w`uJvvux!E_^{$7+Pe^Y1YZT#;w+5Ux)~Ab< zK|Z$r4LCX-=5|74K7+oLaJVmrmq9W>pvc3AFy4w6Uq7f@)x7V2{r_{4jaEGs0VJ&! zFa1{Jp_C5&jqDp@K?J!`BDtV8Ag{s#wjA?-Up)m;Q}0mC=}1yE5G6VXy9wkpC#Uhv z0an|pF8?_vK|(*VUVNqRlFqt{_C#i7uWhCbEmW(W5GBEatzR zFXH^(4L6>pVOG!|)-UJ{j^$Zl)Z(i+&fg)j?`3)D+u{DaE|5F+zL&`K&_bfv2qQ4# z0NHc$d&fsY32}da<#}r7!76_0u9i(Y_NZCQomILS2hq%j$b1uV;ctbPGE`FA?Gn*4 zGE70f;!UM7q`_?bL~Ln^TV~e%Gg^?-wy5d5%DU9!UTXPgoqcpw{MBj|+rb#M6B1$A zUZ?~o3zVY2?yp>GYI*Jt@Jc2)155HYb6Yv6F4$N7%95tIpwR|$ar2Z}^09lRa^aB7 z(sqZhLLQSc;MZ{Ao6S~n{yY!y_v=QTLK1GUhU%zv6V)e^`5{l^put!^&_JI;Hb|){ zatW7@L&83!?7B%IQXRTe@b^TN3Ur(!f6Is4B|EmKO*D;{jB6%U&1NgEZNyQw=vchY8qLTYaqB#2|=o6%-}&R*KI%c zknCmY-*&RVZ3o@OHZ(W_Y#I~!^}~K==|*jK3%vZ{EN$ZVqTat#rTnHIUoNn9&}PDK zGphR6FA}?&lh|fWsr%kwr`V;``{v*^1bwH}re+jyu~5lOlISII)rdOqk*KD6R}rXb z25dk^=j`N|7-ScctNW$H@4Ltrj*f}w2Rqah5pbUJm7}I6Kn-foU$ooGVx52qy_O!o z``WTiFQ(S@XA=K)J@P<=iaZhE^Ebwr(=kt&6;s$g9TN+kQBvmEK-$OVHBE=&xZ>ehFTdo}gI=RRJ)q58)~t@`K_=2{n>UHTXm zA+R|fn-WW=(+>hlA8SD8yT<4J<1h!;t&IbevSnrFyTKf@g zE#c8W&#*Gl)NaH81&$_yn?yE#^wZkRJkrt3xyoI){uz-n{hkdv=bL1c0?UU!+SX)G z8i9JY=ijN-!qtDLKJ>oujzTu>cLpdqbqD}mF8@3AEz32Ac=DjBoM!aWoN-ru1Ko6@ z6Kh8k6nasaULm>(aZ27^vVJ>PuEKJTk14Xnk8VO6+MN@rb&sjlE2?C)jA1WIPo1BK zvNB?8{6otqx`{*!Xo=YKmGvHk`snku-|WTChc1_0`k7j;)blqbPQm@^`_{%2zMJ4C zwJVr2Xx+LlxP8A=r?kxGR$Z1m8M<}H6v(SSd3E4K;dZ%COgTKi`&Y?)o9p$P`%x2M zV}sbjN3k+whbZ4LO>?W#8s$4R+C1bkXGVOD-^A-gqTuHF-MZqTiZ5A`m@GCDXA%1} zriKS>qIRYB!PHABoUM!LR;6g;!-j_M&LG*hpXijW38)Do1K`FpNw*)C)HF~=dZRF`^z;jt8 z=m4@%8=ZZ4COr576%>Kys6sP7XG9~5$iK%DyO^1OG!QW=fq%k(R6Kt>&i`4`6c-IES|bScsDmTU!S5wEt5o1-$42ZK%a&?+AUSK`c@DuiWlGz1 zfGrH(LgthXyy8+#xlnAm&Mbl`*5UO$b^xax$(ReaLxNwZ8!e;8q#yOF8f#zH-h_>t z>&27AArUG?OayG)TJ))}rWaAr;b$9L6Q-k(DKs*=z;r2?P#w+9K%#Cq8~zO9x|*d9 zF^ZMtYIzz?NR$h{Q~RtcHTknVy1R~kfc<2;+G1m_YXtv({7c{m|3ryea616xPYGu9 z7Y!6Ddi!{>55nxhWwN$muPqPQDo+s&0`G^Orj0U33!@sQ9VD->s@7@D1yU>UQ=VnERk0gjhg^s}ii*|>Za`8uCluo_ z%Jc15qcu~Z74iD!_b)p=@9(0|w#Tgw*4w*2pL*KQ|Bfla6w)&f+>zy+ozB)6vT+|7 zw|$d?Slnn7Kjr9?#${`$?~t^W9Q*YhG4@vue=2kJXQSrx2aA}tCKYRY+j_=a zp0fV#o4>X@IwqB5`Ve)O9p>L<)@_ck=B5EBL#(r%w0E${H!c*QT0CCB655}Q+12Wt z>h;6$9Hnj=eLz=CPSx(!@oN(_@#l@_{lCf|zb~(~ zaMzUv6IvwV{1(00N)v-}E#5xAr)*J!81=L0rlAGb<5d#Uqcj$a-jnUsf|OfL?X+Fi z={5`nh>_E?QmdcURt-}%j|XkE>;jbXyP^2IL1Tz1_tU>XoVwn1R(8D>(+Q!24X*{7 zBqWgYo3Aa>iK_)l0C|5?iKk(Sm4dbJRV|aki6u7@0_iFK$|BbV^IMBCJCRvdw;p|u zm|mqL9u;p?XXgHyV0SF%NvKCkbU@xPu2BV2tQ*w=>B%lii81)hPMUe6Ck+_3$v1K` z*YWfT0y^PcN}m+h|ApP5%GlpKz|E-Nj~FZ zdq^7ntSk?3Zjdf-{i3sVTThPMblI+*+PzDnR69-bm^0Y-A#>iR=IBBE?%oWk zDQEgQ;LD#%kFv7cdnW`lsYT$(M11lDu`(+&@D`CEX-e!(PrtnVHJKnc3wr?Usy@G+ zi`o(3u*~!n_bvr8iwb32tXxdBF`da<&;oecb%p8Tw}k(AV^j-MXlVmpp62UZAle_j$vxY++U9-OntVPQDqqiCp{{R@2xSC$G zB(WvFJX(6&9VogNC%YthW(+kdFrbbsEB<#%1MB}MSLUuo{qU;Gl5|Y!e+GVx8N=YH z%M!RO9zuI~^QA1HKX17+WzrwQHa)SH?LQnjppo~co1U#!Zf%G7(^NHh8u!+Sxm2jr z&^DUeuE)qlA-?22ZssiXfyCK8ud-y_&nRido3qYWwJkl}EL$ehs1^_X!$qop{5y5t z?(PL88Khfz`h!l0lrV2e>OL;)ZY{*JOodpJHSa_KT_VpoG$WWBldAdY`4h&#Ej!!K z4)pRjk(anfom4&++KjIVschpZIKh|**7}O%UeY(~wUIz;6Y*H7{7FfM8YAclauFg_ zrL>*40E0&w2k^Cja{XSVe4ky-ZP1<8zmK!M&%vi#JJ#7fDFE#uqfJ-TWdLWvHhx7E z4^j3Uodzd=3Rv6aB?7pXKi}#Gksp zu*h3G0k{x)?!J!+*}55{{<@kzPp9if(QIA;@&s5peg!tC_@*bKyfeuo#Vw8*`=z9; z6Gvh8PQ_JZXfFxyJvXW^!peP%9QqYIVJ)LY7@dYjO2{PPi&pdH`GiGDHPF#EEpugW z5n7v|P2{WCuX`tAa=2C0ccq!Y#a{yQiA?C{;>xr;u^uE-sm7KUy6MHd7}VYL8R~nM zp5RHVhGpasVXj-UTVFjxPWZ4V#k~ooNe1%r%P@|J$MLtd9D=CacXUI$r;V<3bFS_i1S~|4DFr2Xe0P-30W_;`x$zLOe@!-W3u)ipgdLPlxQ8eAeFKzIQ=|yJhM3RL`#~Ijz7eZnSJA z=@XQCI>Gj?tdeor+!B7T!@AMgtx`Bb&Qw=#5!SnTZKm_ziBA%vF1ZhPDmVe}i1zT5_h|D*O>=}iPt{`So-1w9B&X_5+iOKy zc+&H4|E!oi7P1T6B@@ks=7Pg1OJn+yH+TG(6DCrtm9r05_vLAdCDjW9wQE-zZd58f zE%qN#8k}z?W7^wmur&* z7N%K#hiT8;3A&Sa1G&)?;mng2wsaBUJ}R0u<6IDkd>o|^K5q{Oi6(E>%fG!KxS~b2 z>u-8vm%;Zxdx5n%F{yVcY}*&}C@;*lj;#LkckR%N?JuyuJ?d=l05-1Q;ICS!>qWJ- zL%n|rc@tomoxQ>n!Mpx;I!BF2n%%e%A%DVpP4_GlDe=yiV4d5^G=v?+|Cir7MK0L3 zlruk??DxlaxW_(AhurjgRn&c@vG26NGic%OxfkKiGHaB&q-E?bj0$gYWJTc@ zMD9PxE^hlt=WFw9MY3UWAoA#;&god8c8aEXAz=E-9JR^P>c{^ajp-yscnQm*PMaH4 z`o8lzHczC)@~U&-C!R7Yjic?IOtrR^yByK31Ca;t8m7#Z=)rX!pgC_}?K~sk1f3*g@5!k?3zq z+b%TgG8wf3V-^Qv_I~hEi!`wuZO*5$ktZRY60(O+P9_a!VqPZ z7XMCxcwz{J%bLc|T0Z**EfJt$tBnP58e+*VOpQyvtvBSM_iT57Blw@R0yn9OSw2d2 zi$EyDy6pGMBmT|f*TNtx&C_rnfx&%~^zIskzGB)w8?)v4Ie}@#+BVYEjfVn+z0`w1 zLQ-)INWKwo(PETG5x>>jfV-SB9M@|VH5O(i(=MwC=Nj0alFpsI*LuPFSz^C1n!M=M zZ?q;~{H5gi01s%NmLYhxsVezU;hbIfW32GaE4F7+J-3tCR<_44sYIUYq~~|%IF&8& znCx3#EM3a^Z>8yW(-10E8+9GBH(h#)Hucyn{MRkCir-WsVt@4eitwLNq3 zaVby2!7b{}DX~5+Z@AdBg^h(?#QHgRqt$mam3_yRRkVGRULxyM@|XY7x*GC8V?{@{@&mv)V z?B=>cYRT2=ms|5YOcg(@2g5*T!Y39QoCOa05MD|xY+432K*Aw_A> z-i?$zLS1Qrc{!Lf4$3NS=^b)T)h zkdv2)VjJpA-C>H^vmQ8$^P@t#A+G^+qmzBVi#VIt7F>B}p0u%_TJ^H*oBjny zlw<36r5q+@NChsL)pu)BPG;Yv;*|JeuE)#`bIfQ(5>-C5LG?v)KmwP1@OYR4IQU)m zj5HmiItueX1M~1M4dKLC1iw2^7yOoQ-)?dkIHY|Wo75iyiGvzDl$9gZWb#NAKnw58 z=Lj3jXmD*r9HDO6N$N^Imla)S`P3C%e1Iw~u3Nh}g;M={w)tU4(jdL3_xKm)cM9V>MoKNdDFA-!4i>#UdY~XH z882zw2Q2@FbW}UQ-kGvpgP@0|;(IGA&xC9?q5pTvjC> z)@hSRxFUpxETv`c{kNK9F^g0)6;9=qq}8(PMjW;5iq6#DNdhKRp*A-+E{-%zGCl?( z5Ypjq&BByzeBjV_{Rw;C@NetF5mr7YQt9~L3~!aXk#X?w^5bB>%y{36DvD)-VIdX@ zKBEnYx-w1a2H<-HV!jdR+$gFUvYdv-Aa(d9L8`kw_*mQdMX8?tmUZ}>5gsiO7oIh> znfVd?|nSLP_dDREAaUW8!9h;OY?zc%n`tPz35Q3vhfND#@m>ey3(jE}J zhR6=oSNy)CrlPj=Jcq#n6!}~@(R%OqM>Rl$4R`)&5bU3Im0FmGR$Re{`9q1?Y0Qu94yBa27AP z2hH}rnl4p}y6o2zx}hknvOulV0lFp!tZBJ-J>bTKS32kNMP<}}O#DBJ&NHg1t!vx9 z=h$c}9Yj<*3B7kXlmH0?NTV0&5Sr2yM0i95LY0sNLN6f@nvzhYdPHjIp$P~|?<&#- zJRjfh{b!H0*BEQhx#oRc8DVlVta&bQ2Zt-UT<@^3OGyd8DOUrAb`QY?)43<+1TneR zP-VWGUlh6o_8||6-GJ9a++9(d%-)Us7&c_rh?i7&Rfuig^dd$l*P-u6NC2NLU=w0f zQ3s644aqk4b31VGfX3(cFx|Vze}uoSsrAkp6q(Y>!TEci&(oW5{nNl!4G;N%Q++`` z=vPM8pVFz!>$r>Y$+Hycfm6y^oI(05|N4bCjBclrY$tv}nzw?j zi)j9{{?>Nr^wSNDn!jP#dtY2=?Je!$z|WgX(OC%oq%FB`8V+Ht+`{hJ-V34c7+T~N z5o7F9*}RD5Nj$iVZe^JXjQ@^PkK5!rM|eV9E`j{KY{7~IZA^%h>ZbEFDO8+u)q(oo z6$$@X-xo`3T$OcBi*?p0Lpcji){x5v^fQR)g%U8BY`)NE=N?p#cYn#Xx)?QZHte&>DP7q+SPW1H4^z4d;edS0k7+F zt9<0YYOPJOfi~iU6wLf>m8_MAh60+0tOHfBE>fAX+$zh1`JH6p*f)XJJ-Uy-tLRj= z7cu&$oGJf!qhE#~(WwhO|2%gwA}_IRuP6+n4R<|vaqv>!I2r4k_(!Ac4Zi_z6J~Dt z`Jz5q5j^fdwGWasx{C~4mgI+BuhiKsnPw$UGM6iXc&!VB3JfA!e;sa#7lxMnvfeDF zELOG2A|2eqE=#^n*Xl>~AGx>%d9u8)`Q77xd9nc_yH_Q1o*|Qdyq1RVWOpj%ddlql zpQ_W?v8ZK%N!rkw?& z-@N-7!bACEZuv|j@s;DcE(~8_Kjb<5x6vjm>DJ(y53bid4q%7{hthgA9=o^|O;q;f zg!QL-^Oc{1n*E{nFyl=v>2TiU$DhtSWgtr-E~qYRX+A-f(j z(Z4=;4+ChJWeW6gWS|XZoJsWwdkGrtwAe`jQ5P+sCZ`zSed3O)%O2k}+$H^Nnd5yo+u2SxFYsOuzp0&~U)%4_I zla39%X&$o1$>b)+bY7HKkup*&^$GrEQqz>TlgY~-35aFTusF7*akcvUB20E6?0<17 z784Idsx*Tv;NAy@zC+BFM0VYW?SIhvisz;Yde0toismvx?Zx?FnukC-^$ll{M=~1$r zPdu}9b|b-PbuS4Hd+{w+&E!`s&O0VQs{+GU#9^ip93)^_YFa8=O@-y_$=VxsLzNSY zQIE^SZ`Zxs_r~BFMxB37o7D@bMHkwZh#m9(SV zwP?Lg-RKxwdk`mBTiJ6;gKJKtmyjs0Vk?X5l4k%tic9RZsEIu)L1;X%ev|uZy8^Dz zZdn^i5~+tBZ$7Z_XaQuJjsXaP2{sGH@9t}lO=O_S%yviRmpM*$VSyi9!2=jihSO~p zpC1NOOjXL(1@>a(kZU7Ld`r?UEwC*I{)cr(;C49WZz8t-JXh(mj8^;a3jJ@BU=eh{ ze1=OV5Z)-Rw{yo>4b0^3lGMK=y7s7qOv2Y`hQ0XMFYR@DaSr7Yqw8t%xh1dWZF3Ag z7#=JP?FORQSn~)M%MJ27LY|o8HCfDAscN}ta(MG&u@*H8`?nGMALfe?gUZXKS5~E~ z+4MQyb3CV1?k;Pq+3X*ql`PN?TJ=`rC+p4$JK>OUpnRO40y@LATx-qr_;*eMz^Rq+i*&oP+NYmHW;_2Dp0JQX&h?Zo|?HIaCi_o7< zV*|$KUtffGm0h%Gisd?Z<{x)@{&a;fmBnS{i`;$TFW83C!;5}27(b4GF;9HQ=w@D( zsC8~pV;YPyOjYa%`teQplEfO4>^9zIUO%`~`|MI7 zJsdHQTt^#Ogy*c?z2|Ez4_=AiiHTPVLFP4AH{U+fN2|@SCV#)|Fpm6i`|k>mZO`MU zj8?wb9y7IlT(4}9Nxg)KGI983=$`15Z^+$}XF}Sb>u%m2GOPzVZS?T&-D|_KtVzV7 zjR|Qn9lr4xAnZ6noX1lW4WoPQxz$)xSWL%q^tFSF%^T{2S1{fPHpNnX6WPY2wV_!7 zQzL=d8)9x)b-#wk>%U&5 z?thvE1rk5_81(C8*!Wo^=>hn30tZIB4C*%;)WrrB@nx~^#F?7syvU@OZY1freH6Bu zlzYdsz!=Dr0xQWJnLs`{K{O)xrpEIn)CX&eKFM8Y(-)^6Esd?kXiu`tD24Vy;T|(I zM-;n8qNI3^xv!L^lnUYK8nvudM7f14IRDl=H^TzA%6$oK+oW*A0o#6I=EL9#))>>+ z0`GF!S_0NvD!0Kd80SUSjETemPp+OCnOy*=c-|wU1}-RcUlZmzJTBLbFfZu8E@FDu z<>Z>mrN;52tz`!^zS48J!BP04fG{57Wu2`~Xni!Kgh<@G3%DOfCAj{{lo81_+VXm8 ziL0PUw-6I8`XN#U+Qb0Z^o-ByVRdKjY=83fc-g*WNu?*?`D+1UKpKrhtWITz`8~Yr z-XEvZZK#q_g>v?g_*Kh93MtaK1T|JNJCte@n-W}Dzb)AY-!jUwb{xt3+;w~JkRvSX zRiahS%;zbileR)OS&rF6Zj zV)DE{qNO=+Zm(4QiFL7bAPR8`g20m!W}zC%a3jx@m>ddkR#Xq4mx*(4H85Tsuu}M1kAK}dL)R=v zIKh&2SS?J%pD7fabXt!MER9lipSlY`IQKu@|D2XMNBDh`J)c!4elQF`m zqs5nPQOoutUY|)xDQbfHlyk;=!f<`HZ%JYtkM@8TIoBOVJ1fGE3QUKS!d2PFhEU3> zA}<~^TO{Em4TIv+Z}|fvPfyI^q}y%>&Mi&?!d~wrX^0#5#DhwIL(EP7d}FlX)I8{! z@68L2?+ieceMwbt_pM)^Vk`^ zD(L7>SqTcPmZ2VbPvzW(fHWxQ$-yF*)6+xjgovg+xRS4nsQS#PH4Il;Jn&m@gH9vo zX9d1|mgEo8OLVr)zr+!kcQc}y{XN;1Aj{Pc)qj-`r-|$7@zgjpz_}=^O)zWj211GQ z4O`uOCN8XDQd*v)TgQsmmBwcf^sYNzra(ApyYQcAna@ujb1>I>(jxAueYCeIRuYpo zr#v`+7jJ51&dbP+zy@GMg%aIiDOpU>KM#^Ft@RpfpOwTf_H%E&IY=$&*tYU-Mkoy7 zWr3i8OZ8&k-HoSUOLnL?0dw_cOor)tHIw-NyhEDni1rf68E;3HAIR_8*HpV|2S{as z?+uQFgYn+#uY~}&H(SuZU|uR7#7E{_Iy&|<`qzf zn23fI&LxFmRi4QHejXi12R*uNb$(mK=(T`PgNn<5U@!{=cI} zw=&NtqdDIF&$kH3(HFSO;9byFEP`&^eI>>pgrs4u;2TP33NIbxqDtWqT zfeN0$4$@P$-#nluZ5}0jX@J2ceC}&_&Kadyc0F(%8y@~(@910nRVpcJMdWn|t3vrb zKCkf~UmRM0cl;5{QKC4OIJ^{xVx`}wxs7LQDc48Fa!f;pY-#A?J_})-NuxE-C!ZG) zp^Y$C;^3N+W`$Jm4ciU^VnVUex!2ClzZ?1W^Gsx$v&2dQ&n@Xa8IYXLrS!ySBADW5 z`GYdbC@9vnCanRW@KX|v3mQ;q{yX!bml^Lm=x=@jeh3(!*RFvGeSa%G)GT-7Y*D%G z$3))X&5|ec*gGS^VU8VK;|Ri3K;-wr*81?Ej_T z{}3GUNu=#xD7OHOn9)yt>U$KAu;fuLbNTBOJ#Mq76b`f@Ye`6E4cLmgm9aY9=>|8$ zf`iPC<8yCAIYsbFvqV;k^VHQQ&YcNa|L^!&hyAKb#mH7&@SW`ftwsdK)F#uBcc-%CNHOKe2z8Un7=k9jH8N1Mn z8~2^PZ#)gGiS3f>EAU6_c|<%fJACIShm)@x%nDr{A9t^QYGFZnm*|hb?QH2aenfEg z`R-bICzU@RWDPZMhPdwkHD$l9soxMt9zePk0-ax~C$w*L2sHEz5_(fNZ;5?d)E=>h zNjHnaW#65?4oe{1577qG7bJ;YX2^YqVCz3`Hp1Zu3S@wQe{T4FBp%a73m8y}LZ-to zF0)*bCi(9fV&p73!^{RZph$ur4Oxfq`H0bw)lS3+b%*LugF~Z(covfy?#E-`SB3X0 z@yzc_-)j9l)HE+T;7KVH4rRc9#`y|Q-tD(F8HPkUHqr;VIE*Z#qX(UaYHlwhg&DHUMhbzdvGmJbovg>n2AWI3L~i--0t_QyJZ2O zp*#Y5lebFKlT-#2-?p;Nsza8?WXgy9UoxBPx7JC!42_I~RMVBaTpk8?EBAq4T1M;=zkNaTt=$k1ADg-pm~<7T2(a<6_SN-C zshN+bksT|f_dw)Z@NazvD?__Tak}3N6|XO474e8RjqbAg8;y~6N-H*|{mR0>j@HQ? zm3924IGi=P+&K6b#2+F0c+<9@_fF8c<}BT=Y5Z6RBExLam{g&W8gJe)Mpwj^-ApzR zhBJ()DM$Ic*ULOSR3kWD0m?S~{bqS<=9Sp=HdwqgRV-?F@cw!IiouvDjdeY^`LH3U zx=!U)F_@qe<^HyBbV~fH1h@O&0K<=r0|?@YmjD1nHW-E!SWFpJZ9yk=uIuQ$VznNe z`JOQpicva&k^8HHqs;*S>T5pNV6pisK!mTq-G6cUFx+r(*Qq48+K^jJo|fB4$rJ>- zK$_LHdcNa~l+eymDI=!f*?wEFc0O>=xjGEhxujs$>C(pBDe;Y>@QX49cei#;YT_)6 z*R=9~6_&E)IEEmjpoHSF2bI>(z?>8@!3?s^V7CrbnHp)PCz)r@on|zK7fUI||L_8O z9#xVaU$8WF(m0O2P2+95Z1j8~cok!T7plz`BOAq}#Nl_&BlrB!y!)PuTu0Cr=nC`< zBaR%Cy9J993&=>?tTMzYy}AubGFWgXcHr z&u0R!*9?<`JU(S@;3);O)0SD=+s{;g;Z?pACk)7Exx;mdgY^_nmu zlX(>+r0$_XthX%0xr95~5+$_@XgGN#ke?#`2DFlcN7Aw}oL-)+KkG%XOOCSo~$O z6Fm#2`e&Z*m!FmK4)`4GYXskHX$UE0S3*GoZx((}H&NO^0M|vLs!pHwQ{nT%$5<08yggoe$!J}UhW-m(g8DD`B#8g=8jFF#vaTn`LZw@JaCBl1<^4_Qu zqpIHF%TDrK`Mij<%+u7lTyI%iY0AqCRW)Y5f1|X}yGqL);7X5W;3-7JcK3b zv=H%4$$58S8bU@tJ?lNsvSp*MCpNIXD2vXsNTC<^nEONDIN4;Pm}Fr?%I>tPgc(^_ zgimH&`I}N7$G(|avdoy~1iHU!67fZSwWq6}x5nnHjG1)1fP7#ibYmzPpD*P@thiup zsIRgA({F5f3i~{6mM^^&Wgv-UE%ssc0sBe#JC1lM4m^;gVJ{*;H#25P=Hz3O zr&D4K(yf&)Q0O4U&tJK-;28i|;#C?yOa5BF4*&i}dQFnOJ3rH&#r6wj%JcI862Nk_ z`G4^RyE2u;mP>#VPxAj&zHpuJN2b~w;nH5qHNclN!5R@`iV{nfJeAj!@`d`#_QS?3 zLga+kmb>i~*)E4DCp=#~^wQ&R+#QB*EO}IF+b=)$6_0r*Y#tz!(J7}Wkx_J9S!_e-la=vVS+BpXCR zZ-JzyI({!6eu`vUq>3c`@*%oS@ZS2Mcv`1nvLb9#ss^>`$+yq)kpf-+>9F6VPIu5v zq9xnOBC${@dj}mrIDw_-cV}(GThn>h>zEG0Dh<-$r=v}55GKx-$>^bWxsawUW>F&1 zH90gav2~`07H1&%mzv>jp3NC}PN>?Kiy%@G^KS#Ukn(H2$2H1t*1wgvf>T^u&tZDd ze6|{=BE8bI^q)-E7%HVXdd^la1U>|){)5k}(lNQTdCkVp&F(&QtBCpEFS2-`vl^!x z;Mf#a9`c=z{C&ZMkYToq_h*rRR=sOeKfY)%hy#8N)jBDsjvKMOR;usE<(CdkZby$+ z%DiX1ia)>(n)VT?d>!0EV+!pBLSk`Erc7Bpfqsf#CXj{=!o8ZVe!t#kK(btjfQ8hZ z)8eF!W5)w;K%|F2de91xPVGu*N3d==K+rDh2Y@H~SQ&Wx<9%TNFjtufJ zv$o#&>73<%Q2LLKD3cCNkz~J>i5mh>C^BWgx1+lpylS42eG|Fz$6N7*x8r~qr+7cV za^FE3qq3CuRUOKZZ2w$JsGdN?EzHRiMg-qg)J*5xi7%gDylW)gokt|~?*pE5gF#G; z&qUv25ZbYzdpup)<4tGoXUr=kmeggILVPzU2CgxKD|^PybPmrQqThq>K2c0n&iN;g zViFG}GhbH`D^@595f7ha#R=Y@g81GAs5M(piwKB?R(YI@$r9VM@J2K>1$C&ke+f%3 zT@5-{cwM$F6@?DY6m50dYj^or!|pS`wfS%_WE5jj&i)!XGr*+Wyr4BPGoIaFfllI& z>Io9bDOZdD!R)4|5u`H}F% z5O24xI664R8!X6G)pN^rr3L`To*C0ZPmD!%E@U$X7SDEmyT-lrDU7&`LWC7>N znh&&FTwU6m&0@n=+C^RG1Y36!d z?d2}3AcIDeW_5N51u@ zQFm~J#W8=J;pa1H0YveX+@?Co@9cEgjMWH>;NtyX80NT-nmDJ zYh#mJ`r;RB)g#4;7Gl=G9euyBaXt7QOYQPDZ^f5&l4y=fVLdFhn({URY}ru?7* zaropQy3+^n)%MZ~csi9QC5Z|X^y|(7#sd=iWcaxXQE+bk>5l_75^2oKP9&5hw5k*mTf8?p@_HM%tu$}Pd7V!5r zYUXWT6-VuKhsJA+=*#nAD_^a0NpT|KQDvHobx6K+a~-p0eq5fpN3iN{@@1xyvC<|c zfkcEqd!JC?c|DW5`S6#Ew+ufynE%zGbEE$nHeZ4nmc08oy&#Qdy1NqQE0{fTe+Y|0 z6=Vt6fscCs_2<2q)=&cYSfPx(E>w`rHINNt6m(NYor7dNkmA80=Xh$h`{rj8w7x91b zHsGwAy=yX*!O~UPf7egNHxDhY)ofp$TMWZW z!3%X=@rBB{L@{C?K6oU7e>TELfGPCduW}Hot83rC*{?s_W}hc3Zh0O+vQDz}m0o*O zwu96z3s01fZWKzYZ#!w=HsozB$UrmZq2j-MeZMp*u1;bQjWLqSQ}u7lff_W#gWnoH zM0Fo*8npU#c;d&j&;ow$(lh&%OimdYT3Xgn!gLGxuI^6_|4JWwtg)4~ z_ov~Kw4@s2V`JjH;!!_7Q(1oC*9j_~j0H1>RT`NIuMl8P**jHP3`wxoN?{Z^qdxv+Ei-ia{0+h1B*B{>bnvNOSUaJr4_%P<3=>wx9g+J#QJF>eO% zm+YNoJ;QUgTSK}(uEHCKE#|d7l0PK|Pu!9zp;wbbg1lM8yVW=w;KIyHe7hsY5;JV? z8Ny1}xIPtX86>+ok?8Faoi(lE^?;l%39E0rrZ%VTZrliR$-sauq3ZywcbL559ur4#bxOWAK+ ztE^TqEneM^t-ip@n5p=`+)$*fK_Ob51Iz_!1K~}As0a50a%u(V93YD$Y1%{m6GtgU zpN848J1;ta-18fDuJoL5epWdkwP5wdQ1^UQ(AJM=?i?SssC4J)*N?wP2M#DS{x0{pJ5BV6%lCA{j9$T+!>^VuEC?(eM-8wF|CaW9Wg4aY-xdES zr>>zR@u>TK{wb5@GY&)dR8e|_=2uSR{1jz@er z@dh>PRQyUM@7<96S7!P8(O7PULJymT(Dvh8rGy8;oN4UezkU?4{N&50X?IC(fDXqm=<>xqKh$bwAj1 zw+W8k3N413oZK%)AEe+#Ry^jabIcOqHq+62CQ~x#6UWOJu(9+}rl_H^B@>lEKg|q3iZpUD%_m2h>!4 z5_q?ZY1mq$>xfJ$=@=C_t+!+EJL4Z^t&9;LPz*uDm!Qf`$A_dtrx3c}QtMrdnX&Zg zZFM`Hmm@LPhwIL>NpW_Dk_Hc|&ct}a)B1)(6G+D)t#UzQF4pDe52C(w1DGzn&qYR- zpYYtjr`+@+dgsxnGupJJYnyeK*}TN^;H1TG5UV;>(MA%8c@vpDs|U2gO&`ZQI|W#L zT;u#rZ!!LaqDE|3h4zfoq#g>l!?F};cU)QDSGD+Qk9k3*1Vjkmmeli=!W~a$J0mVR zk@x{y;pV)G`R$aD7*k^OM#16(W_74zlmX{Dvtx-!uDTs@67=yMW`@*xk?C-!ELz-< zXvbvyp@sy0iQN^eS&?+GlWrWTNN&W25h&*CU7GRiZ8sN8_f#9IgDI!uNa;&!TG~@U zb?DeGzd<<2TJU>+@Jez3iW`UQr`uPSGf^3jD4YpNc#XDt#t4Y-u^$2OlFA@PbS4^iwrHA;T(Kh-Fl~LRBOZ2P7XvN^%L_FXkuQRr1 zQ*wVs5UAz*b}FzK1@E>TBfa{+vgl;cI9pcmk&9k7eK(Sgb&@IPR^=4+XO-z5&#P)@ z!hw$eIxC5krGU8mdX<(?rtj$T4|%D={dMP2a4;_C;*S{uxh%Pw{`Eu`O9=4EjPhVi zSrDJApX(oGM!XbP9y}x={=4$w!I3e%+d(Tv316S9?kyD{XV>H$5S6gq>iAdaWE*1w zJu)vQ<7PbXW-;ctwItAL`lBCZ4bPc>`=lm9K76lk9JIHg#>Sje47q5{H}AWouU9nR z7cZs(EW$+<1_g7e}ICo}qYkWoCcROHa===8& zgInR#Mq6Skp}UIEyynn+zs79)YtgHJiPQ-83Ho`4i1cbe6ZF4UlX;)3801|1cjY4) zHT`2LC=XgjC~%y#4z$-&XsO3dwK^yIvP4K{y{+VM0|}PlHuw%%YZ^zX;o~L@%m3Yg z3`1AF?Tl+#mQd%6g<~JL1F0bXIc_hW;7QY5ksyy@74M-$A_ubjlp(OnEG7~8_8D5n zZg#q1F>Hnb~=B+}k9Ugo5ktzLEOGnM$ z5-{kGD^2nKZPPrDCX=WujOuMftXrO0@XCR(LV|(90j{-VTW04=f9RXNG}gjd`rq4@ z3eVN`Tcl0FntjXneHJ@?xfRdu8JL}U?R~+t){Aw)c=<2GUDgP3k--N%qh_{sSp#CX zbEnUjlDh$=Z9;3GlN`o)V7}tMT1r<}s^_<_ZxxEko5>f2`0VcH!Q65NYqWj5um5+Y z24k=1Vei1JsKJH*yHrledUr~;dOjIZb!50T>%#J0!4_|zwxr=iMw%VRA)*G3t^4|E z+LLqZA?1m8jeoU_{;SzCGFKg{72;Dp-!?W_;-DC#3fe|+G_CL9k1Bs$XK$D$n-8V{fVN#`IaP(fEz!4C93gVN$ssc{P4!?;LO^0j-H$kPLAD1 z-&I2UH@W=2%uxI(Ag|9sU&WCvO)R>Dg)`hf?Mhh?vq9X)5{O7*noSuJ_EKc^i%R7T0k7(6^ri+b{0cr37@`xC$Kz%`HI zCoDbDoGe7gX**TsW+dQQLiByT)r@twpTF1tN38zffG))qN@pO-*_*WtgD#Q9-aoYn zYp|9G$g0apyc2Smi2wdGsefDS3r&l>Rk(DJ-OpREHMY9?1Gb5t`(V^Bo55qUHqt2{ zyr$&Gq>O(LmXh+`IidzjSC+$60J?!E6=N6eKdA#s&d!TD*JQ-(LT+KVT;%e(5*~j^ zgPSP2hqrJiKZ(SyW=>h-OKMjU%3i5biY6$I+}ksQ3bZ*HO?=z5|0g?^tNnYg_spu6 z3XctkM8~Uc=5=83xqe<>T8ls8fT?)`fE4)TQV-qM>xk@7GvHWqnDM)VbjWpA9AqBP zXsU-Mg)S&YH7M6qRAIoaB`uStY#6{(Pd@N!rs{Ss_W&irJks3$d9l*j17&Q@qLyNP zfmN(n<)ftPpL;9|T|5NMY5FD4iTg%{R>Z56O3Aw|5Gmuxnj}9!kX`fR2=m_zdcn|O z4S<*=ZrbLk5g*T(>GG<+_YhuQ>v{;OfFxT5M!4d`NzD=bW!PRQQep5Zd`SaH1c@a! zQKu-+co_Cx-)rs;@GB2g@dIz$+_*_WQyXmpkneu502@LG5MZ$)nj)zw#X-ycreXej zNkYc=UN`#}(|oN*t1T8NpOV)U6*>l4w9wzfpIZNyrw;jVUNje6P<09^>de1u*%WInzNf-N*pK}@n{e_-RnL;BAZ@g{t=#CraWVe z5_4&?O6gkNK!9^Cq_z81u>*hv@2Mv*Yv1Q{y!!3rN==LH_HZ!^>yn(DP~j4%Am!$7 zLq*NYv1Oi_Mh)aio2fe?>x$s~_^4L`G7r&q8iZcW-(z)B-`C~S1G}Hf%3O^Pe+jo9 z(8Tu5Hpxm=hx1PyZ!*=*LU8sEk|}D!nGhch`Nw@R9*z+2n?t$CS8*AS%Q^ksrVuv~ zWTmXQz$ui5D8*>RWyJ$=6kCOQXVK5o)2-Y{ofM<%g!byh@aR6URibK4Fa7dpYu3_G zAVT^m2A5vdG0kaNGz~k7*+CAsK=`1 zM?y^B)YwBekPjid^TiY6_I9N++l1GB2Ik!Q)IyJ*iU=1Io(1<}jU`SgH8^$k(k4le zT&_Zv&fS$|Ak)o)@%d&fm2E`WquS_%zs|#;DazF2M^7K!Bmiwgbtyi za|iqS%;1;1T&*^zDoCGbxq8*3ZBV$H=@2|XIZKdm%Oh`q11gpncpqp|U{-djiV0X* z_%wUftEE)zC$T*;aLCahO~W2>GE?ud(prwj&rpyV1lFbTq5FB=pEPVsjId`KapJ$_ zb8@^|HZ~P6QO@|Dz#$%txZCp=i!tI&QzHL*=;JFcE5QYSrvMep$rL#nFAc&VJcb4Z$7 z1x8%9?k5!^O=iTzB@h$?4{eOMxughWOT7+RFYM6{G2_#W7c>4GliVc^WO;)tYxu6F zNh6>-nU>7#vRG%V0hfaS9?Gu^aRpX(_S6F&kK!uLs~VJ}mmS$04w64Hxz<6M-Y8>k z^MK5TLjD$2zhww-kL>cz;>#O!$eZPP{?9jVJFrit6EyXB6f34p$C}=NcUGz~1BXc4 zZ~?V{NJ5}{!$CR@Ov)?NgL~sMF}WAEHNI*L1Iat7I|uo_&*+0O-`I05;e4^dbjLql z<4YUA(R^*!jEkA?(Ej61?Cq;>pF`|k?Hu8tNiI|^Ca%+|#IY<0b#c8L!++G~gDuK5tvxsh%fxp8okcR`7AAKeSmj zbyXs}r7{-&ZB1{Nc`XZacEm$!zBo6vthe*75v(=v6DQV4WmipQlu&RRdFRd>DK#zV zp>teje?1l?gWyY2GhJ24(g;rGA(&%5hkv<9=-2n2lgcW(n8cH%+qz4b^=OQtFzw&; zK~6>dQHmn{`%*;*dhdFBM;((uW&LiR0B2QT4q2gNW5hz!%x+u0QK(L`yXY&gLVVj1 z7~oVW_i9Eta8L2%XeiU%RR0EGfF;Xb!|YS1JD)Ei+9jINbd7$oCbkZd5>kaC9!@=L z@hx`((~%11?%_sjcYU%-zL3S$tzDVOBO%0Str~~4cW$=t7&Hr7|y!^LmqXB1?>60iFRJT9Zll84EHb(B7SL#;Bhkl@~gOi?r4#GhX z=s#&RQr)2W`y;FKs&XRQN4#6hEjK1MSQY&c0o!xq>aA)>?oqHj;1>%;oLKwmM3uAO zTDru)Z>+L4ZCrSXW7_|Pn#0$`ZcYACNV8K5koa+ll4*J{06dPtYH2C>OKUGqv@|9T za2tKU>!z!?s)6|h64bQu86&DYTdgcG<(3#!(9pCur3FI80|2oA>1+)g>C}Tz1Ip93 zre=-}t080reg4de$YuN0dJZQ#Du1bubSwNkD059RX5<8*VeB##gPl3AQ-ZsdO=Yb< z|2T!X$8pjy=n^Ek+}QH9eC*T5KRjVt^#s@PJhp&Odi^?OS_Z>T3>y$FJgK5{qKTCE z3|!%Ukpr5N4i6++^jLnX)RaqC+$IN0dYtLL(Z841x26w#ZWr$bD@)e%9ro4odb@`l zBz`HbTIOw&m<25EEM*UqI0ZphtIDoI8eBY#1EUiArqY8?BcfZd-cvC13oI%d>^vB@ zS-a?lcRuzBInwmB9~&C{_!^VLJ?{MWZ80#eToe9yW3%Z*Oy1)4J1*N1P8o??QzF#D zc|qwF)7_LDjQc~kam#0qM(Y%}J=KjWMRzMX@X_M9wi7P#Kw*a96NScWk7~=^$6eIY zl_#37*-vGeh1}Qx$WR#(A));SBL#YIId?9ZBBb&MgN6TQcfx*t$WaP9c=N+Rsh4BU zKCgSHj80avp|6wjlTtKa=QgT_&x2ukiVA{idtug!rVf54euZk-Sz;JIM(#2Bel0;2;JxYv7vz4bPd4(s;SYyQ( zu9|I~eyGZdZI!K&LcS1Hbv~XXyGp9*8W`LGCs96BEj^r;&;_R6{NortVqY8d zMvcjM3$_A>;huhGD0$#Ma`H=fYCH!%HPF8Qt*5$P&QwWHzg1+y%?%DH+gGbBdD~-( zVcGX(V}0H=t@^*AFOM08CEV3ewD4v%F?Y}F%8HjSJOS#KkA80OH_s*%FqP-={mNxv zT&zB>BuvUvWpcnCEuCRq6g&{%R*r2BO%>poz^+L)7khF#C(#4kzHED%W5-J2Zvz)#u3444w?rN)Yl8d;73+1#Q;R(6wlBv3C_R9i`ZNJOQzt)d%6qjjT9_Jq|Rda?0y%PsT0~4t-DT``+9-V3*th#1v zB#K@6gzI~Hhgm%#s9UX~eU&lj;_=KEweq1KBO*qt02Xz0#r-I7@`dT{xX)nuCzu#3 zVhZLP!=QKCKh3c5IG~zEA@ha2;Q^IXNkQwkE}Pj|?^Oz!$q9H`bYF^-x@~*#1_kbM zO`V$DYL%A5E}bVvYK}GkxQ+4i4SZ*8al4RBR|v%)?KT3)Jc0Uohx{cD7U1Mp326`B z|36kenpG2ukg>*Q>R#@#N<9~Jcd)zM>Fo=5peq*Mgpa;j$M$o=3Oo0@iw%zBwvoHt zSsv6ab_WYoI8hUQ`s~BUAZQi%bcn5?5dO}Ga`KCD}OTBzs3pczlK12 zjBvjZu1lF6HA~L>GlS+X=g#pwclsPPgbu$xnZ0|M9K47q`()Iv7>~l*|F|V65pqzV zsOD4QnrCks5R5nl-=jWk5nz#zBb|Bk();lqVZ!)gnXav7 z@0MFHQ!sn_*Xu3slsf2U;^4Z!#KxjB*u=yV6CPJ>XCM_+5uEvTLv#wol#?*AHoSVs ztIFQRfb{)Knz~oL=N3hoV$rVOCD3Q=Q=G*hN>fSh-)34>E$=9qM|Im52x+l@kYDiG zY?~-|_EpSw<(m`^*7|k?iktd4Qx0D$0#}c*Hsis+@b~nTVXH(?@x8{!t1UfS4WSA; zV+A3BgE{N^2gHNAW{AIkc=N?wP@p8PT-Fn})!CnkD_K-=s?MNtzwnsE1m2;IGjVW~ zdstw@PoTRf_SOn%E{vSo>9nR+Z|M7F$YHL*OO>2w2H?6&5C9z@^ z5n|PDDRpX#Rf!d|NRSwCJ}Wak*;7kV|t z2@gcSXgIz-XuH z_b_9jy+x7|_Ut<9BdRZpTLnhmA%wl~iC;~|6~9e?$1L#NKXjq^g58K<%Ulg#Z1a2v zz_RW363^)4DdWSzZ9h4+$fEcW22HljbW&_(&gl}GzXl$J2?6?+kX8iObsz8 zykt}Loci%rPDQ@-g@jma^xl9!S3~wc0U}cSkU95jJFyW+AFy(%VKMqzK98dbTo2S_ zm7^B9wV2*tRTdVVRf~nqXE}fztwz6lKRkfA3A(_d(-hw=8JMk`D#R37r+(j}C>_=% zI`WvGwn|=C^?uRM_qx0<&R@!A%xi+_VU~K7Nqn!HnX#tAliMnTRj%(8>6!*!T!Aq> zc2)anhmGCASGP;%EBNa1pS10Ei0ZdZU^9`~S)cFnoVLc?(MX`CP@Up=9$i$MjRQ9h9%V!@;)8%Kj| z)W0@`pevSaMW_l)J4Gn4Tkwahfe?5*sw}cJ;xO8^j4lXjrcP;<5^ce3pG!5x8kz@C zG5K!0QYC#O-Y>t$8*T9PsQlcU^`#>7U8wo@cQ&m~s#w$ch81DTDd*#j*2))7Y^SESLlG$2J&RjH+v#sH zIwm|Fs<1hJpFG^KgTIU80Zl4c-RV_T^LI9)Syh7MOZ;UM*?ZCM z0MpG{)=f@WwH5@!^R-c5PhYY0xBikd*sZyZf4OR|YRO|PI%uRs9( zV}w|_F8om|iE6h>Bopc&_NKw*Hn$lKeB+Pt;|;Qa9Ee>>UEz?;Pi7mJ`cYZrotxzF zdF@*{ot#;OtcgBDWR7Y*>wT~sp)%J9l~1WfjtK6n}a^c_yZ=Q z!ak3*07MIBTx9>=8it>M{%2>2e)FM}r znIMZ`Y?*Q0zq)nVX7Z4F-LV9W?KZQ{8Rlr^H`1-+668U%D=H|f_YF223rZ9t+iKWf zxAp(3kw1=Bv;ML3Ei=gdKmi*~PyIbl|BQa)svUKH+ySmP3vR6%b^M2>d5Hi)DO?e# zLUEIF%j-Zab0P81kAeZC_}y`(+9qwvWNj(&-NZNY3Pwnh`}>Uwg!S-Jz=^62bdbDa z>{}u&o^2J(Sq`?~0qPDs(xfDzT2) zgV=}#1vd*3oY*hM=s-Q&8rlv>PO;ZE)>E^rVSTw1QY6t5*Cde3zx_9^{*^+#skjSC zJ=kiP(K@R+iQoPvv^eWLYigZjr*$AlHu%(8j2L>#R8?DU@<|(tD7s{70Md%OlcZl2 z+j~5ogyG&75$ZhNzA%f^aB5q?ROTn=drF%b2Po6-3?3p>ko!Yn?%nnyMfdaQK-~Hy zrGg<0t*b@unY$i5>96R{fvw&YgJ~^uxE*EBrVLf0vmu1r?3(;`1SZ-;o78CYV}U^% z70z=n%5shSLi0>_cCWGnq!rms?iHi%7CHEW8v8w*%QD*q-8p zRO;=_MA=9GS9jtB4@Cx7WNjBb{$X#r^q*q6je$jM1=dNu@@gUXwUT@8}zmyI?N4at8WLB&+~-0y7L_-@BPHEXdn43rI+cCE-uK>f4bgfv_q&1>h<8F=!Sj#h}up;;F6sY&#m8y5F6Dn7k6l zy!gS&`EE1nT#Bm8B}TR!q}s=7llxlcnh9(dKhkThX5EOXpXMWr358k@V%&9Rm8?42 zqzKqSo)(u=3+dYY=zy%On_<*Zjxd_e-yiM@#1bK}Um2~JL2*js9+&;lF(IhZZC(v- zUU!^fNAkQH4J%eNbE)i!&6QHA5GlL(vYr5RoPRN01?twHn(dP1SPXvca(ER>(bYnz z#v5~?6g&uJ$(2L6v*9nelv$oUEQ{Te+ueYinG1tKYD}hYt~-ED4hT34_>`6Z+lC9~1P z{_0rD;nTsg=1Sch-i?Wn;ap9Y91D!n3{}Dqa%zK;c*dD!H@|N2SV!=`)tQV17byeT1hMHClw5RT| zEukAvmk)*DdVJT!ljXIuZnWxg-)wbILA87$rsqR_W~^7J+zzNXBj6 zxNK_<$GCiHGCYqVI*ni78Y~?ct5a>^`$-V|6c+f61-ZohD9?kRIO6ddqkQz|b4dwc zo(!n#a8~uODx|qqQ2s;vI^(;Tw2s?)peAjcP4}7}VE0|Z91&O@L;s5&!-pYp79=cmGEc4u4LzHiUR}>ia$XYAbq;8?T zb8>18#b`6r0H~Vxu!p&*JAWmnJmE{05gBccw(2y^m9<8XgitDG`WL5cTs~r>y8jfm zYnplR_g7$4zM1c5N$+JD^54guV=-xr(uEl& zBaM+~Qml7lZjBO<|N9FXlxCkHz?l`kA8^Ys!MyT%gWarDxq??}sGr-P!USX4k8f4I z-*nk``ON5=Zf|E;SxpdW>Lmbp{brcy9kC`PHHz&tP$b4^zp|lSls$dt2r_=Q{O zHH6qAN4<0CIOHN87INj!S~*f98$o|kE3EI{ns<14e09SREzCF*;I1!`k=~CJy}$I* z2;MX(b$3rv&PFQm!r{Y((#jpJ=4n$eefX9iE`?|S)ME8Fk+xPHFoudQQWPD(lG zFbwM`gT4qRgH_IIGcWyUUJx~qX3#;3d?Fnt(qBX4>z;Im?I`p3-v0*kd`u-&bhL8v zs*F~BX#D0|-}BD7)Ve*nz^|rsK4Sy*IZTM3q%){5V!Y_Q(B~g-JSVj9_+rN8fWk7 z6$O^@B@*ddg*qrIb9>5HDhh^$_9~P+KJ#idWp&QF$+p_F`jrT}j|Ct%LUsiv-Mxv{~p$hx?8^!GC7*8#HczyF*xbEtp ztz$|TOVuQGMEo)|mVholr!ys)y4cfup^t5iAe_-CjV`mWv2s}LR~n3$1l`E$)eQ|vmnu?T3)H}K=j z!B6M1b*)e}J-<1ln9($`fFtvmjkd{5vX!JJDYL8a^*+*u{f*=Uo zfOpkw=?jGc#{B`APJ1 z8^`stu2$1&nKc2Cl9N_~a#ld&GoxSG3TM{2_`$-+KTy|UcF>;?h4KrCH|N6G;NI0fVWlX@{3JmI&>Kpac zzdtgpYK=;vNdmZo`X)~|K+N!-hyM0h{8|~d$Vu$Fg8Jwz9j_NZQ({=;WG)_q^yOO} z+XD0x-!8JNw>vWf7QtCVGMmo3j-GB}la|ifl~!Y6?}!>yR^-s~_@212X8c0MYlG{y z8YA4ziFo@(W8fiUkr0yjfp?a3BveBa~v z^4W!f@kM1kG=%RLB-+69ldkr6P}5_Lq>d zbmO1!b$)A0qPekKfW2~fn-F>MUmIS|K6TJBFlX-8h|Hs)yR&ZnB5iIvd4-PuN#vty z@s2=^>$7po*yyF#fomm{^ELCJr=~sq6Hjd9%hz9|xWHsrkT(JKnFb`%{J8|h_-?_r zT57KePSmd;KojOvXzhzi$C=c&U$^wOjegQ(kLiA>5_0T;dfyQCX;k%}jZ+4f?yPdF zWp_IN2Wxn>V3=1k`Q5inj#K^Od0S>#9TD}4+A2W#<2wAd^r|r9dC4bSv)Y`x6}iQ9 zM=te?g4db}&%lHNqW*x6lmYpI;NJo#O1Hua4Urr5PlnwrRleg^uR%6qF`jZ3F3|U;Y(K@uvjIWaNq@%n zLSde7+!vX9)^^^}iV;DcK1GZq2&d9i$Fya=#}}a8v#nUqJm0kT7I_S)p=i-elSLQ}rk} zknVX=A6;=MtETiH+s{bd(i$cGXK||E5HDKqfXwV9>Olzkcp3g}Tb(B|PY0qzvz}jM zwuj7lK1k7+R|6H|qyTfbCZpdJ6~VLJ3ZLhG=-4ksN@sn`$$de~3gt-0neW;xUJf;w zlPtqr$gxWE9-=%bq#U`40eLx~@GcFjk~CaqxaF7MJnHTt!1IHA3JihiGd8lk+?L}S}Za~#}RKQ=G2 z(Gd-^b>mN7<+#TL=c+HU_YY`sgKoD=3k;jd#9#yP&?QIpQ2^3}Tjg#;MJe8CRSZZ>>)^3G5VN(ick`sn5-`woCKp z@JHGDK!LXKXTIg~8bJV-<-XFp5-bs^Cge<%UkXXb`cA#~Vt)i47A zbE1=s8b@&cj6bp_opS05 zM8N@aoU@!=qQ2Ln!%c@d%S)KiF>6UVXVvyDY3srFL8@?2*IA0|s8Ohud^CA!T9_+* z|7K12u5_;h0OX7el~RlL-!_C)$!}uGS<`poq>vV&-fnm(LNl%)d-m zxUJyu1IC?cfq^CdPw?F#S6&veo0vs(F`DX5j|SQna# zG@S_f!VfAOluT4EYEB&KdS=KJ5H{;b`#fwf&D#f7R28e@df@;f4Ax z`MhcNFdGD1L>(i)J@Icg(One=G;jYMRfegm(SMa*VUriuybB7kU*l*VsU~sqoV38v zXCjXn&Yyo{T5EecYogclp&t?IGU48>Uo>t~1KrkBOfYWrMRo*hmS~^!WOGx_b~YPB zq+@M9CFELcl#A-zPupv-mE<>}3ceOo+FUB6l6O=YTqhS~NHE!Wx2Dl5>jQmKfKK4V z*Fum0hKp2u3%H_={FL!YCnd5timqxNwa;_PbX_)wHk?D}F$<70*9rgI#O zOA_&0tfiriNq_RUn%ms9r;>)QNc2Y6&YAH@f34kY=P)_e2Rrt0GkUEefQLBEWyWwz z&ykqA|Hd?JN(l31(~WrJhf{O;IPW^Z))=d`!nt}$ZoFzqs-$C>k7Y%spfO+1CSLPK zy_4{^P@bTd+Xl&FVwS-H!jE}J3eLo(KGh#JD*EIm`nqz=*00V(@k@DGcKpw+I7*Jq zSBkQH{7Oq8WD-dX--I{Iv`$LT-2jCqJg&K9CCwpsh?bkWFk`C~IA( zMQZD7npOu+uj1$wg*oRPc{iTA=Va(`E_UDn=L~=ZxBTy~CegQCj{V(46nFWO6$e_! zH%?y~UL=;@K(lmwza5%hG5OB3y)nLfw_$K<&ath{U=4t^bN_r+Nu7blc~({2P0nG? z%CaM+IP;stqUPO<@6N6jSx2Jkcfg3nJDhYG|GHw7d4~5;zQazgiJ9ZeaLzO!MdPU$)f}n+CE8Jo^@FjT3WS|Z>BqM+o~r7q{jB&@F2f< z7%cPU4cYn=e*mI@A+gQ$cvV_iEp|uM$)s@e*!0OzWWJbW!OUbSX{Qk$+Ywo2ago}a zEX+0VWl_>6fB{lpqH8;1sE{zi4SQSznb{G_v0^d$kBxj<5q^3LHwFI=^dc%Fo=VY zxE6k9LELU~PPOgH{gJ&$OXAbEG0s;v;2NvGn?;oH&ZOAc8InQ_5S zL(1s7C+>+Jf)~tK%HPJB2=GhFigZawY2o7A&c`D$F%!Ey6?8nO(5ehtetUmz@7m6UkbhpuqMV#r6>*Vhki+iE<^mfc(XkZ9%$?l+Hhma?0o%jsvkBd`y zA?i_Z{c*MOrdk0gR}KH$j$=PP>}w(3-0ylR^w(F2tqW48tmcCe(do&;jX0Y`gX)b+ zk^Ohe7dP{_A`x}hE(@-}0kw4kF{?8b!FsaAjjde?+$Ucg)&N%gi&3P~MW-kAjqWue z&8Y1%hd%sx^rCfjUNQ3E7^o`uWd#t-d+$aA>2{6?dB$lFSmu>kDKf0^utsMmz$(;H z+L~=Xy!707ky87pJ_%fRm#F^WZc?9|V+Scl;wdZ0a@Zpz{cq2?ih&}d(@;{Wl=;#b z`tn~H2~W@6LAI|5S3(tR)c~3*W4?lb@RK*eI-!gzk8BuCC@IN~Sxt3L61S)Kd==}{ zoVb@-qofb^PK-L#9*tFG8puf&{ihbzT2s}1x%p*FM?RXH+of2pLQGhtKJ2;P(qgEedraSc(2yQqViCPjBfT^H17YNLgpy^AzWUlnKuJ6sMM$%Zt%W z7))5yO*4p`x2*Okpn}_vT?<*4xiWjH8$WL;8Qa7!F1hQ>54L4%7Jix?@@;hjh6lUP zvlYud+eb@5fw?*;uIudwChdW#$uu4x&l}dYd|Mg@s9dHF6g4X6*q)Ov*wEcR3VZ!0SJsb z%8i2->9`2zSsZi|&ItK9j1K71mmKmd*}Hils3p^`^gMp(VJlI?75mUSKxvi#@bDM! zW&+Y*0v4e-^5~uu2IMXq8rkTh=%bsY?Z{=>Ge$kQaEQ-I3Je@za*OjAZRWl#+Qolv zz&efj$2ty|K$}|zI1GYD!#AC7hW%ns`HtbwskQs6zp&3!N?**L5=`*ax^AKD^6wKZ zUBec|$_e>ing}5w=;@bbl}^-EY?JxKd-b5K1GMvhzfADju#Fu;6ekz%WPmxI#s0DC zpFca^TJ4GFEYYiDi0g0g@^;f0J=m<5c$Wo(=^sMQ9m&2Z)#!Dv_J1mClphwv^FuJU zU#dGanSpRLS2*Woo7e6Xc(>nE^H9NGs}y~O^V&~>0)bu#nq0RY#Sz_loqtn{U3d9` z3;cteI?TtzJ@tlgCL39;Jk{wwm)g4>j=#U#pk*?p^=jwwU|sL;VW5V2564 z#_;&fR>{ZnD+E9P`q5GeR32{W^17RHN3cn7!x6nM7QLlyW&v0nqP}?BtBW=rdkfK1 zXJ7LohiU4e!{_b2XLPV&1lw1%x^7V=MM`N-f%L<^z81xvq1uA(vA$T5^ z5PZuy&Aty*&gNGT(`wJN@Ufh)dUip|BwOn{vsBnhz}SlwGv41BJGY33 z(gDt$AQ#!qx0ZCnf0Ns@$Sgv;As^MMrAN|nwuOymC~fN**?PTtIrWVQkli` zrQf&ZpI-9a?e1_z2)p0=)KONrP2`O3gV*m5h;klfJIIM6{M8O{O2P7BYk;IHQXw9y zh0fJr;HzeefYxywNG|tHK2Ow-bg7^kmC${&o5?FLPUXu1oV<2iUg0T^8g|*?M7Ws} znX8Fe0xn@TvF*?3WkQ3FA6qJP7v%qd%{p<&euqSYL~5Vc3v9Z-3V-{bl#^Qcrgp?+ zWr5X1C1)Mi=o((%(NU|SGwdUwR1?q@k#Mtf|K{<<$hrH|4KDuiaz)<)vm6sxjfp=G zr~BV>rP!vDW2n2fA-Axf`q)D??MY#+SC9MGXAr8EXCRv;C!I^tpctui~mjGrRcTy#f2pgYm4LNU~ zZC;qx8jcQG3h}*F$HkgUQ;RlZ5`RoorWP?2iCYO#{2t}CDNkQKH!7Z$jrQv_2*#Ho z(MN+5Wp++Gwy!){VyQt}}?msubot~SDOuM}eJokdk zn*QNrS>F8{4)SU-(HTJaGf>En0<3rH!MvdANv&A#kBx44|Btio{2e_|#K~IH*n;H&m%A zqdyeo$^LY%OZ$;qGQ+W2Xr4dO9*Xd40*xj3ux?Y?*V?OM^8C99=+rdo9r2FI zI=i0Lb^2@7Y1S%{$dXa!C*I$jON?u0Y-T-+)ewEO=`KazR@B?@N-q?gzgre+Z1#5K zGm)`duN6v|*phw%F#ow$Ao@kO-RZrINiftj2R>fg2H2yCOL&)j9NvJcqL#sm7xVTK zjZJI4vS%*9BK~CtjbyHx4o%whI@81AQ+rlBXdGmTB+t?5sbUQDqYb z7;eaHgm~0y7~T@oKX=Q7@eK~~4EJSPNcQDqH7i>1E7IcoUKaoKbulw0lWNAXm^gtJ znP@bzx=(h`sVsaktS7fj*QgeI*$VlO)<86}2ng*%0#8t9mMvkBQ{g9+GO3aOW30$H6rng~#zAu2yn0 zPSs*(q6{vYBR1Aa;Y&1rq8M-2B39=j9GyNHRBlbf&2{V)yv=#gd8d7aCu;nTLMc=z z05BO0d5xBj;%~t6mj>2auRGaL;wKQN=4z7Yv+mSCf4w^1{)a`c##2z~Xx zzh3C?{3$cx*jA^Ri7iO9;uZ@EWLtXYHJog}|0p#(yZ9aEttwQiUZv19kuR^dg=DKA zGF_;s1*~d~IK@bUhyM2$J#WOw>(D9yRvvl66Fx#Gep>V8{csET*^ABT$^hixUG#zp z=|QRK>um-5Ljj7a8k}pVsdhv%cfJ0`uz=}uuPa$MlICCB0!0Z$4U^($#e(G;e{v=? zz|6>M?Utv~xB4P4ea9s*c645cxALolCiTsunK=uhgh%xO*9Tn6u?%mka3iMsAOfuP7wZOr|a(#4-z zdN@eo)yFYn!D9jF!~M4UAi#mYHR?to8MRT-m>nmgd+*X`Km$A{q29>YN^?IA;7m1> z9;plvozt4+)wpk_7}BfISTz2jF}CAzYEy?3UfB;C@{?u}s;Dsi1s1kN_cxOWuyhdr}jXmnmk z{PeCsCvmiBzScR1-rQgDQ}wmSd_nItpYmdrZQ$4Dg}9tW=gr?T3;(Q@x#FaM7^F*~slO3)qZQ zt4r92>Yjq3EskA)0wQy>9A}+mqnsT5`AD=zj)b;qoA>MqL%FDiF)qx0=ThCVlJj~1 zlRsOK_?}tGy^iq(>`D1C>C|y;PCkcD39l`2{S@xbwqIonaE=V$3B%G`2gbSDIRWcezc4=Mo0<#Y<#y6!z@N+ub_b5uSNG`SuNncYjP=~zu@3zWw`{u*{PQ;)&+YK*v z8GL!^YsyszA3=obf+ov7B*tlYQ0Z251oCt!FDAXAq&o~K4)HC|bkHCls%pztGXzk6 zq2=NS#+)11;rocxktVzf;}EHSJ*3|;q$z6{k>2Ctkwx1xzPUJLuc_-rj$kC35qJMt@o;wT09XEh*8idu2^K zyITyk(yvg$PZtEW>pWLgznIB`Kq@<}D4+$WJ&4Rl?rR=fS{~Jb@Yyoxmr0bS5o}KP zvha{ulMunKw9lk7-0fc}o|Jl9Xdv9~D)*IIxt||zw!cVsKsF3pb(t=r>rRw&>j6Bl z$^=F5%i|P#ADpJ0u}=Wp%rsSHsp3MxxU`55_`~FeY>5aol2AP!EM$BY_Vo~%RE`d+ zhGBU~a=L|^Tu91Ux*R&q>+Z);%XZ-*d&V}~6j>AAHm?W!Kdt5xZYZ+OehhXAhXF;~ z3;G^l+Ui^Cna-)2%-bI(!A~zn|Wf^l`V|(%t9vq!q0@5Zh@Q zOtzoH@ak;JvUTuhp_O>o-y2VJN z?Ez7&eUdALZP82JxYM%3b#oVdcVbFGj^Fw>iNG)KT?nn62M90YeUH1er#H<6I9*{-!uy$WvQ`p%4J~eiPB1??`mX&pmz`Q(Rd%;^(Pe6a^#J)DHi=GX9)7)&dKq_|5s{!AXfjdZ;&` zaBuv0L#v!@7El=zyE|9-P*~?rk=T z`MGT0LdkE;G5YyiwynbU-;Z35Ai!bTjk{wkdy(HSooA!@JNcOs=ThR}3Z#~-;i^M5 ztJMZvm#<0Im!o;(&nNn4;=3KG4ncqC^PSf}GW!+BW?!==3oZlP-u=4||5`ZI7T05? z;})>P*L-%3mz5_}6<|m1E;~uMuIR(LCe%KBFQ;u`dynr~qMJ?vk~9so3j!R*%R(IR zL4gHVh3iP{oJkf2#@k%b36ywx2*0+{&$zT?z|PH>o1dKC+oyU}t156y1W_Op7T5kg z!n2Bs8F^DY=EJt$|RnC~Jt4}KSve>cXWct@#_ z9Fs@;CRx<2H*XXqm9SNgjEttM&fikKb{p1JfFU0r+ehfz)?8?QnY=x`f0^MQr`REC zH8$AZW4V^-*%f1kI)!(Q#)Avof4FmXF=VD;Y#%nIT9x!)N>+z7$ z`%WEJ&}ZO9srI4C#jfl*qx548q7-0JD@i6s9^)p~2IsUMyv5e)Hs2h3D+gz6^;+@O zafwqYRQg0KU;u0I1+!^v{}hPy$J@(Vjq-E4bbH1n1#12pobZr{DGQd69&Zl9^Sjuu zR&p&7OEngmF~(~df_|NFGdQbd?ba#RJlnB+ZAeVvJA3vfbE;rwd-(;s)0)+KI@tBW z*q+rXN$^*y`Jq;$PXUjx+kiuQqbo3!YXEG;YQ{pWFcpIt7T*uCl& zS(x8X|9~Z#&*|kwF|7CxiZKHbCJ;U46QGs+B<&C&&3(bz9UAXFEiKz)K5ab-2zEBh z3+sx=Dtb{4#kFI4>-t zJPcLCQ7?ndV}f&THrxG)Y=>QTOZRiF*g~vFzuC{`(VLo@_e>%1m&{qdUEM(<#Y8;7 zhx?&lHvZnixsgW=Vcy#eIHJ=(nXpL8H?<(Pjj&t{ZoU}fh_cFo1`+Y1`eno)qs2Aqladac|BOW1XcNnw~FG0 z=`ISDg534;+}O??I#0im$kg^ssHeYUfDko+=JP|w9oCn?^Ptf?4OAb++b zP*v$K9W1zq*3Mj8otO$*skU$~=m@uVk^=N@t@BYX?P>_3yBmGfYxcMXbp+z@nQ``5f6r=?~9-fUWUb(6yUoF*RY8da-^ewlSHUHokHm$5XFnjCV zZ^$lYOP1R_TLwdDx=XVmzYg;s!$`Eqtv7u4KN|-4_yTa;PmcvXpIWp@tq4m-l?9gy z5gs8+&i!<>zq}ZP_6fkpHc!Dq^o(-%=(Ns*pO%4kcbcn%s>Bo5nn}V63JE=Mvn?*| zl4Il_pg8Yw1}wZSNo#(q5Usd3ZJ|?`cBS%&em#>n1EezM_ge?4a}XOjF%FT=km8KI z1Hc;%GM6j~FFDQuQdgWZw}8It0JYeGAJf1d`@ntJbaq|0`)e~}$?`upTkPZubK0xO z26r|KB{fKBf6o#{VsBlecMm=Z7Q-)6qH7?A`N3Ay;dT!dJw&?ranN61o*-4#6P?o! z5NEJ;6VOyNW~#ob8T5s~t(##ylv*?%DOmRY=f{Jl8FJT8^`gfEb8b*Gj>7HNbsGmA zM#q=v!n+45KXT&7qUKg^Ro|L)diO0mme0U@Ec=ZCbhkl24~el9>Qnl&p8tW(<7mSa z+gKdf$a^>)^k;SpJ2`0Y>_Dr2wMu2&iwn zKe*Vmi^B>eb)56?qtN}rCi_77%!Vw7cWwWgJ^90anLCfsLRVtU^>q`2OQ!KHw;x#&Z0$od<{@!$ z-%wY7<+K)f15sT5XvfKtR5T`RU?X^2ranmC{0Qj-;4Hla80llg8Wu`eM!2opRpAr- zXj!JoCFMlP$eZ`aUbOiJ&C8Ug?cK->QL^MmTKwe#5c;5FRC=+Wl3|=&B4aha!UIGK zE~@>?VQFP_4W~THKE6NHbRilnd!;HRjXUWPjd9`MLFTLNpb$FpZx+t4TQ}^yzDzL5 zj%s?;4DF{|TO*hVDSwGLus_aquy_POFs&W`bHmm{RALXpo$YkDNi}hn>u>u&X=cuL zOUK;RTNu!p@qJ}G<1NNIn&E@}BBdU|mpy-(!|;0$p*{E*2eEV@_b#`uZ~XPY_{Zst zgHu9_HclQ!(oTjH*(Ty&A=~>rts=9=oaVKU`d^r@YeJ3lT9bM$uZX3N`B)ez5yz z)n#h2P_+ATLxoF2=RWs{nJ*Ul^Xrh_GWj7B5%MR-nOEqYV= z$q1Hj#L1+pE*r~G#QCG5{Yw4IK&|E~v_Dl)?DHA`|NWNw7s#WV?Sg$wW!vMWGE<~j zBjKe>=`!@nD_|K0U)RHask1jmza&45{aaRno}G|evcQMrP}pm+G6s%O0yRYW{MFkvcZXSN2Il6z`aCZZ`3=kj^RGa> zm`rfbOD@YmstV6X>ZC9Aqhy@HdTv3;Z+}Bj*3GeJSwud?gkB27>Xug zzcFUHy*bHI+slS2XO10)XE9n4Hw9^wn?M}au%fVV&a!DlT1@#(LHyrCWB60inS@); z9=fKfFzZ+=hiS5cg`xRW_2sel>#rBO0;(zJ?-Nk*xkV~oGeSolA%6z%cDUIoUcSWl zu#ELYdBLB1${qYyW!b%3{3c)AhMkI3dL>%CzC15%9Q}{I^11I*)_3&lPYj+v%$8`< zNl7cg>|sJSo)-uiL!Dkk>d2PqbF~B5qZ7GKL>Axm|zsFCrFyTQcC!GpsShkM|!-iC1q< zMRg0{fgP8-zD$iJN1VzTe|q1+fvi{iUAlmlO=0mLz1mW%G^j4%=FIAwwd>+N5uZ@~Q^ zJ~wWG1ydnhn}z<3;)CfbR3#f{rN2VY3?8HnQ+ces)}B!@Hs+2l_?gaH4ZIwoQ%Y1$ zIfsy&2Zj_$bA@GDHXA!rgpTGTu7tmD=e!Gk=W6Z17f#=p*~UIgSAL+rvNCayXgu4~Ma=C5fa?Q+y1i!HYz2ww`Z&=LJ^bHk0EM~yS(0G!(e}1Kw z)zQR6?z)2oSw8}otGjHVIN*4jvCK+(3giE^51MwqMwrlwtSTxKFYNOqQv=kV*7PjM z6gFP!R!kpm&eptR)sX6NJ3~&UdwMxozYdHT&UiBt%*m6)nxyvfmdVvY<|O+pberl& z2Fv*2#&$Exe%MTB(C^t!4}zq4_;zO?Ik%s%jevbEm)deS?;vmKKF*Rbmnl&?9R!PS zcmAlzE}IODjqP^l!Lc4~+{Y==MNmj2?(S#6y&Dr8*-wJXsu^;#5_*Cn1bd{_qza@D zuS%?rbr)8X>&OR;&ggofEjvm9?zhT_)6=Qm_5Rl8&?7f&?-Q(fQUQHlDqug0Z5A8SaED=GTiik2#8Q{X&f~|$a(J}sd z3n+~8e+-@XBimaa$M17*wWV~}yR|}M$0~}}PKc3MF>AyOYF3SEt=cUTBv!2uf{LI< z^_nGitR_Z_QnR(HMfE=ZgYPfrd(Qcs_xtrqW57UQhE}s`s+UYS<=yi2@=T?w{K_+3 z4Th>%E2D4opb2$%ZwX(Pu{oDTA4q9*%MLzHJW))fw2a0XS-fpNj!4St4z8U|i6AaH zU7j< zYiJ)uraPKv?@Tq4!H(*4OQaM9BF=EKxxu z_KyBD1MP&P5-1-JDRSXQ&_6b_)F!Tu)QpYf$j(k&v&RU#`*6zn&4jxg)mz7OJkrsM zcqUO{r1IvX)H1<&v3IBuI>A#LsV`=qrKkJe_caSbPu%a4U_9N3-^LTlD+_PEUb72#&U69_n%9nzkae8{`&AU?hlew?iBKn3l>0cC6F`a#X-T)y@Rg(J> zQmNb;!6PP{QUY}cSk9SO;PRiz&$B6SK+ir_wzB24l;66yeKTKggig;8J0PcH!6}&{_hT zB>@xpvL(A}3(w;DJpA`8D$~-2)Dp4!hukgssFL+JcQASYFK?IiO?C+MFk1+I30};> z3xqtl4kelvCqFApyRtT;@Wk^v40cUGit{H&4y-&nNkr@Q_kK34@cxJ`2yGG4J zNgjQawoG^^ylNO@m#}|HKH|O=86R|AKcP=NbCKXK_uBkl!(jq~RO!6OVSvD;S8|?` zZ(99|-Yi-9QsFOv1nRk4#CA%6b0M$P?D9Db&BjG*nyWY6`AbXDzmjw72jA^si_lmm z)mV@FG2px!D7!u`O4ri!LC`(O5*+ZTFnp^x2jrVTS@%zS0DaCXI0sitMO%hizRFN| zfMbJ3#HrV@GgtoWman}wi5WKdTXbiv6xwhzyG0pt5XJ{JH%{J~CFC82HEJrSG~Z_J z@44Ll9%-3H`YcnXE*YNu%V^79fUL~!z-yB-12g=74P#sy!rK;Sg#%^Xv(|pa&L4~& z?x|`AsA7L_GC`Y|OLGQs7afJmDk)VbE}a&a(|56^>sMz+ZPU)m!C~vx>-p7efh_zb zUsd98s@}OCZXEI7l5EUvD&2*%BlQ$I->pfiCFULbas_B+Tmmrq+1O z17F!Hd+x4u3c5(i@IfA>o6#?46u6Z$B(%DVuH6}~1c@!GCyoK@fynAY7V=_b*T zw~J)8Cz?gvQ*R3{h=djZ|8Zvbb>>*V^;^c06IS*?>gchQ!-?EwaE$%^@SE;6&|mvjle01p*g`q!dLY-KuvMKdsb6#22bet1(|@Yr>I! zM7sm?-dfsw+e_4J8bwQ}Xid7y3A>9p($(`w|Fib&()+z<^t6Ggwj zWuC2=Dtf1qk4Um3M^^bO@zD9y#q0=dl0g>}s2MA>M1;o*-=^D9W~;v~LlFEd`;-Otm+`m+t~@J~#nkxHN%&C+oTzvbOz zD`J`zap`0!Jv3ocqllqWB3c?-F5{7YZ)hcI>}}t!#N<1Qn3DQ0?*yWX&JZ5!E_vL~ zdKx@s-Tt!4*mC_=L;dKDq>40{ znbGC5AFN1Hj^Po&!8qG$UBi=$!zUpQnL;wptn#W>Aj1M&48yK4teZ1Z_SKp4avs;1 zy{A_g`ULED{sbNWago(qM~x)g$E;4@{gi;7@2YEREC0cEaDUv*8D^d$+q4)I?w^EvY`EADkQVz9!RK_3SgM+891bAx}uv4@A~Kuz$e|~e(HQ}>f++di?K@q?-AUxYmc>A z6st#N7dcxj%M@&dwBg675bGq0UtZIGfTD_%xDO}@x~u%Kjcp$O@ciOV8bEEswS+%T zl~1rjz7-3O5^eDv@Wpf1oRXuLuL$W*_~1QC@m!UKd272?k=lC|A*wXNcT60ysyTqH zjQmX*NfB$YCgmog(y#fsF)N2exefKBq4X^~Lk!Se}T9S(}Qn(K4wX6 z$-=*EqJ1;&$m*Z;?#E0JwVzSG`v`LRRM5=b3kpE6k7anm&vcdKP&LY-uVu4_0j_$4 z{vMwr?arJY$u%zQ30bR+t^_>bi*9WXV<({qxzDzzZEecTom>DJV$D?(N=7d+e?ptN z%Ulx=0ti-^PafqExecXKx@AyyR?X@Z+^y|>1o-6l2OlQ#y$r=dDsfx#lvb22UXQp2 zK|enl@<@}z2sdlT1c>Y&GeqBTKfz0xkVuW7yQXCl>Rpr1%_~O)ZZQ?K7zk?5{WVl6 zjOuWp3&SzqH4NC)Z(>3U`_Eh8twOY2XjsezkR2KoK!Ar=?c>wCNG0u>zDiHR2?kfm zp0({3bbm^sN~S>-E561|dCsv6S3aG&zjooF1B}{1nrI9T#@VA!NY%Oq!9LGM%`4r1 z6gL40P3++iJgj`cn78DZGe`01Mt+PKQk3(n@{(1yPu{?`IA6|Y(qR2gb)`nBea9v3 zz;?xvoK}egxz&OL^724#ou5%3{JBz9A`hmr#{`o zV~O7Fc75JE8`1mOs;(A)W>t*pe@Uu`S-z#2-#AW}m6YgAH88?JA74Luv2BIKuK58f+IG(spFf>GpTR!jFZ0en())Y&G$P3$6PK=W`XWZ! zJ47R&cavvgg^NL=d3@sNd10Caa4y3eR3>$O96K!^)-cJDMiJNqp=%9Q>);C4xX@{B zmZaqo4eqo^SyR4YE18)dIhPLYH^Fz8&FcScd==`IC9URkIPdSvX>Jc%H>j9m;vg=m zKIn)khX`)@Wq$d-jv^G=%4NDIXY%BYPzddrv66Jb*U7&g>~oZBB=z@7>7_VlNZ`AW@Vv*@s&{RnXqH%Pr2Yl*QKK|3aLPQv_jWC9Zc4|J`M6Fz8P&MS-a z1q{7&zSK*GT9~5C31i!c}VlC+Lc6K zoWk6r#Y=BIN5+@m&cjX5S^-NUhM?;sKkprfvs(t&8p6b%` z$>dF31r|4mK2OU6d_$twGg*jMfdi@cbRxV9Mo3e&77q8r7FXS5)$h?V30 zmR{PJi3~xdh9@FkyLl=`Stpcb{&VCas#`-gpgyAx@%cas`}IA;UGdq!p+Pi9N8x@3 z9rLlhi!^^`5m8&pXRDe<#5XuK?k1q}590G;q*F@bGv8>tq0UMFMuQ7~RH4dX zApdjBO^;KS{1utC(GL9E4{Af8rwzN);N9B~a&>CAd{FCi+nxwl#L{Kzn6b=?d{s!a zPAboU?Y{u;R$T-V6QTT_x{7Q2}!SxQY)6YcDN3TY<`W;ZxFCsz|~DDjWCyMR1e-gFKTV@Y;x z22t;f8$_msMyW3bK5_-mhB>8T-Z(mk2_~Y}y`PG9)@^2QT7-$7vSJ}A9C%AVTjVW!eb?Z2!_lfA;S+oA$2E%} zn=oN*7<=Bg%x?n!TubVu=AK@>V}79}4S)1q55LqhQ)4&G7l)Ehzw@m4nMK}(A7PH6 zAH(T{sXTvDa*wOQ=%J&a(erKu^!gtm0IfWEJejUWYXW=#)t2QjoP+6c-Ox* z^V<}>5@t*nc?~o@FDvFQwzutTcPSPGhK?Th$~^h7V*XRdrg+vxacD|a0hmXCbp=W~> zaIJ1L^O25OjTVR$s4-5*JFG&+3b#;e8J;~3H+s`H;vVzb!ncT7Zep!e^n9rH-ku|+rWd7Nw+LIVpmO8uWzUw z>UiN&RpB>l8KdN(0URHas$U>sc9cCaXLzQUH{osxhsi+xg2e5zNTnA$kLtdSzc{MD z7o=z-7_OIV@3QPu-_mLa_mtX!hi_>){FS)ETcA8hZecP@HI3B|Z8PnESAczs1EG~B z&^lzT`jLIHR9rsIx)io^UWCgFqj2`Y8wwi~ria)5T*Ef&U5^*FzhV4ULm9?174|hV zgCw0l6X{e+o4+?Z*CP^f=*hK1uL#O{>@hU`>GKX{Oi>{{_=l%phXLDlf6vI>dj?$U z8M{}M%e`|7?fK9}xJG09!O|!KKV3;&{9xMNdSz42Vuy}OFKkr?w?N-HbOtDn)Hxn5 zk6{r8U_W*rfOL40&KQc+TQ;^Us%kT&8JldiB$Y*7s{bLD@7-e^@98kYInw@v_rooE z7pgM-y_iOteyYtT0Yt(2bTWD2h6@VVc1B%}P*P-UVKbNF@UHveJez14&I}2|i_z zI)^7gmcA*FkFqKP->uZ-0e!EKUmLClW(u`YFKlP);UaFb>J)@Zj+Pe~LU2DOuPc20 zkc2kYTY9|rF{`&XSK?dfsywM25+y+e9<^$Sw|^M&7&ICC=BjL~q3`ln3Ra9qv15iA zEJj$4WQ~n*m)+T|IE1o?W5Z-jL$Ow0cODzQWTAi>SDzH9s;d73=#K`R*3@$=C9)u_ zEk`%m+&Esw2QyDE>i+jv8lxzt z3M-M$;LpeJL!pVF8^Uahg`bT4G5BRzp1O^bqh86oK8?OgovUv}`D);WUj@GnYGRO^ zAawI6%IsXs3)BK8x=(f4?M?^80j&BOk|nNSj0CR#lu}*@`^xak9}=*sRoC-iZ(tZ# zoiE1%t%jfzeZU$~399QT?|cL6=JgnF!K$R3HDk1nJ~2a}NK{2BfcTH_tL42lqM2B7 zZ-%eS=5?>n=fZ_a|NTWWe{gZ<)E*4f&oE`!85ylwU^3kUl%Lg=I~##S^?P-j*oyL7 zVy`fM)llJknVJ36-|^RzW*F`S@<_=&9bQ0JToJ$8y=0 zRZwbZq{A-YgkO=>V=UnMg;f5X$j3om8Ec7gF4(dPYQp%-HbRYu=j!(uCL!ZpSS_Ui zJz9}3HzTU1zO%C^V@>}N>S13mSl+*qllir=cg2XKC#tmM%a`5o5GL4lqlTM)&R|HD zed4n9jj>bbLHrOwF$Z|29=Dc^{XMvSQG+U+t}o%cDARscBW~b1$rwrYLcJH7qS>>f zY2r=hO9JF#OO7yZYQIDIXpSCi*xPCJ2iH=?S_r9xWwq_F0{u6lhOY9kqs zlUD$3*Wi8uC2uU9mE|Iout3S&U)nQ-T+@3Jj+|TP#Ukr_lX-qJ46W?F;^!nwcY0m8><6ZH-zw3T;eM6ZTLjd7f zpkpz1+pkG=iHl~$(r_=h}kCQB6 zcQgxN+!4sgCM48q+YEkZteGawb6mPm_k34#+OZ5~sqP0gUKsdZKoO%j8F`)x`G}6( zGQZVj-{IEQ!$HgxmE#tHi=18NGm))eK4_`z&$b^QT_oh(b5oD}m@#~uFp%?DiJnG` ziUO(ubAYTh9}rCPp}i*NZf*Pv?Lk_85}t8P)=CqRR-hCc4X$SftH5uU+jW(KKiNZS zWTEDrcRhNcX-H(iwE~6R+ReyRA;cG}H17Jnqsy7XV7!{w-GFlyc6^iRMj2wxJR)f2 zCwb~?{aJK!-?#qF_l<=&Ai0|vL>gune-J5tkjIn@R0YCTHBl;md*G2?AD30VbkKt} zo}$Xa*ryX;`K9wayeiM{K!pGMOMQd~|K2*(uU8hen_0Ns-Ne1-R&$&8L<76;$-4&` zW;Tm#34?i5*X!q=syD(uZOidBhSyp1o{U(8XsVTm7TkIa2MQTzTZe&d&+c?`t|LIA z!1@sJSV286Cg~F$0k>fiy%VeP7niRTkl;i;aBo&iV-vYi6AdK8zZ>;FTjXk1{- zA=|zK(F#)u&L_S=e8;>xHuL4 zzDK3!iRVfiHv25{n~5wgE6QvZy-y$6j{FGjteebU2tDNWcHE{lo zY;i$rz7o6wo7W8H?RwUP(kaPxG%}%YJ{REqBhejl6TQZ~bwqsTB`s-g?{SDRFEj%% z-||OhlJ$5LK_k-erNL35Z1Cn=N{SZxgjw26xeA1m1^rK>$i8B&-WYSCzd`ily4xGc zUS8{xnAZj)sYxr_89mY$ZhNQD1&gO^e2L@}>_|H=(aruoW^lUzO6p$kS3#)@)!xsX z#yf>CqefN9BNiv(VI1{(Q749rp^tJDh2Yz#V;f1+g#3H30sF7AwegUm`$!y|g#hFvmn$yCm~JA|-DInlJ;=$3Kyk5TLpeTuv$$!t6 z>pI)zON$K(lwuLJcQ(~i5T;m80sxLLyUYWFMD_iU98wY?SC@E)wALXdGz|_a^Y4M6 z7PTQ77WT*vEzdg2T2BpiEN-JJ>ABgOvpfYn`tvw#?N`i6F_4zae(KWfTR}jK%&9H$ zO8W-JjL0W4y`~F#clO#o zT)&;_JVl5SD+|>xh`3fU_Hw}*5-pQ*!#tS$@+~76%RRA?J<+JBcy+Cf8S}WcU1t{(J&i}qG;BQdm+-L7o z_&oBdc-x>olgg8%90($G*Sa=F)p(n8j1!n?a5wE$GwY1C8xSHtL5lb#AUCWw zg>}4RFf_s9i%Y(*`DyEVb$;^Oaib=SlWP-O_ba|v{CO$xmAa3LY7{{8b0 z3?JH9ejN-{tP@QSBUlD zetW=V@`I0Yt^+6NDbPe;cs~X|akpXlHC@=Xt-X1PIKKKnY7N)r+{bV=X0Fh-8$S`Z zkn<Xz}489#+yVQ^3e1Lc+Boh4JowrUM$@iW*2}&U}LjuRzXob>}|b| zQ`H~Xc*3mC&R?&IBXw5*We}z6J|I=yKeJ@~)2oB82SiL;xX)M1(3%m|D>2&EtE#eV z4GYzJHqGkN{KU4{ZsdaxxC)O_;qo-w4-s$rT59Epo1p~WQsv?~^~dQ&xEY9zsclMf z18R1+%WCITnrM6CW3W)sVi*=ZS-Mw(h_f}p%5U|VqOgOI=Q*$M`Ej80yq9u=Lmk6M zmJw@bqMGNt^UQHNe6bRui-nxl{EtgSs;o?&kkoD2tgmjo*KocA%PShB&CSb`)OKIH zvGh?S{18tUsrI^Jx|Mwwul}(SAGiZTHSYx@uv#Lf^D99FJhO!~!e_%Mq~HYH6Czq- zFTR$dP$XXNE}Ql&RN?TkuV5{V+)ObEtT^s*R}!W1eL8fUAy=q}p>bB`bfMXikBJg& z3_p&laiP+KHt#d#Og5TfO!*v#Avi5CF#Y8RM82dXQcOtWnq`!rP}xh4l%8Ti%!1QW z?u=ZOjXv#mUxS|}dSAJf9J zhF{{MLwcOmt#aOD{tLCV*(+67+nsQ3B*`^wf$CT?sgb__LFN@>V3ZQ z!sMExlEFLHo^xzO$)~{v-!@sZpu3GBwmUhd**{t2tU;01m^=9N79?|Iqu^U0f*a? zqDGp5#sfDcHW_I;a{g+u9=Y~bbQvMYbIawUkW4I1vVx3%)EW|pFpux6il zn{Rj1b*GYin=(Z13C06PK82a{m?T7kSQzMXfAOu%a7fG>86uYh5$KDJ35I`9Z(I4! z>oOvJtaFh^1c#{BCiq4+C6OLu%?kMes0>+PBJ0DP9S}CW1fw z0D6x;+qi~Zog&uAU)cb{miimc>*iq8MAp;V8}>8&c3ChcppyMviR z1}o(h6?0NI5BNoo(Th7&SXPmVhmtk5z{WqvmmsUJNR+!x;j>b6Q5BPvixrO!u;yVV zD{|TL!5*Fr*r1?#9vAVY9_vE_FP)qS#-uItukLtF4{ChZ?Vk;#;k&Do5Pp@wj72$1 zs$gkhSU}R-lp}njr%8rdpU%$p|Na^ryQhURnjiL&3RL!-v-2&;uBfvXoL)ZFQ|@eW zk+oJEv2c4C(QjIl@8=)RhZ6DyAT>Gw6>duu9}Sq2iW1#5XID80rdJ{`V93%5c8{;# zr~;pMV4uPauEJjy7iq9A%Bm@%O||^~CAv?Z`^Il50WKh^%!(dmFKP!?))n?{EdS5j zM(d74mMC0raK7Xm6rb(8%?P}~B@AoU$_v~EV+OB-X|6}| zdswDgO&xswDD&PQQv^Pa zkMZQ)!OPkh@e$AW@!x3KsVvBAR**kIw+?VK&bMDx9Yk(|&QQ1QP8~UJyjCF&zxYiZ zmp`t~D62nDU+r7co{kP}syn3szi~Qrn#7elc#cksoFff7a`rMRJJhpw#=A*lQyQ^o zm`JgNjO)Hr2p6lPX$`{on~=sA4tlJiX87_R0PP-Hg%0enEV|X;Fc9^aX|VVWz7_`J=1g zvI`24LjSf&egL&>wBc$)Nu|Rr^hA-%)feg_DvBNsSwC|2{G?pIjEmo|p78jEIq4=r zVuYcxXVbir3T9r&S|z4gbH*-f!{<+dFDA##>K(sGG0clhzaml!RId+%O2e+E{BV;k zeDXV-zc0bxNsT&i?a!B=cO0BJkc7zTZ%*3z3KU-f&U)t}>nZiLj~3S6tx!^EiI-J= znbkhK<7tooG*O@PID#k;p0SQzORZF-Y*jb@%7w`&W!^c{t&ipNykNx#A})qx7gf-# zF72wogvC$#PwXuFdivgi(iZ){FBaui^6;H?9ccz@7&cKy6dpOX1@{raM`~K49z6k1 z+Nlq5ERflU^-z#xg;MsA-;iT}Z&7p&b~5A(p|I>92>4+0bUfcQnQRgkz>qP84r)b@ zd>v+w5+*#{-vU)ijwFb@9KD3z8^Q#q%NI;173~&kyk{oLm-F@)B(FK^ol3LD@*>uXo=5T+MFC#_W zb}!Ntr_zv!GIi}~x7oPtNBiFsG|h1BQr(3y2YhvfOL-x@x;jifI;$76AkZT>RYA$) z)8jQHA9MhE9gu*)+v*Ur=HmcLH-4z1sF0=KVOR3v3QNxOaUN`Q_n6ZbxDb7cH|FSs z_5;(kB;_8JQ-UhZM(C-V*l4bt3$EFUZJ1A+MQY>14lq_orVKa%GsF_g;5uc`y}MUl(G9s7Yll z{pVn_a5hS6TVhuQe!I4J&^@Y554SMu>yP{!?3rDxRJR@LaY(Rbp}ep6@X zW^$HN75W5fhEowie2|l1`h2G}Mh-tbX}LAvwCd&c`UAN5jyD~8yX!%W>sd(a=*5p` zmZi#A=Hp`2rxf6PZ-2G^^Xe>fq>0_Ax3Uw#i~tC8Uq=$xb~x{HeFW zXzHKJ!LN-*SIDlDp0`;%-bxPv;K(3OFUwoj+Hd=gt@x2lbr1F7V#Cnxq4XlpnVCTs zZ%gV?8D@$S^u?kC=^&Nf3(Zss&9-@&z=|ufiXdZ7YR}5`JUO#A*(W2+?EZxKR#v{Q z75u)5%4?1bq5;Y|*Om0N9{w2j zS0l(hTzF~BP{@Z)TJxP`1t+;&xhtA-*LVr z-;Vji%A~bC*DgIB?On^vMXQv6f>R0Mx(J=Tas`z_S8zBYg8tkr1mh#g#>XIv`S`dL zrS)f|W?TV#DFk70_G6N9l=Gp<6Kw|ens19e=cpXIx;I4Ln!8E-zrXO_y#{4Y$Qbst zM1Ps)W}ik;#!#mHysI0E4YqUUl}-5OdGRB6=|A21$J5-rafPY2Q&oY&`2$nCdv* zm_u1(AR`@~lgH*SX8EyxqK1drSTJ-A7$-LP%X8U&%ys zE*I}GX3pg+Hm*L)0-}zgAk$_xrm{D|#F`LWEw$eVKPfA=TK)Mw_S~m}Jq9pjg7Rl)uVhx#pXM{wdWegd z0=|7Qey+XY6T`!3q6#kS1E%RuDJe$^RkrGiLTZ@g@ zR>-k0j31ZPHKyOP%7xNj7d$APH;mHJtaHJ-D(&2r8iq(-w=_XS;dGDBdYf+Cs%rD; zhVaGvfgejcaFF`O%=X@kR*&AAy}7&_DH`?~%l)tj32i)cXMZk?#Nn^zpTh^nocDe{ z3OX&;R{i^n1I*saM=SP- z0w+T^@>N2vN4AiFVR$3(2YmV?C?3_qGiQesW%)kp|h8EBRHS2tXB^v%=Eg*hbI7aFO(9 zU8tu9@tS4TwPMnzc1@U*;dMDB_q_NnWlC>+=8A{XEcb;Pi#^Za(Re(UVi6^rKWdq> zWEbW!8(QgI>O$Io|MHk9^{l_HtkEoA`5}Zw)tZURX>xoYmFg@faRc(=LC$#P)U1Ax zd_LeuTiQU%7T@Tkx8V#fMtEM`zZ5e>Z!1!G?41{w8otX}Q~H|H;jIhjh zFOPmG@%7?(r}`oPTo&w3YaPn`-akIF!?qzK?jp72^49$3i#2$o`xkH0;zH1w@bciA z3~fNW7C5iI;_`E=c?utY?6Ad>I-OYDYL563eDsM0=fjSTZS_ffWS8^ifoUc zof;Gj(|N!A@%NaM;0z$Y%#7*xsz5Qrw+%7o)f zCBl`D2}aVz75ac3>aR)_R5jg@+otov_sZXj`AFAvP_O%q@+fqbaytXub?dYDhh3~S zAJ(H?MxN;5-z#hsnhk9NIx7DZmzr{h<%C?S5Y8GJt$hm%{}EK-n`AaaSMT^xSAvuT z`v7jS)yXWUfYdtS>C47nji$ovklP?sr5PtM$U5q`rw~(PVcGNm)p=+N^pSEZ%1=g= zD|%7VfKQT!{O(g-HTFTi9;)uwt|4T8p@4hgZ@)RZ6_cxHOqH%Sb;x_OLvU#K0!?v| zT#YfS;D4J72abq0cNUwckp$}8_?OCJKKEAy@8CSjot(SWS+zGgS70`VA4el;uZFdZ zYqG#+Vb?R!d?X^gfP*R6OSJ#|HSUbV9%5F$%*3$H;cJUXTNI@FtC|}&I7_JD80s}p z(d=Y_ziI%8@YImB^}3NlbcxcNZ|LEq1~e(xl$eIhopUNu;%_jlG0cQ%MDBA&i+yg% z2|VzWp9(n>UAOr`no0D>fHO8n6lU=s8k@GNRGQeCqf&bOc-KkO*59T@w=Hdazb5XD zbXdbqvp@8Yk_fqKiwXlK{x})UA4mq@HnG%t-xrs}Cb~3a4lu(@k@f-XZ5dDO{q#xR z1mfKS6SKG)0M7j2ZCJ{Gf7M9*_tz%p;^C9>3!W@N)Nc)hN#{RSV5s6F?5#Z~DF~)N zmc6~)FCU5Y&BSnzy|Sk3z2?ql6) z)1|N*YrB=dJeHNpm^?EbVU{{LsAl=nsr=L-o2VS7C06>Ej;ceL~HI$;KL++saOBmADIAA9%v}z2?3a@!wwtR#A?! z<`v6YcPb9tyvJd~PPK}@s7F#&vZ8uP1y~ zks{dbEO-%l;5Z&p`*4|*3IDw<2_F(Nz=(h>=qY&Wm?hs)$1@AR;%)PZBL%)`U9-BH`=lqgOb-!o7-2NiHKsjWk!d6$goB>uYBI~}giOx@le6MAT$#{5%j^ELxA`j<@e1xla zmEww4Sw?F3GWs`C#_D>3(Q)w36^GAravY!%Udi$$fe^|bsc4F4cd$bv1n_jCg2Me| zx2*A!AE4kaCco}9cL=NWYAL0LuLDMLmZQPJ|NWJ|8Pcqx3X)cS+~+Z0PUm6!dc9(> zNNHGTVx>|6Zo*z_v0r}9PfrRg+AjhLYG}fz^-{vUhhXS$pn%kU+afm;q3D02${6o` zo)|>r4untn*rkjpST*GwSzm-Vo&?pdT!Xq%AFg$*vw96$=f31BpjQV}+9Y{YDwmqE;p_h*F7EQ-8zs3(l;xJHly4ZW;vjS?4-q!z)lLH zH#cSKkW98~T&u!zA)Ib2gn(dxhylry2cK$CxyMa#zTAyev-J_I^-i5x!Q1Ms?aQ(T zXL`1t0Q2=9V0W3&=?x2n%&wsFIpbLi0+^mP>g84W%O7Sh>#NOYDWM)C;+*t?bePg5TuORf`@qFw{!e9n0w_c$8O;vZd0#gbmtJQm zsVUA#aHjYl+3oh)kb7Y-CGNd*7viF4cS3)?P5e>+CK;*hncIwMoFNo#ZBC@7VG^x% zlfQE;vZWfna{HxWpIKw|8ybVGIZpJ`^7N62z_i;Xy{R;`ORI%QA14L$Zf-si&8Wni zk%y4XTYZ(~AFgryZ;*j3(2m#Z!r`nIxrQ2VKnd!)>ZqpUACkQ*z%@UHC+!gI+m~a@ zoS#1$wiO%+U|0Fs^rD!}IE`v^|6PdnbpKgTPplWOJ%lHIjT#}LYeAgW|6s0izX)=5 z&f37IqC+@UrC0JycRc3m=m{{}HONTNbG@=-=z8c8$goukFR&}5_*%@tc%O_=%~T1_f^ymZqotjUlfc6Oe(D;T zDoK5V{wQdgErV-6BDb<*a_`;MWc$bUf)`7I=W3UyqXEJSleehm?M!L$z(+f+DnT*o ztZ0ML8H{ap{LGYM;a#JSWO!PR2D+9TK34&e;O;Xe*xsdtgh|W1W1W=MBzi1VNyD}M z4>RnG(D10T&~fAJim{|7`QVYNlcPr)H$LJNvj@B*P4zPpvieuTgOo;X?Y_?1^9+bK zAb%PJ4->VPo)0@J;!Ie=()JOLcnA0j3{pF+r?4Q8ac4e*ihoD>>QRkTfgqDF|NXUm z&6iZPvLTap)X1$OuG{|d*r3yirn99;n;K))rG91ot(p?K0!%UF67xa(|I>#qzaT{w zd<7Bz$Xguccbmf`=H@Usy46;C*!8SKj28|fL%Xtv13*CANQ(+hxPr>vA0DK#IXbcvFZ?ltRc5aV0W zi8(~kD)XCD=EFp%SVbWsx0!u>N}`;jd>#PWmv{WQM`j(3m-7N*DhC4wUp*1cZpE77 zHEmo{5qIF_Dx1a!VD#|+Z>i^LL-+0GtRCF%e7*UarbTl)0alJiV@-v;2Q zN|l)!-D{Q5Xpm+)+Ju@kR}50J0ta7nkc(37fsUFr!U2y7{xc=tulbp)N0uM&O3;{} zvv$G4%<2^FsOphfQp0Kw&hH?9wk)=@Rg9;ANJsU@c%nR6K}K15*pL_jjgbiS+vfrs zhG$=~hDHflCKW$ic`PF4=}T=cME6zdvSk#bPl(Cw#X2{@P|fqnA{mH(!_g1iRzT% z+fBJi`eEFpsyrASZXc!Pqr~er)qLnLI3$rh?=j}!29Um6%a?uk;3qJD!O&La@^Rul zu+RCQffQoJ%Fg!oFdVBR-C5~pU!R(rV z1!TI?u>vNe!Xe-JK)#3EI)pn5W7i+W{;Qa3|8#@SHH{U2aMWx>a_Ll_bh}+sn-E97 z7~U>of%SZU&}E_IxeD@k-g~83i8`)`p#QZ8U?viul21&b(&{xlUl2I(u>I{zV!Aba z7p0xa>vO+^KQ;YZP<;Sj1{eHKAC_1^_U+KET+DL5*l!0jQ+IVLczz~U)X{9>96N-N zH_~orINu4%K|1$s6rtF>1F(^;>%vi4miUh+SK2 z_OWGAyP>oct<|ccbUi=6f3Lsq*Xus7_jSIHBb&fq0$7A?QybwZVR`ZC|IXEZkyz=i z_p-!-OoM*?3;ohd738M35mY^=DzOx`@>NvTBNR^|S=%!t+Tevljp`YBvtIdDr=>02 zcbj}zOXl+8%|@Vb)iRQXyU{4&TblWz-~n)${?WXU0!fLP zoz;TYn{R?Q3-au^`f{E zDi{e_sx7`gE%eB*?E+CIQD#GrUqt`T`5g5;Vj7%V9H)T4=9#f2x0{k$m`W$wBr!-G zBhb{Zrjs9k^DY+@44p~}m_xLr^PM+xp=%|hP~Fwg-^Y*E$n$A4u7)Y6cz!$6(0Y-$ zOi}nzZQxlQd3YG|Pnf8X*`ELW7rFKE+*$q|lz&~}2I55DvdVnher_jX_K9wLemD)7 z)(Sf2EWAiQ@XNFNdgG6Gh#5wf294ZGcxuYqSu|IIGI>S1S&~dCZ_8OcHCpjn1@ToX z4TAZ^l!cxcrwYpT(q~XWtkKa(v5&M$=Gs{BSL-OT6P%vYoM7OlLL(F*xP@xV)r}Yo}Zkx9ZGFy z6%3Oob|YwdL10SlRaY^=;c>A6y2I;#8@$&Jqr%^1ReT5e7=3v&r1?vA4wkS1RIHZI zLheu5l~g?g6a9sNd}iZH;j++MB5!&Y+KW@F?7KOpmJpB9Q?m? z4hq+qB|a>`;RN1|XHKH1)P4I5j-d3e%-(jB#|I(fxs8>Z1Kf_$s`+4JdG$02W+GwQ zC}fcnt)a)pnV)0dK)DA*))D=tEgqRk_|dPv`_UQt*Af8WRzhwO;FKqn|sGkAV=6qT8ZE4Gy8t0khi^5 zAn@?n46~yr(A`-B%)cg^pvxQkwS~p`a!Vf97&H56zm}W=>PlgC&wdiid@tIPS1)dM z>_W;HFw6a{?p!A^TI?&8l?6WI18M2C<&mtO(!NS32S&bKrwa zYuCD5l7l9%S(4PENaS4jT!$hB-{j2=cN`f^6Jb)W(y2 z)eg6OLA`7q`t;*07eXX4G<@6wUUySguCQ?KmQu{w|7zk!#Mu9tqm|V&3K9+_>D6Bd z&i0iiP?HqlgzlD%(CE3W5Zx`)D*9d2)BUa?PA>>;SsZ(8!d1hsvUMrnF3K=saJ34F z`{q4T9vE0#pjE%b)|Iaw@FL6b(M$@j1Os%b_T9+N5O}OX!{+GGs>;!s(^0LKk)zBh zk$B~St*NFi3s9*{et)g^$+YSKy->{|QIT4B-iixil4LZzSYz}6e~w(8Vse6+6bHWo zx=exGdl2@b^G8v7&C6Cc1UKZ$caUGP=9qVDDOY%X01c(XRZ{vg z%FoV_Li_LBrHMLZUVG&FaB$Ojvq5gO2IVhz{F(>Xhe|DA?~4}cq(US}e5 zm3oH9vw&Xu26H?Jt=tm2Mc687K3SYc+0->C|ELpa4Q+cQ6Q(lH$kjL`NI#pVvff{4 z3y;6hVTvZA8{K@3Pi~)?N9Y$sYK&qeG7Lpn8Eo*BAQi(v-}N0vO7Rxj?4;}4)6sk0 zs*)t#Vuhdf#Mv5cNWZk{g*6_Zj^1ZV&W-)@vZn@ukdfAT%*15XnO746=s#75)s~8t z!Yw)uWjC)KU9dDym@9s@22H9N@+UG~j8((TZ z{b+74=pCFMJ@dmT6kK1b|8RKx=&_LxOyEa`{0&@gBW&@%b74i{@o$!Urcg~JodWcy z{Hzg*g|~w{JS#4CvO*)K+WcT)lb-er?`y+K(`Nj4Zol5_n^|w}pvAmR!t=%L5qaaA z?$gO;SB0y9s7ELDCNNc-xt$DA59GZwH;rj+@-tO{@f5K|{yu4eETn(;u#gx%6f`=o z7K-_qD066<@Yaui{rT)0Pf1mtJ`G6>yxhUGH#Do%Dt5i=*~dV2@0Kf`lzgdXDSRj? z3&m1%SiF6}@zUzx(87?Lb{2-s?6x@5dWLK~R@AA@RKFOOizRJBx~5k*Qi@+lPs5F7oZ*pP!8R0}C8Oj4Y)Nt=i^Wc)Qvh)ndJ! zN2*7p@0mSxWqn?p|2#*XX@};iM%6BGF>;bykkcRedADo8+DGivq=NM?fCd^4>3qA~ z59%*akzU)5l>0f*zQD86luXA;qsR#bV?R#Gh`5uF0cnFfTwi^yMYJfuD=OzRMJ?=Xck zYgF-nRsrwzS!1=cjk@v8`Q4r0{WayoT@`ukiud@uVN(l+DvzfkYkoRz|96gy9;=GY zd{vVB+V|E+D6;#;+dM+I&7RbFWXN_P>G1KJ!_E?IdBx~0nXnty{uR3XG#Oi2An5L& zvUExaHGg`e3~S5r>FOd|o*#Ej!3bb#=>F=2d)0nN9PIc3d04N!)|xNGEyx zcaHGV5~8m(ExV}1=x<*Ct9T`^L=X6R!QV&0DQ{^lFXH;b?MyV{IN3knm$9fK`}jP| z2zSw}FD(9*yxW72NkCuO?3})$-jnflEsf6O=Kt?ZZ#@PfGFDWg>`i?(4$>7YEh~N& zNs_n9&ZxYe?oNSH!5eGWCF$yzIN^+BAz@u<5cg3cDtrprDua?1Iqf@kbz_&_2t5S0 z1x6H%W`}2jf@1ee_87hN?&nF~f4WilBc!Bd5q)Y7 zs6vuG#5O{!2!6G77`4qwblT8pqewc*$Zdh93uHyNt{MjM5kA_u*8KHRCvnrGat)qx zdGXm;;GPCvnB&9Nou%Eeuz}2ZJ~vn+?o3)nFmXhvJV?t4y>X=zY59qliWx4}Zfku1 z5*J0=l7Y8+I`>C_+po`aR>$;N1X#iXFb#0y>Q%tO=e`AJJ;F6X}OJh3XZ#lqzG$qt#+v(upp_ zoc|Y@v>I$5mQDFGdmFZ_-Trk!yMX@llJhJD*yJOBtu4W!o;$8z7sx+ivGTe6QCAUL zsf;d;@}iRxO8oDfAk&e`*leY`G@}LbQ*j6PVG)gPYisHu?5q`9v;?U!!+hZT`G!{fajw#0X9Up3$H~6-`qX{`S#*!!zJr{-^1BWi~r7nJfl?XV@V4`A1$B+Uwy=s%IvIiBjb6oN1=vyxb8svq z@kNXF!xNJUTOWW%fN?h3epB81Pfq8)hJ{a5tT`Wi(K>KT|L<7w^34SdT@CdJOywhy1RL1)q z9#}&8cL_BRIGAeeIzHdq!Vt3H#e$>i!Rh#nCo>_Y-9QFcJ05Tu&$ODO@>aX*vFY*> zVIU#&x2=haF~Ih?Bm!_*6g^Tue5+=E{Pw2-R^42)hDjIsnV;_pG<^NQRPl|qY-e3z z+Kq~V-5UC<5$!+vEa=f5UBB;xB{90tWLF-;FJpSeeP)gEKE=ceclZgKE+|rRS<8s> zWX8scyVcmY)e0%rJ>$RvP~$(@F;Ezr*^|B^r zzuWckcw0%UIyA0UBrk#*`z`UpR+OXHO?S%0J91UyN_Hq`7WHEuSI0d;_f@@bhH;_+ z{|im_2s)}~g;_r(xA0nz@byaQRQdrZ4-|ZiZ1D%rKfDTOXAMtS#F;gOdNrQLd8BpC z{yU#pf!|K8W8GP~<)~mkk@eTaM7H36269tw1rkL`Y74zk+2;oGjrnZ zpKz;DSzyC*^LolXMt3TtS#8@*5WTmZx);Zc60b{s2 zqf^(cBCgGQwSdbhN3{UdWs||!*;%1ff?6!Zpg?23J+GrwO?iHEfUb|!G~tQ7W`On{ ziL33ma$LsJzq67(r;>6k_ELM5ff9CABUT=_^B;Ci`^(HPG3pgD<uCN^cw*Mv4c%mHVnbya2sa!&YFjh0IJ#rvcl*xm$w3>*fyc z`Mxj7RiXuy@0$dabIxj6l$M8i2j)@oS3#8r35s~ITlgKMbKly|(7 znHY3EBsn$+R~b&&In=UBgPskn@-3nmGp=o9oJ=xeR~9oTyP)?YP#^o(LU( zuLpzolUNI?zw-aiuKahdC1%GuY%3bG;C{AePKXjWY?NlWRj^nb%o*b_kDBBw|6-z5 zeVwT#H^bzE?JbE_#wjGib2K^?r}L6qJyqu(%h>SBwDY0Z>PP^7=A}R>N%f&g%~Vrx zZMLO3+`g|)qaO5TW6!hlx5TsV{7!s@Tz;f+iF{!y*C%=L1MD3lZN19C`*5$Mn!u5F z!}w0eS1HLTms8P8rWC<1Xns?kP5kDnet=%LhvLw&L2wasrPU5o@l5$r1?u=RzmI0y zj=E-wF<;1A1ecq6R-GwqO2`|ck%fPPFICR(FP2DpnBcKQ7+F^eqQT5V|yIka)(KB-Bei7l@qnv=ljyJ7|^;&#%q}8x` zz&CL{>!kLBM0mj01T5LaF^OCF+vbg8-ReGJr=+h~y8=SAlsePNl&OqbRKUkWmpo51 zyR^OKW!Pyb(=k8?JMSXdVAw7SZ;;VpGV&)U_!~b$WqlmDWTp|>8kzeWcqP4(tINJ# zW3;Mjy*^a}w`d z;UIY4zmY^&&*Cv1@em#JXK~9TzYbl?xev1QS46ecIb7ekm^w>XiX%@v0=l4bta(M@ zOUTE*75T;24Juc80S(OdXFm8hflrBzNNcvo5ms-WXb0X4;2Zwr;Y)|)7XEjRe@tH{ z`>&YVeJ`NeOIxCLzIjGQpR+yfb{PL)>`69V-eejxzarHzYWT>`CPGz_%JCYsaNCHqGm{ery!*^UH)t?49<06ny~uaT0n%5L zUZ^e8rg!E!hIQx{ zufW~SY?np}2Sf(PAei=w(nY1#!h%KGDdfRRH4+ z%Z!l9@TR-1h+Z>HS3GG;4e9W?_;KyLzpM{VIPX`gS45T@pI0^O`or)A!-BfL>UOCy zJGc=mvOe5Sq=Gh2m)9Q6fJqowpm_f~2M&+D)v7v)+pVt8PH=3Pu_0w7``XV>mHgXi zk#rTWCxe{3sPOviTGpFZtcPt(%LI~1y~K`2L++KjqPnTwpAgX#ug%jFLVxKxv!O{LQTe6RFS=iB-R@ zSX=0gJmI&i!iE^CQO=n{x_hgz+8iJVL~fW>h{FkNDmOvl^!Rl2s6G`NmK=l@QytPI zR%vm#=N-s4{7|*pGuO0~cNt&b2(PtVP!F=RhrGbTX)aJ0aY{gII?pO$Er0sa}WRUJBY9g zvy^76SKt3KQ5cQ?ezEs-x(ggUt_`_^(%Qu{TW3fOfjPD>hX@ zGLN3P4wP231w0dl(w)`rgco;^xIKvozz(T*wL5_P_Oip+j>10Mmvq0cvWIF20&COp z2w+qS9@E!I^h8k2yU<0Q_#-;9H$=F4{?95VEx&o@aOuZ`7{5J!~ar^MPCvALb$zG+@E+WLuE4_ zR*FYdI;N{oCK&c6p;W2{ulUyHuX4N-IwQ^QQRu`8%0T$SiQ?lAXL)?p-dBmU2iQ23 ztjA)c+o^%bPF(tsyTmH)L>0Uz>G3kmdrvO&iK|CvN%deG?7ma-ae}Nt!C>k|HkRtf zR@ugqMf0rUvcOqe>F}X+IL?aKrIqG?N%lpD(ZT-0qL4`?Beiq7k;byD%C#u2AyU=+ zbgX}B5%WAR2$_Ri5P5>E%mHg}x5p(_>pgeFu!tm>Tk${}^>8r+vvE7#hd0k=Z;(n!&ohT(E#X6<i{=hKG1v zz2u^VM+x>bD7_M(P-W+DS*TLY3};>7Z66u^-lid~>DflaI~{02JLh3FyMY5c8Rugw zKDTf`$;H0)n7QM^E7PX}3KRa4)GnU)mRVe?rwpy$cTIZnb67Rv+tY$xRc0ec=_Miq z!}s($v8GgMI4Ph9nPV&Pz?!|(cxW$OeV#-}P8EnsWUojin$_P%e7a#@f$2-N51MNO zTi23DUE|z}WYB(q(~&wAnzQ|PKZF!tQRli%VTbT;2DXyKq8kP@e5VF1gJVeeH>BrA z!69Jgu!_7erZd0v@&8!0{+-~C+TtS$2r{{KwVK-LBx4PEPPCX-$r0}vygR(3M6k*& zSmtDYs%yk>((81n@a``*P-rOH*lLZ%2&krq?Xw@FR)ZoOm^=gY^*cA!d8 zvmf{+^QJP|n!3s4Fpgaa7-WrxSr+WUwT7u8e&26gWaYn+#-P|)U3&3e4ECx7_N z@X+c6h-yLZccxyFBxjJQ%Oe)x00souebNh&%eHsP&aBQ2AOK%W%?PTiavy}4v#kx8?!oZbH{gb}h!5{nzcJo_a+dwAPXvzPhyFnsDhhBX_AGOrO{b4} zj{34gK2(0Xmqqc^M6rUedAMn0>&_9B4;LZ+Rz4ut*22FZih;JE(SL(;oT{u0dE0?> zj+3YSvkTD7Njs#+NlU0I*Zim!ELD|M9OFtYntgHR%swMc&)TbX(?{1d-7a*b&;TC~ zmviPWol4ZMG2CYo9LhTE9mo4ZS_>1u{JN_uyEolXs)khx^tq}TdKPC0=&Lj`C4Y_n zFnMI|Cns)nU#m^oNpHn2qye8?->OhTV`mC*Hs`p1vCqHO4bQc4wg5%us8MHMCXfI! ze1S;_&uBy4p#RQ!ek0fakd>=yB0_xASTkDm?*IQn(`tU9RSPkCzENfxQ(nbL|<+>7A3092_0r6w(*(lN*t@@Y&|hNK>l z@N5PC481T?W!03hA!-M!7QH#qFr=1(p=8q5+kq)fXopt0H52!>U*HByI24?N~Fd0njM@c}47{g1Ve*57&G@X%24X z`8P`Q;dbi?1KX-LIgk~mbbH-wth%+vV(yopow4n&!$Qvom7-P>m*kAre;OEX*51ar zNtu-z&}$Q9C&7i*uKCV>LZJrFt4~IT25a0Rl&YTpo;U?K&3i1$spL}_FD*4%qHNJgHpo%g(u5)qJ zvRbm!N(A@6d3pc&k7D3*5B~ew7vZ`iyTYI4mT3CkC6GX(pM6s!odcapXjI9uAtkXL zXPk{n-&4t1EA3dN&@6%LaaRjg1dBke2ojj0?0>gX*!m7~#L|IXsvtR`!Z%Y;`=nSP z%-dXg!RHn)6AqiR{Xdlc%%0;sh=p9Ko zABfSX?t3A!gtIxmjQ~FHcf6u%3yoGyrr*0GVjd!QxQ0ATwrYDRG0{vpthvHVNly_VDOR;$fB?xj3`Vk{D>(=Ggc;AM#V6i7N-R9 zyxGFq(l(TG1)+1ROcgWci;$~iyzr&xxT$u`_&lx34CEwuBt*nS$LB@Gj<=MU?Xql4 z;*|@yF*C!svkz6QU>6Ic-GLrOJ-WGH>F={Nu|ZL3*~zti>(DEFnt$x;M4yz%4W0yT z-^|hxw>|b_v;E~wKz{X6T-x0JCL}=k^MA{QmgL?Y0q^mNIk4~OT8*Z19^Gdhy24{` z*J24bGMlscXM6_I*~-r~2#$rUF^st(93B^8r|717^I}RPi22lJU_wW-m>``nQo{87 zYx~sI{pWS~>oE~ZKID!qcdc{H%GrbGM4xB=#^COa^%^hGJ%EPqz*t;L8*$-xi$o2| z3{;N4rCBuy7R86=#tAC<41tN8w)SJ*)d9(uYXSbAM^`PC^}o%AKf>w}YN1DGao7t= z(SV3mNkvgoz2bEi*DVZ=-yY#n(3f&U|7TDNmItM(D^t%w7TDd)+Bj%^8MF}*oM{ZC zeno;bNOaL=OSVn9iL491P|*g7dEI&KW}h1>*tK>ggOsByyeaNOt6Ei9d7G~&DL`wa zp;5bH-W?;@vn-E3w^1OC8bG3u^6UDcF z4ZTnfjjt_A*CzB7yc(|l=uM8Jy~Xecl+;SemSbGXF7xuO8B-s<4(8IO=@M`%NJ1eemOCB_(7h^h<)&C5s7}fkKk6GMk zdYx*~JEL+PXT2B^K+8#80^PKseJR$wm$q6A6!_{s?fHMOn0B(__uhl7DU0ye3E=62 z3v5Nsr;jH{)V4Ij7b*BHl>+#;jFudmcOVOm%{My@77p^$!3Mv#RZ|))C1G_b+y2|G z&?@9Af8!pA(sC5WmGRfl=o<(Brc9SWXu1K*h?ZVpMkjz@k?cxcrwpp0rwt>6spgH* z;b(V6ZgkFLUjzdt+worD0rh<4Uz?nWkg|vhl4>Cd`e4y9j8gl(p?E|uMfR&*IA*1P zGn{QGb+_~Gdx6RPppVxIgo-+%N2Du%d(t-c_I+Tr;`dql2Oz5^Gx@7%rTk(P{w#g3 z%ZM2jczyMVtXEp}e4`+UObacv?yXWC4{pn!sDkz2?Avggr+NS2C$1`qL8?CUa-5o5 zBGXKMsx$}9hkmQO=1uQXjetZ|@D)!28S!cdj2hquGK!PW~P-uNDZSw!n^Q zHcP*Z2!L8_*jl|T34yi=8GP*i`*x9H0b|+hjh&kU8W2WwDjOAO80O28$`X~#C9o`7 zajUnsE(bZk_B~^nR6&NsM=X_jheb{kiEsAaR@**X&E8;?o`Z$11>Lugsdh=t$$x`D z&e>%<(DHLN9y@miebed6jx-=Cr8<>HP2A39VmFO%@sVcLJTA6@zLZqIAnuNrUHczH z<|iM_*3UNp(0} z+_GA=H2L@%$`oY_`(hV8G-Hh)6w5CB$&JS(cAyK2Cw;05Ni__1L3>Aey=kinJUmr*-ZoV)Dx*_*HU2P+Y4NKL4)M=~G^P7BikM$I0 z6+c|e5AHO5kv*b-05$5hD+tlnd=cvHUIIq(9>=M%Ihv7IG3su9 zC(&D8H!5Q8ILY2>Er664N{cNnD>3%2`?DI`yReG*ITe|+Wj;)XTe$8w`oA8RR_q*` z>Xw~RlXOe^QZ#;i?2m6_9r&-L#=zLhkBkUj$65Vmh z+W#gvk1ym6M2{T&KZQ;LI)p~}AEUP zI=RRMmhpn)%JpEBto)e_Dcq64SD+c$sfDu~)U?h%rLS;Tci$n3Rsj9{1c(6T5V@$= z2_B74O;Y>1Y_f8um2*ESrW>AN06p?Hr#j}{lxDTsI~u1v?%o>*`)@Nq&K>F z7qZ2%Agoo8n1a3+cAhOU%-`$)o0JbGM!?MM1gH36OY$O%m%)5lIguYI+cWcRk8*hE zw_cwL77w+UDp}+%I;$H?T~KsLOPfoz8zpoRuom_ScD;KOl~1|~e&2!;a~7$*oBr}* z)qxFvO3;R)IX{OYU4%~($2x92{RHzYv{n)ZFIp*e!JPb zGyev$rt(3^mN1T=xw0zt>m?`Lb@j(-K9}#@^Oj{q+uA~`+^L;)UDv8~@b=FCoqGUc z<}K0E=F;11PQABoswD8yCGTjX?)9b7PkLu@5k&#*n1!06n-I_ z+?JK98TG^d5x??av_{ES8=5u}PqD6CgUVNNmGM;{qRh7niJ9y?KD8pF_Ccn&uYeA{ z-YXl$h~#f5`a9#%d%aS9o5|_b|C*lM4NpPcAR9(qGuHlP=)ciK7|f+~gXkvxrQ%MV zVX$-{kCuOHuq*GhECBjo0ACQ}Abx*^4&;CH#J}pP{69n_39V~sw{PLZu&Y7PY@_B@ zb)d$$&%0y0}Vbl$X6h^&&Tas};ykp>lK^ zV$)Yq#?!)Q_j|0WhSe1-(QE30!*G0*>IO)~fqdq%w5F$v0bO;{jrU~Ssp908wDPnN zjfQMUM=D-Q(ZPCTut0plnQDQH>KPF};pSCvo@@B1xSLAQq=L@M9Q#3b8(`;%+7eV> zPM@D7%zLq}^@wjwP4SBVpj3Wcc?@5V5ob|D`0VZU02DE68nsJrlpvKe-)bG&c!aNb zZsE3+EKR2y6jm9Mme0(IHbp~&h-HW$+0vp4Pvvx3ay`aspAQ!wU9wuC6SaNnY9TTu z5l4wU6oF7~wWgVKY`TLcFR@%Fqr39Si5xF-I_aevoWYFl~5VauGX04tX zY*c>?_uxxv@|2{ESuR2Tz2{q`6=?-}3YaIw?l;}9%zJ0eYH-qu+ko6rAw+(nRueHgS#hvN-ai9Ymdfg_zPt^yi-;YX9ishBYTYp8~EZE6x zE&b(i`Lv>>>d%z_cK=_X^5OljN<6qt$~5d8Yk~s#8H1#fy&u~;s>>&7g6u%PMT29OM$;r89wXBArCdDT&O~A zHp_7uYXa-VBq<+pYoXia{Smghmv{&-S0nfPe)DepDu=ZZvqzs(!akG4u~%{mCvt>M zp@N2~XwA8Mm@U49WzLk-;LaX*Yw+gNo~VDFj^i@AuR_uP*LvP)E_ z&0i+%hfdEQ{;p-(#*X**xxMc#>Qixx9eQp7=yA1=oDhW3-~k=MUo>}gf2y_^(m?pUq|HKAVWsrvB^oZHjY|Mwz+ zdOdEz@}s>%KKPZ{lW$-SMqpDM14-eS6(8NLE4{t$i-GZMcVWESX|D;+y?Wk$B9_k- zMu12Nrffr3jP3TG*1IN^fvJtp-MGlD+p$ud8Hh`pYKc3_K*QmZszoX+S-s<@h>z+6 zpWKJN6Ufu~0G^(0>o1(^FKlI9isV69loXTQuF{(l_1<>-9}rGV10CSr9?qd%J|d12NDcFo z6}75^w}dzM@eN?`kd};Rk;OGvnH;|8?a|kH{Jx)8r*}Ta0F_7ojASeBu?6gIA1F6? zPPjIuA4r-Ck#`=WbU3a<$Cv_rUqbum7j$GX(RreziqMIt{z%eV z^wXuJp{KV!6pQ7H*Qhs>FVdG8DzF!r7>o93T}!8=16CS-=ZdbE>AhRmk1aHZcVKGD zrpgfxu8)+9dJqZ~6{A|lA_ngcn>+G}^$>i#rq{(#;@O>7d!Vuc<)I?rQ0W}A+;+QD?Cz% zlkEo6It>ejhwC_1ft$@A*WOBw77 z>CTb88y$Q$Oi2Q;ByYXtr{&Ydu|@+9ojblWJ&GVF*v1}<{tZ|dE`v!6al|DDf1vfR zsrxC_8t0KpOA%g>$PEh`K+fPIWS{LOi45Ai_L&tC`fBypV3s<@RtDzUX;M&<5t3bt z61kPEq_T01$87QAaIwgr!Az+*M>>oJ`9%v!TbSumMsYUw*eWtfS_vCXycK*+gK1t? zC}K7lB;205DE-R)kGgcuLfXigD9=)EmeHG$s*AEF*kYi`Z1P1q1<%8$+|TS9S7>LH zYJpSjU&jJfOo54xaIigizS(PF@mHz8L%G3E&kCHsecENT5s+;)Ca3<6dY?_DKiM4H zXw#n9&*KVF*_JmxPEhCDb~BJ*gJCM8D(b~kGb+PJJnRdq%j&&rU$tG(YTwqe)dE%z zL1Jy~^0QaEbGJdJP*tSiC)pZ%yL8s?*8`ZCh4;hZrS~x25ra|ZtIfKl+7^-753~a4 zY@wS02U#6meY{r_i*6gu?#D`~S`TDYNpjM$gt;8$hZzeFO;1edn}2f1E&&Y=h*2&0 zXI5aid)#EU;VOTbc`A;Sf4B4_SD1Hxz}B7G&|AmJQ~AfhOSGd2oHcUoj%=Q^UI$C$ z@8Y3#v)bI{%iiPjQTWGOa+ZsK8^TQmd5+#@ebviZJO8Ru$+Z<;54nu#?BfcL_u|pY zHO4GbBg@ZzYKdi`Z)6WvFc@T zPhU>qf>~UX$LOo{Y!g@&T$qT^U;SVaueBCS2oi)^)OArh@BLu#2^eh!gsX-i!@3CvY>(+a2( zLa7M)^H*Q;k~=;lu@{!I8@v)H|HG}!XYvqN9V%#Ixx$uy+Ljg}664bdNlX`Hmw|Jd z=?e_W8(eD74^mpY$5RcyTPxSpmUKiANvbi`8rJic57hWHo> zzPiI%ly$pV?}f-5@3G;7QAlmWzx33hK@qDaAEoD z);r4Hjr-_;E)atk#ur*xnMGx98>5n0GLxw=Guy=&VNFlm-UK}*WQ`7vsk*v_$2u+T zrup@z*V%leKxc)g(d(oc=&`ehC*Oc_r-1xXR0nx>g5rEJ8)D*8T}WRKzGz;?x=cA{#q`CO%vyCn>y?rx}4b5bH+S{^`gLaK*zFWJ5o zdU~lWEiE4B;iBspS%X!Uy1Q|XT38AD@RM`MEG1HRN(So;H;@c18~_201QQAh$5yW> z|5MH4Eo|gVpv9i^rrRdA6xNOm-!4<%c!y8s`kHwiIvyeU@PI1C>Mc`<*@j;u3aBp%$XAVuK}+F}AS!`I2VGL(IzDD8 zLKVH5`l1TZ+CiIgqc%p0MFK;3zY5EVM{yB1u9N>gamg+>blj|YXUs11H(y`E{+Ir= z3cb)ik#h%0$T+X_WmBUF2HUTzc>WU_Q>AGRi+e*u`2*Sr(qU&iqgLgFYGw8IO2nA!gfsIX^1T_K*7*05 zaT)CP7N6uV@l3b)6{WRiCBcAq-ULryM5v#u4j98_MA<`R9&tTA$3pBdN_jf}greC?Ks>xT?8oHw?@C+fgh>|9R2v^E zzr0zlqH^x;quwrq;*qq-r!{1+nYPXPZeX=f&ydrHncr_?8u(6IL@NOn6`|1Nzt=MH zJVUoqA&LY1!9;BnXyF>`XM8GpG3j$I;rH7|U|3JQ&M_>_WWojr^wH&R+K&*20V_xY zMESC-R+E`euw*gAEvVSVFm`Av`r!B5{Jb*jZdFMiYqo!C>3we)($C>{5q#!wQ?nk+ z=Xr6M2SzwP+Y^3hVy<18cid<4p~3#yNm?!y9{ltif+dLj^Sl-5-i(lvIy9h5L3+;5 zQfqjO_YZ0Wt|S)lixcZE;?GPxhZVLN#R;$KFO;2Y%w~z?_8MOPEeyNRZmw^zt&~gV zVn&+;#lM7NJ$b>%xK!4&b<*J}+Lf z@jpY6-(tPoCc9HIT;)B9ytWE9E21j#JNOIwKhSm5GASOUuR zw`UPFDbq3i1=-j3uxo1rRR56@~zD_iD6 z{JG8CQKAZ7gDN_|9X-!vve&d*Z)o? zduc0s$)Qw(eDRWqW@fWd+k!QDz5~0Yvm+|mg?zvq}BwL2ZSr3%=6Ud0G{WpVxD0KT^W@H&tT@GrV7(8fXOR!EG=P;!0Mcf5vD z-Ea7K)r*Ps#AA3xvd}9S&}^tZ86g_*?k25a$`U1LqzEvyGk06v{31**%9|NEu~qc; zr5s-~g^q7*-g>Cxfn21S$wkT3%7LwRM`@JX$pH13IO4-EC~J8vX=>(tHC~jv=dZkT zVnf(zY~G55rfXQ`!UOZ(@zxoPm7UaQu8J>H@P(Cui#)=iUPC{N3)VgE!8rV*>+J=f6Mg$n^QCS#m z@lE6N*vPMqS`YZI^0EFOL+9bnX8Zo(e*1Qrt-Y&8kl3+zYbO#TW@6Py5TmtA*RN`? zR>VlGB0>m7f>QLYRT80Mw5YZeHCwc$sJ=gc!gCzY@m%+FU!Tu;<{7^z?j6Qg2W9>W z&x5@x)d>CfM>37ia@6tcy{q{VLIwNh2G~q*&;{Po*>gwT;wPFsZqXeV)!%Sdtm4ji zxuCMlt?P{buPbK8w^b|XDO}Pudu@d5Gi}aG`sQMB)5JSKltcHZP*!4Mqoq}8*K*>n1WAl}8TsaB>o0f~ak9zQbZ3VMr%qF~IPNO*h zRAiTxM^P4NakkPD0t-KtS9NVQ2Ihg2e}#wud)_{lGW|4nX#+UyhX8VT^5&yQMRl|f z9%t591Zz^CcApb>a{3cR>GN9QdAD%M%4KrX{+?N|J6tv24JxEfL0(s{G>OH9m4mn0P6tX&6H$k^%2u1ASlQU0p3Y>pORYN^l=K=Ff+R~qS$=ob) zmYlxQX)zG|!0@`z?+c1yx>YtVv$<-wxht=0*;gn3&jk{dx*Nn>tL&2>+ZW}13@$k3}@k`eKwCX)K%}-TLo;QSkIX=ez1fknhv*%1OBty$RrmmZdPFPoUB19 zjCo2Qy3vtO&Y%?!iNFhh9OlUD*kRU66VC3r+p|_$%=Z-N{Ys#=5Ykt|@o6WwukcMp z;CWJReq`1;^m#>+Y%JwobAlpBf_|>hhYM~x9JsbZ(rBp8&wwQr2I%)4-l)<-&t@)= z(L5gEAv9A#Yxxuci&fZK^GO5_=z1QQ#(yKGWFTjt5RqY3+UC*5X9&D+@G`7z|fc?)Gp(|uyh(=M`VQapUsuSbGbyT_yJTN=rd(8DsyhiV|psdU8 zKjv0BYj>|Jjcue-mH#oto=kx5>lH#WthGvdid)_POegALx z3Df@~=U|T&(~+jqoXRY@V(@uOE>P*L&?NyN;*!D6<-$`dJX)X3&jqvsmAa8#W247-7QGKI)qnmV2SOl9%xZ77sb+ z0L2XD>+#n`N?8n_#^QA9*hB@8TLlu#Xh}>Kj$9Y49PpSMseDyJQgc|?u=4ucS?HAi zp43loPzWGQIQ`7jnp__k^GQ8Bnd0)(#@538$bqiv-sC}j(RS}eTgcl6TY*VEZ=2D{ zhOZl9ac?)EeT08k_RM&c)6p)@Y>f>!A85Y9`R}<4ifcw8=UOUKj`_i zL-#W91NrrE=6!Flc)4^ouR)|YZ$W=k5NBa9g)voNxxSyRhm+#f>mT&C9&!HUC>wc8 z<)sc!DzUgC28|J3Y#7{dN>caShv&fm(J^4=ku7sGcC1I3u4*lsMYY=?CkL$#LzC7B zM!pTDCw30<;wy0;`DoPK6pQonvK$7v<84vBrY-u|=*SA*Jnw`e+wF`PLUUnQjpx6c zVyJsg3|K#3_z|+X{F&v}O8Nb!V>i&$em=zb}dc{zAFE*xj4GVQuRc@4D? zk(~ymDRbC*-vVO)C_>tTpuh|44^@SQC$LcfBj==*pLxio*#g8_leNNSxM* zjM9h+`Y42aYtP@0a*z^QaJ4I{HWd?rB3A@&3g_jQULD4hI?JRTpW43AQ3w_3mT;S* zk9$pv-=7%u9N${cuSRHp9{IDrDS$6Ab{V`S*J8N&SVRV4-NMC4e}JhwGN+9+Shv%r zA@9Rb8$wz+Algk>w5>wQ&$dW>srKY*?6Mow7xY|BF4^$Q@iUJsMfPQ=vlaS#xm_Tn zV>sX@`ncLksPMb9@w!R+lb>Cy)AxLAf~1w6GlVQhQRe7G(P&dc0ioi&iwj?.rn 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